docs(specs): reconcile stale phase/checkbox metadata (3 more specs)
All three were 100% done but read as "in progress" from a naive checkbox count -- same header-never-flipped drift as 5c82ad0b/b14e53f5/1abab949/8557b869: - scheduler-sim-repl-verbosity: all 9 headers' children done (last: task 10.2 final regression, commite87c0b3f, then a doc-gap follow-upa51790dc, 2026-09-02T21:55:50Z) - scheduler-sim-reconcile-terminal-guard: both headers' children done (last: task 2.2 REPL-level verification, commit9dcffce8, 2026-09-03T08:31:37Z) - scheduler-sim-step-verbosity: both headers' children done (last: task 2.2 full regression, commit56bd3103, 2026-09-03T05:15:45Z) Checked all remaining headers, bumped all three to implementation-complete. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XYdtrEWWZfKRRGED7raEYg
This commit is contained in:
parent
7e46a32627
commit
df4b386a2c
6 changed files with 19 additions and 19 deletions
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"feature_name": "scheduler-sim-reconcile-terminal-guard",
|
||||
"created_at": "2026-09-03T06:32:45Z",
|
||||
"updated_at": "2026-09-03T07:05:00Z",
|
||||
"updated_at": "2026-09-03T08:31:37Z",
|
||||
"language": "en",
|
||||
"phase": "tasks-generated",
|
||||
"phase": "implementation-complete",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Implementation Plan
|
||||
|
||||
- [ ] 1. Core: terminal-state guard on job reconciliation
|
||||
- [x] 1. Core: terminal-state guard on job reconciliation
|
||||
- [x] 1.1 Write failing tests for the terminal-state guard
|
||||
- Cover: a job driven to JOB_STAT_DONE via xce_core_push_events() (confirming allocs/accounts are nulled by the existing cleanup), then presented with a decoded_session carrying a DISPATCH entry for that job id, must leave allocs/accounts NULL after sim_reconcile_unaccounted_jobs() runs; the same scenario with JOB_STAT_EXIT instead of JOB_STAT_DONE; a PEND job's early-recorded DISPATCH entry is still captured exactly as today (explicit regression guard, not just relying on the pre-existing suite)
|
||||
- Observable: the new test cases for DONE/EXIT fail against today's sim_reconcile_unaccounted_jobs(), which resurrects allocs/accounts on any job with accounts == NULL regardless of state
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
- _Requirements: 1.1, 1.2, 1.3_
|
||||
- _Boundary: Terminal-State Guard_
|
||||
|
||||
- [ ] 2. Validation: regression and display-consistency verification
|
||||
- [x] 2. Validation: regression and display-consistency verification
|
||||
- [x] 2.1 Verify no regression to existing reconciliation behavior across the scheduler test suite
|
||||
- Confirm the full scheduler test suite passes with no new failures beyond any already-documented pre-existing ones, and that the pre-existing eager-capture tests in test_sim_reconcile_unaccounted.c and the JOBS_PUSH resync-merge tests in test_core_events.c continue to pass unmodified
|
||||
- Observable: full test suite result showing no regression, with the pre-existing eager-capture and resync-merge test names explicitly confirmed still passing
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"feature_name": "scheduler-sim-repl-verbosity",
|
||||
"created_at": "2026-08-21T06:50:37Z",
|
||||
"updated_at": "2026-09-02T07:15:00Z",
|
||||
"updated_at": "2026-09-02T21:55:50Z",
|
||||
"language": "en",
|
||||
"phase": "tasks-generated",
|
||||
"phase": "implementation-complete",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Implementation Plan
|
||||
|
||||
- [ ] 1. Foundation: job identifier range compression
|
||||
- [x] 1. Foundation: job identifier range compression
|
||||
- [x] 1.1 Write failing unit tests for compressing job-array identifier listings into index ranges
|
||||
- Cover a single contiguous range, non-contiguous indices within one array submission, multiple distinct array submissions in one listing, a mix of array and non-array identifiers, and an output buffer too small to hold the full listing
|
||||
- Observable: the new test cases execute and fail against the current codebase, which has no compression behavior yet
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
- Observable: all tests from 1.1 pass; the helper is ready for the event-echo and round-summary work to adopt
|
||||
- _Requirements: 4.1, 4.2, 4.3, 4.4, 4.5_
|
||||
|
||||
- [ ] 2. Core: per-round decision summary, repetitive-round collapsing, and the shared range-flush capability
|
||||
- [x] 2. Core: per-round decision summary, repetitive-round collapsing, and the shared range-flush capability
|
||||
- [x] 2.1 Write failing tests for round-level decision summaries, collapsing, and the shared flush capability
|
||||
- Cover: a round with at least one decision produces one summary line naming decision counts and affected job identifiers; a round with zero decisions produces no individual line; two or more consecutive idle rounds collapse into a single range notification; two or more consecutive rounds with an identical decision outcome collapse into a single range notification; a collapsed range notification states its round bounds, round count, and covered time span; a change in outcome ends an active collapsed range; a job's status change between rounds is reflected in the following round's summary even without a dedicated dispatch event to observe; the shared flush capability safely does nothing when no range is active and is safe to call more than once in a row; an active collapsed range open at replay completion is flushed and printed before `xce_repl_on_replay_complete()`'s existing completion banner
|
||||
- Observable: the new test cases fail against today's unconditional per-decision echo, which has no summarizing, collapsing, or flush behavior
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
- _Requirements: 2.1, 2.2, 2.4, 3.1, 3.2, 3.3, 3.4, 3.6_
|
||||
- _Boundary: Round Rollup_
|
||||
|
||||
- [ ] 3. (P) Core: mode-aware event echo, including ending an active collapsed range on structural events or breakpoint hits — Depends: 2.2
|
||||
- [x] 3. (P) Core: mode-aware event echo, including ending an active collapsed range on structural events or breakpoint hits — Depends: 2.2
|
||||
- [x] 3.1 (P) Write failing tests for suppressing routine event chatter and for ending an active collapsed range at the right moments
|
||||
- Cover: a routine per-tick event (a job status change, job progress update, job resource-usage update, queue update, or partial/delta resource-value update) produces no line under continuous execution; the same event still produces a line while single-stepping; a structural change (new jobs, workers, or resources arriving, a full resource-value snapshot arriving, or configuration pushed) still produces a line under continuous execution and ends any active collapsed range first; an event matching a breakpoint still interrupts continuous execution regardless of its classification, and ends any active collapsed range before the interruption is shown
|
||||
- Observable: the new test cases fail against today's unconditional per-event echo, which has no classification or range-ending behavior
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
- _Requirements: 1.1, 1.2, 1.3, 1.4, 3.5, 3.6, 4.5_
|
||||
- _Boundary: Event Echo Gate_
|
||||
|
||||
- [ ] 4. (P) Integration: retire the redundant per-decision echo during continuous execution — Depends: 2.2
|
||||
- [x] 4. (P) Integration: retire the redundant per-decision echo during continuous execution — Depends: 2.2
|
||||
- [x] 4.1 (P) Write failing tests confirming the old per-decision echo no longer duplicates the new round summary
|
||||
- Cover: during continuous execution, no bare per-decision line appears outside the round summary; while single-stepping, full per-decision detail still prints exactly as before; a non-interactive (headless) replay's decision output is unaffected
|
||||
- Observable: the new test cases fail while the old unconditional per-decision print path still runs alongside the new round summary
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
- _Requirements: 2.3, 5.1, 5.4_
|
||||
- _Boundary: sim_print_decision gate_
|
||||
|
||||
- [ ] 6. (P) REPL prompt shows current session and timestamp
|
||||
- [x] 6. (P) REPL prompt shows current session and timestamp
|
||||
- [x] 6.1 (P) Write failing tests for the dynamic REPL prompt
|
||||
- Cover: the prompt is the plain `(sim) ` before any session has begun; once at least one session has run, the prompt includes the current session count and a human-readable timestamp; this holds in both `step` and `continue` modes; the prompt never alters any command's own output
|
||||
- Observable: the new test cases fail against today's static `XCE_REPL_PROMPT` macro, which never varies
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
- _Requirements: 5.5_
|
||||
- _Boundary: REPL Prompt Context_
|
||||
|
||||
- [ ] 7. (P) Resource value classification, human-readable scaling, and the `set units` option
|
||||
- [x] 7. (P) Resource value classification, human-readable scaling, and the `set units` option
|
||||
- [x] 7.1 (P) Write failing tests for byte/megabyte classification, adaptive scaling, and `set units` parsing
|
||||
- Cover: the bytes-valued classifier returns true only for `mem`/`tmp`/`maxmem`/`maxtmp`/`maxswap` and false for `swp`, unitless resources, and unknown names; the scaling helper adaptively renders across B/KB/MB/GB/TB, including exact unit-boundary values; `swp`'s value is converted MB→bytes before scaling; `set units raw`/`human`/`both` each update the display-mode setting, defaulting to `both`; an unrecognized `set units` value is rejected the same way other unrecognized `set` parameters already are
|
||||
- Observable: the new test cases fail against the current codebase, which has neither the classifier/scaling helpers nor a `units` setting
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
- _Requirements: 6.1, 6.2, 6.3_
|
||||
- _Boundary: Resource Value Formatter_
|
||||
|
||||
- [ ] 8. (P) `info worker`/`info resource` grouped table layout and units-mode-aware rendering — Depends: 1.2, 7.2
|
||||
- [x] 8. (P) `info worker`/`info resource` grouped table layout and units-mode-aware rendering — Depends: 1.2, 7.2
|
||||
- [x] 8.1 (P) Write failing tests for the resource-listing table layout and units-mode rendering
|
||||
- Cover: `info worker`'s and `info resource`'s resource listings render as an aligned table grouped by category (consumable/capacity, load metrics, static hardware attributes, where applicable to that listing) instead of one flat list; a whole-number unitless value renders with no trailing `.00`, a fractional one keeps its decimals; each `units_mode` (`raw`/`human`/`both`) selects the corresponding rendering for a byte/megabyte-valued resource; the underlying stored/wire value and replay determinism are unaffected; `info worker`'s assigned-job listing renders using the existing jobid-range-compression helper
|
||||
- Observable: the new test cases fail against today's unconditional flat per-resource `fprintf` loop and un-compressed assigned-job listing
|
||||
|
|
@ -97,7 +97,7 @@
|
|||
- _Requirements: 6.4, 6.5, 6.6, 4.5_
|
||||
- _Boundary: Resource Value Formatter, Jobid Range Compressor_
|
||||
|
||||
- [ ] 9. (P) Discoverable `help` listing and `break` event types — Depends: 7.2
|
||||
- [x] 9. (P) Discoverable `help` listing and `break` event types — Depends: 7.2
|
||||
- [x] 9.1 (P) Write failing tests for the reorganized `help` listing and `break`'s event-type discoverability
|
||||
- Cover: `help`'s output groups commands into the four labeled sections (execution control, breakpoints, state inspection, snapshot and parameters), uses one consistent column width throughout, lists `info config` alongside the other `info` subcommands, and lists `set units` alongside `set speed`/`set output`/`set verify` in the snapshot-and-parameters section; `help`'s `break` line and `break`'s unrecognized-event-type error both list the complete, current set of valid event types from the same source; no command's existence, argument parsing, or other output changes
|
||||
- Observable: the new test cases fail against today's unordered, hand-padded `help` listing (with `info config` disconnected from its siblings) and `break`'s error message, which names no valid alternatives
|
||||
|
|
@ -110,7 +110,7 @@
|
|||
- _Requirements: 7.1, 7.2, 7.3, 7.4, 7.5, 7.6_
|
||||
- _Boundary: Help & Breakpoint Discoverability_
|
||||
|
||||
- [ ] 10. Validation: regression and real-data verification — Depends: 3.2, 4.2, 6.2, 8.2, 9.2
|
||||
- [x] 10. Validation: regression and real-data verification — Depends: 3.2, 4.2, 6.2, 8.2, 9.2
|
||||
- [x] 10.1 Verify single-stepping and every other existing REPL command remain unchanged outside this feature's explicit exceptions
|
||||
- Confirm single-stepping's per-event/per-decision output, and the inspection/breakpoint/parameter/snapshot commands' behavior and output, match their pre-feature baseline exactly except for the prompt content (Requirement 5.5), `info`'s job-identifier/resource-value listings (Requirements 4.5, 6), and `help`/`break`'s discoverability changes (Requirement 7); confirm no new top-level command was introduced
|
||||
- Observable: the existing REPL test suite's pre-existing assertions all still pass unmodified, and a step-mode transcript comparison shows no textual difference from the pre-feature baseline outside the prompt line itself
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"feature_name": "scheduler-sim-step-verbosity",
|
||||
"created_at": "2026-09-03T03:00:41Z",
|
||||
"updated_at": "2026-09-03T03:35:00Z",
|
||||
"updated_at": "2026-09-03T05:15:45Z",
|
||||
"language": "en",
|
||||
"phase": "tasks-generated",
|
||||
"phase": "implementation-complete",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Implementation Plan
|
||||
|
||||
- [ ] 1. Core: event echo preamble deduplication
|
||||
- [x] 1. Core: event echo preamble deduplication
|
||||
- [x] 1.1 Write failing tests for preamble deduplication across consecutive echoed events
|
||||
- Cover: two consecutive echoed events with identical rendered timestamp and session omit the second's preamble; two consecutive events with a different session both print their own preamble; two consecutive events whose raw high-resolution timestamps differ but whose rendered timestamp and session are identical still dedupe; the first echoed event in a fresh REPL session always prints its preamble; a structural event echoed under continue mode after a stretch of suppressed routine events follows the same rule; every event's own content line and ordering remain present and unaffected regardless of the preamble decision
|
||||
- Observable: the new test cases fail against today's REPL, which prints the timestamp/session preamble unconditionally before every echoed event
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
- _Requirements: 1.1, 1.2, 1.3, 1.4, 2.2_
|
||||
- _Boundary: Event Echo Preamble Deduplicator_
|
||||
|
||||
- [ ] 2. Validation: regression and real-transcript verification
|
||||
- [x] 2. Validation: regression and real-transcript verification
|
||||
- [x] 2.1 Verify every other REPL command and mode's existing behavior remain unchanged outside the preamble's own deduplication
|
||||
- Confirm which events are echoed, event ordering, event content, and every other REPL command's behavior and output match their pre-feature baseline exactly except for the preamble line's now-conditional printing; confirm no scheduling decision or simulation state changed as a result of this feature
|
||||
- Observable: the existing REPL test suite's pre-existing assertions all still pass, updated only where a specific assertion pinned the old always-print-preamble shape for two events that legitimately share rendered context (each such update documented with which acceptance criterion justifies it), and a step-mode transcript comparison against the pre-feature baseline shows no textual difference outside the preamble line's presence or absence
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue