Files
KArtSell.Aegis/docs/CURRENT/AEG-V15-035_DUE_OPERATION_CONTRACT_SLICE_NOTE.md
kjh2064 d18f6a7a67 feat: preserve due operation provenance (AEG-V15-035)
Carries scheduledFor, catch-up policy, and maxCatchUp from the scheduler through the request model and transactional outbox. Evidence: targeted Release tests 5/5 passed; TRX SHA256 C1BF3EF274702305A29673D5B6A1C3A98D08B1716DA3CD8CB0EE710B5E6C12E6. Schedules remain disabled.
2026-08-09 02:04:26 +09:00

2.2 KiB

AEG-V15-035 — Due operation contract

Scope

  • WBS ID: AEG-V15-035; Slice: VS-18 / Scheduler
  • Requirement / API / DB / Job / UI / Test: REQ-V15-SCH-03 / V15-SCH-API / MIG-0020 / J31~J40 / Cross / T-V15-SCH-03
  • Dependency / Gate: AEG-V15-034 (completed, commit dd35259) / G3
  • Acceptance: persist and trace scheduledFor, catch-up policy, and maxCatchUp for each model-operation request.

Source / Assumption / Unknown / Decision Required

  • Source: db/migrations/0020_v15_execution_and_ui_contract_hardening.sql adds nullable evaluation.model_operation_request.scheduled_for; DueModelOperation already receives ScheduledFor, CatchUpPolicy, and MaxCatchUp; the dispatcher and request repository currently drop this provenance before insert.
  • Assumption: an individual request must preserve the selected occurrence's UTC scheduled time and the policy/configuration that selected it. These are immutable request provenance, not mutable schedule state.
  • Unknown: scheduled_for is nullable in the approved migration. This Slice will populate it for scheduler-created requests but will not change historical rows or alter the immutable migration.
  • Decision Required: a full per-occurrence dispatch ledger and enqueue/mark transactional outbox remain DEC-083 / later scheduler work; this Slice only closes the currently missing request-level provenance.

Actual evidence

  • dotnet test tests/KArtSell.ModelOperations.UnitTests/KArtSell.ModelOperations.UnitTests.csproj -c Release --filter "FullyQualifiedName~ScheduleOccurrencePlannerTests|FullyQualifiedName~ModelOperationRequestServiceTests" --logger "trx;LogFileName=DueModelOperationContractTests_20260809.trx" --results-directory evidence/AEG-V15-035
  • Result: passed 5/5; artifact: evidence/AEG-V15-035/DueModelOperationContractTests_20260809.trx; SHA-256: C1BF3EF274702305A29673D5B6A1C3A98D08B1716DA3CD8CB0EE710B5E6C12E6.
  • The targeted build compiles Hangfire serialization, application validation, the append-only request insert, transactional outbox payload, and the scheduler policy tests. No schedule was enabled and no database migration or PostgreSQL test is claimed.