chore(specs): mark four finished specs implemented
scheduler-sim-diagnostics, scheduler-sim-live-allocation, xce-test-cli-ux and eliminate-frontend-makefile had every sub-task checked but their parent boxes and spec.json phase still read tasks-generated. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7b001cb0f7
commit
c2b3bf6473
7 changed files with 19 additions and 19 deletions
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"feature_name": "eliminate-frontend-makefile",
|
||||
"created_at": "2026-08-27T00:00:00Z",
|
||||
"updated_at": "2026-09-03T13:01:25Z",
|
||||
"updated_at": "2026-09-29T12:59:52Z",
|
||||
"language": "en",
|
||||
"phase": "tasks-generated",
|
||||
"phase": "implemented",
|
||||
"description": "Remove src/frontend/Makefile entirely, consolidating Go builds (apiserver, xcecli) and their tests onto Meson's tools/go_build wrapper. Closes a real, already-realized duplicate version-fingerprint-computation risk (roadmap.md backlog item, recorded 2026-08-21). Path C single-scope investigation via /kiro-discovery, 2026-08-27.",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"feature_name": "scheduler-sim-diagnostics",
|
||||
"created_at": "2026-08-16T11:02:06Z",
|
||||
"updated_at": "2026-09-20T03:30:00Z",
|
||||
"updated_at": "2026-09-29T12:59:52Z",
|
||||
"language": "en",
|
||||
"phase": "tasks-generated",
|
||||
"phase": "implemented",
|
||||
"description": "Open-ended simulation-mode REPL diagnostics spec. First capability: limit inspection (info limit <name|all>) showing configured setting (scope, value/percent) and live accounted usage per instance. Requirement 6 (added 2026-09-19): human-readable unit scaling for byte-valued limit amounts, designed via a fmt_limit_units() sibling entry point plus a promoted shared-lib byte-formatter (utils.c), tasks 7-10. Future capability (seed capability 2, not yet in requirements.md): decision-reasoning trace for pend/dispatch outcomes.",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
- _Requirements: 6.1, 6.3, 6.5, 5.3_
|
||||
- _Boundary: Shared Units Formatter, REPL Limit Info Command (the retyped composer and its thin-wrapper callers live in `repl_info.c`/`repl_fmt.c`)_
|
||||
|
||||
- [ ] 8. Core: Human-readable configured-setting display
|
||||
- [x] 8. Core: Human-readable configured-setting display
|
||||
- [x] 8.1 Add a display-mode-aware way to render a limit's configured setting
|
||||
- New entry point produces the same configured-setting output the existing formatter already produces, except a byte-valued, non-percentage resource's amount renders in human-readable form according to a supplied display mode
|
||||
- The existing formatter's own output is provably unchanged for every input it can be given — proven by its complete pre-existing test coverage continuing to pass with zero modification
|
||||
|
|
@ -99,7 +99,7 @@
|
|||
- _Depends: 7_ — task 7 retypes the exact shared formatting call chain this task's fix flows through (the limit usage display's classification feeds into that same composer); sequencing after 7 avoids two tasks editing overlapping logic in an uncoordinated order, not a data dependency on any new symbol this task itself needs
|
||||
- _Boundary: REPL Limit Info Command_
|
||||
|
||||
- [ ] 10. Validation: Confirm correctness, consistency, and no regression
|
||||
- [x] 10. Validation: Confirm correctness, consistency, and no regression
|
||||
- [x] 10.1 Re-verify existing test coverage against the corrected usage display
|
||||
- Task 9 found that fixing the resource-classification defect did NOT break any pre-existing assertion outright — instead, several existing assertions on the live usage display's amounts turned out to be loose substring checks against whole-number fixture values, which happen to still match the corrected, human-augmented output by coincidence of formatting (the old expected text is a literal prefix of the new one) rather than by genuinely exercising the fix
|
||||
- Identify every such loose, coincidentally-still-passing assertion, and strengthen each one to assert the actual corrected output precisely enough that it would fail if the resource-classification fix were reverted
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"feature_name": "scheduler-sim-live-allocation",
|
||||
"created_at": "2026-09-18T06:48:27Z",
|
||||
"updated_at": "2026-09-18T09:45:00Z",
|
||||
"updated_at": "2026-09-29T12:59:52Z",
|
||||
"language": "en",
|
||||
"phase": "tasks-generated",
|
||||
"phase": "implemented",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Implementation Plan: scheduler-sim-live-allocation
|
||||
|
||||
- [ ] 1. Foundation: independent core-safe seams and leaf migrations
|
||||
- [x] 1. Foundation: independent core-safe seams and leaf migrations
|
||||
- [x] 1.1 (P) Give the allocation dispatch chokepoint an optional, normal-mode-only performance cache seam
|
||||
- Add two NULL-by-default callback fields to the shared core state for consulting and populating the unsatisfiable-resreq cache, mirroring the existing session-reset callback's proven shape (a bare function pointer taking the core state directly, no wrapper struct, no opaque handle)
|
||||
- Implement the two adapter functions against the real cache, in the same file the existing session-reset adapter already lives in, registered only during normal-mode startup
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
- _Requirements: 1.3, 3.1, 3.2_
|
||||
- _Boundary: Core-Safe Allocation Chain_
|
||||
|
||||
- [ ] 2. Core: driver-agnostic allocation search and dispatch
|
||||
- [x] 2. Core: driver-agnostic allocation search and dispatch
|
||||
- [x] 2.1 Thread shared core state through the per-job allocation context and the per-host allocation attempt
|
||||
- Change the per-job allocation context's driver-reference field to carry shared core state instead of a normal-mode-only pointer, updating its handful of existing cast sites
|
||||
- Re-type the per-host allocation-attempt function (which calls the three capacity checks from 1.3 and the prepare-allocation hook from 1.2) to take shared core state directly
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
- _Requirements: 2.1, 2.2, 2.3, 2.4_
|
||||
- _Boundary: Limit Plugin Core-Safe Matching_
|
||||
|
||||
- [ ] 3. Core: unify job election and allocation into one implementation
|
||||
- [x] 3. Core: unify job election and allocation into one implementation
|
||||
- [x] 3.1 Extract the job-picking and allocation loop into a single implementation shared by both drivers
|
||||
- Move the job-picking thread body and the allocation thread body out of the normal-mode-only file they live in today, into their own file, re-typed to operate on shared core state directly
|
||||
- Confirm every call this pair makes is already driver-agnostic after tasks 1.2/2.1/2.2 — no remaining reference to anything normal-mode-only
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
- _Requirements: 1.1, 1.2, 5.1_
|
||||
- _Boundary: Unified Picker/Allocator Threads_
|
||||
|
||||
- [ ] 4. Integration: wire simulation mode onto the shared implementation
|
||||
- [x] 4. Integration: wire simulation mode onto the shared implementation
|
||||
- [x] 4.1 Replace simulation mode's placeholder picker with the shared picker/allocator pair
|
||||
- Replace simulation mode's own always-pend placeholder thread with the shared job-picking and allocation thread pair from 3.1, spawned against simulation mode's own core state
|
||||
- Confirm the existing one-job-at-a-time hand-off guarantee between picking and allocating still holds now that simulation mode genuinely uses it for the first time
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
- _Requirements: 2.2_
|
||||
- _Boundary: Unified Picker/Allocator Threads, Limit Plugin Core-Safe Matching_
|
||||
|
||||
- [ ] 5. Validation: prove equivalence and the concrete acceptance test
|
||||
- [x] 5. Validation: prove equivalence and the concrete acceptance test
|
||||
- [x] 5.1 Prove identical decisions and accounting state under resource contention across both drivers
|
||||
- Build a resource-contention fixture (multiple jobs, capacity insufficient for all of them, including capacity constrained by a matching limit) and drive it through both drivers
|
||||
- Observable: both drivers produce the same admission/pend outcome and the same final resource-accounting state for the identical input
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"feature_name": "xce-test-cli-ux",
|
||||
"created_at": "2026-08-26T08:38:15Z",
|
||||
"updated_at": "2026-09-08T22:15:00Z",
|
||||
"updated_at": "2026-09-29T12:59:52Z",
|
||||
"language": "en",
|
||||
"phase": "tasks-generated",
|
||||
"phase": "implemented",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Implementation Plan
|
||||
|
||||
- [ ] 1. Foundation: shared libraries, process-level fixes, and test harness
|
||||
- [x] 1. Foundation: shared libraries, process-level fixes, and test harness
|
||||
- [x] 1.1 Build the flag-descriptor table format and getopt_long-based parsing/rejection core
|
||||
- Define the flag-descriptor structure (short form, long form, concept name, required flag, default description) and a builder that produces a getopt_long-compatible option table from it
|
||||
- Implement the shared rejection path: an unrecognized or malformed flag prints the offending flag plus the command's usage summary to stderr and returns a nonzero result
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
- Observable completion: a smoke test using the new harness launches the client, sends a trivial command, and confirms the expected output arrives on the correct stream with the expected exit code
|
||||
- _Boundary: Testing Infrastructure_
|
||||
|
||||
- [ ] 2. Core: independent new capabilities and standalone fixes
|
||||
- [x] 2. Core: independent new capabilities and standalone fixes
|
||||
- [x] 2.1 (P) Build the destructive-command confirmation gate and its session-scoped toggle
|
||||
- Implement a confirmation check that prompts the operator on stderr before proceeding, returns a distinct "not run" outcome on decline, and treats an interrupt during the prompt the same as a decline
|
||||
- Add a bypass flag usable per invocation and a session-scoped toggle (mirroring the existing continue-on-error toggle's style) that both default to requiring confirmation and both reset at process start
|
||||
|
|
@ -97,7 +97,7 @@
|
|||
- _Requirements: 12.1_
|
||||
- _Boundary: Bug-1557 Fix_
|
||||
|
||||
- [ ] 3. Integration: migrate existing commands onto the new foundations
|
||||
- [x] 3. Integration: migrate existing commands onto the new foundations
|
||||
- [x] 3.1 Migrate every flag-accepting command's parsing to the shared validation library
|
||||
- Convert every command currently parsing flags via the older mechanisms (including the one command using a fully hand-rolled long-flag parser) to the shared descriptor-table-driven parsing built in 1.1/1.2, so every one uniformly rejects an unrecognized or malformed flag and gains a long-form equivalent for each concept
|
||||
- While migrating the queue-control command, initialize its action selection to an explicit unset sentinel and reject the invocation if none of its mutually-exclusive action flags was given, matching its sibling host-control command's existing pattern
|
||||
|
|
@ -148,7 +148,7 @@
|
|||
- _Boundary: Command Dispatcher_
|
||||
- _Depends: 3.1, 3.2, 3.3, 3.4, 3.5_
|
||||
|
||||
- [ ] 4. Validation: end-to-end verification
|
||||
- [x] 4. Validation: end-to-end verification
|
||||
- [x] 4.1 Verify Ctrl-C cancellation end-to-end
|
||||
- Confirm interrupting a command blocked on a real request abandons the wait well before its own timeout, reports the command as failed, and leaves the session's context and connection usable
|
||||
- Confirm that issuing a second command on the same connection immediately after an interrupt does not race the abandoned request, and that a command on a different connection is unaffected
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue