myxce/.kiro/specs/scheduler-dispatch-commit/spec.json
Rongsong Shen f784e2bdd9
chore(scheduler-dispatch-commit): mark spec implementation-complete
All 12 tasks implemented, independently reviewed, and committed.
Final cross-task validation (kiro-validate-impl): GO -- 18/18
acceptance criteria mapped and code-verified, no boundary spillover,
no design drift. Full regression clean (scheduler/controller suites
at documented pre-existing baselines, sequential + chaotic HA soak
both PASS). Unblocks scheduler-allocation per this spec's own
sequencing_note.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cxa1PmqAB5PyXfJaNvj8TN
2026-08-23 22:03:46 +00:00

30 lines
3.2 KiB
JSON

{
"feature_name": "scheduler-dispatch-commit",
"created_at": "2026-08-23T03:25:54Z",
"updated_at": "2026-08-24T04:59:00Z",
"language": "en",
"phase": "implementation-complete",
"parent_spec": "scheduler-framework",
"description": "Move the RUN-state transition to dispatch-decision-commit time on both scheduler and controller, and build the currently-missing dispatch-failure retry/terminal-fail handling this requires -- fixes bug-1624 (resource-in-use round-boundary loss for dispatched-but-unconfirmed jobs) and bug-1625 (scheduler has no handler for NotifyData_data_jobDispatchFail).",
"approvals": {
"requirements": {
"generated": true,
"approved": true
},
"design": {
"generated": true,
"approved": true
},
"tasks": {
"generated": true,
"approved": true
}
},
"ready_for_implementation": true,
"task_plan_validation": "2 rounds of independent task-graph sanity review. Round 1: NEEDS_FIXES (task 3.1 missing counter-reset wiring, task 3.2 undersized/overloaded across 6 failure sites with an asymmetric reference-leak fix, ambiguous boundary labels, undocumented non-parallel rationale) -- repaired: 3.1 now resets the counter with explicit _Depends:_, former 3.2 split into 3.2 (terminal, 2 sites) / 3.3 (retryable+bounded escalation, 4 sites, carries the reference-leak fix), boundary labels differentiated, non-parallel rationale stated on task 3's major line. Round 2: NEEDS_FIXES (task 3.2's requirements list incorrectly carried over 4.1/4.4, which belong only to the PEND-return path 3.3 performs) -- fixed directly (single-line correction), and the same leftover was independently found and fixed in task 5.3's mirrored requirements list. Final coverage check: all 18 requirement IDs and all 5 design components mapped, each exactly once except where a requirement genuinely spans tasks. GO.",
"sibling_specs": ["scheduler-core", "scheduler-allocation", "scheduler-preemption", "scheduler-controller-msg-gap", "scheduler-sim-eager-reconciliation"],
"blocks": ["scheduler-allocation"],
"related_bugs": ["bug-1624", "bug-1625", "bug-1626", "bug-1627"],
"design_validation": "5 rounds of /kiro-validate-design, all findings fixed in place (no NO-GO carried forward): RTTI_LOCK_WRITE gap (bug-1626), unused scheduler-side field removed, requirements.md AC 2.1 wording reconciled, double-notify race (notify_dispatch fires on success too) fixed by moving classification+notification inside dispatch_a_job_(), rc-value classification replaced with an exhaustive site-identity enum, a 6th failure site (RPC failure) found and added, dispatch_a_job_() reference leak found and fixed (bug-1627, 4 sites), WAL apply logic corrected to cover both apply_wal_entry() and apply_committed_entry(). Final pass found no further issues. GO.",
"sequencing_note": "User directive (2026-08-22): this spec must land before scheduler-allocation begins implementation -- scheduler-allocation's iterator-based try_alloc_on_host() reads the same resInUse/sharedInUse totals bug-1624 corrupts, and its planned XCE_ALLOC_PREEMPT borrowing mode interacts with what counts as committed/borrowable. scheduler-allocation's own spec.json should be updated to note this dependency."
}