diff --git a/.wolf/anatomy-index.json b/.wolf/anatomy-index.json index 01792e86..7b715c0a 100644 --- a/.wolf/anatomy-index.json +++ b/.wolf/anatomy-index.json @@ -1,13 +1,13 @@ { "version": 1, "meta": { - "lastScanned": "2026-09-03T09:38:24.553Z", + "lastScanned": "2026-09-03T09:43:09.039Z", "fileCount": 678, "hits": 0, "misses": 0, - "renderedHash": "e164f762b92f5a3fc1d4da53cddc99441eeea59534b03859442c0e4d03095927", - "storeUpdatedAt": "2026-09-03T09:38:24.562Z", - "rootHash": "30635557a308ae3c" + "renderedHash": "f9b6b5e6c45a57b158c2e3c36ad0803517219698085a8974bf0619c39da55a71", + "storeUpdatedAt": "2026-09-03T09:43:09.048Z", + "rootHash": "1f27b673c8fd7041" }, "files": { ".agent-shell/transcripts/2026-08-11-11-39-59.md": { @@ -3239,23 +3239,21 @@ }, ".kiro/specs/xce-test-rc-file/spec.json": { "description": "", - "tokens": 128, - "hash": "2150249eb83ee3cb", - "size": 446, - "mtimeMs": 1787735907810.2854, - "updatedAt": "2026-08-27T19:00:00.134Z", - "source": "scan", - "importance": 0.21 + "tokens": 130, + "hash": "9483d281c3b51a21", + "size": 454, + "mtimeMs": 1788428589003.9302, + "updatedAt": "2026-09-03T09:43:09.039Z", + "source": "hook" }, ".kiro/specs/xce-test-rc-file/tasks.md": { "description": "Implementation Plan", "tokens": 1896, - "hash": "efed93cf113d7f18", + "hash": "e2f946f1c0e01baf", "size": 7596, - "mtimeMs": 1787765635278.1775, - "updatedAt": "2026-08-27T19:00:00.135Z", - "source": "scan", - "importance": 0.21 + "mtimeMs": 1788428585606.8066, + "updatedAt": "2026-09-03T09:43:05.650Z", + "source": "hook" }, ".kiro/steering/api-standards.md": { "description": "API Standards", diff --git a/.wolf/anatomy.md b/.wolf/anatomy.md index e172426f..1a4c9f7c 100644 --- a/.wolf/anatomy.md +++ b/.wolf/anatomy.md @@ -1,6 +1,6 @@ # anatomy.md -> Auto-maintained by OpenWolf. Last scanned: 2026-09-03T09:38:24.553Z +> Auto-maintained by OpenWolf. Last scanned: 2026-09-03T09:43:09.039Z > Files: 678 tracked | Anatomy hits: 0 | Misses: 0 ## ./ @@ -574,7 +574,7 @@ - `design.md` — Design Document (~4183 tok) - `requirements.md` — Requirements Document (~1477 tok) - `research.md` — Summary (~1771 tok) -- `spec.json` (~128 tok) +- `spec.json` (~130 tok) - `tasks.md` — Implementation Plan (~1896 tok) ## .kiro/steering/ diff --git a/.wolf/cerebrum.md b/.wolf/cerebrum.md index 1f6f37fb..4fe31879 100644 --- a/.wolf/cerebrum.md +++ b/.wolf/cerebrum.md @@ -229,3 +229,4 @@ - **(2026-08-26, bug-1718, xce-test-rc-file task 3.1) A `python3 -` (or any "read program from stdin") invocation placed on the SAME command as a `<"$DRIVER" <"` for a NULL current value) — the right primitive for any integration test that needs to observe an rc-file/`set`-driven setting change (e.g. `masters`) without a live controller connection. Don't hardcode the exact column padding when grepping its output (fragile) — extract via `sed -E 's/^masters[[:space:]]*:(.*) default:.*/\1/'` (greedy `(.*)` correctly captures the embedded-space `""` sentinel too, since there's only one literal `" default:"` substring per line to anchor against). - **(2026-08-26, xce-test-rc-file task 3.1) `xce_test` uses `libedit`'s `readline()`/`isatty(STDIN_FILENO)`-gated `g_interactive`, so a genuine interactive-mode integration test needs a REAL pty, not a piped stdin** — confirmed working via a small embedded Python `pty.fork()` driver (write commands to the master fd with a short settle delay after each, drain with `select()`, detect child exit via non-blocking `waitpid`, `os.waitstatus_to_exitcode()` for the real exit code). Same technique task 2.2's own implementer used for manual verification; this task turned it into a reusable scripted harness. The prompt itself (`fill_prompt`, top-level context) renders as literal `"xce>"` — grepping for that substring in the pty transcript is a good "this really was a TTY session, not a piped fallback" sanity check, distinct from the actual assertion under test. +- **A `.kiro/specs/*/tasks.md` checkbox count (`- [ ]` vs `- [x]`) is NOT reliable at face value when it includes section-HEADER checkboxes ("- [ ] N. Some phase name") — a spec whose every N.M subtask is `[x]` but whose parent `- [ ] N.` header was never flipped reads as "in progress" when it is actually 100% done.** (2026-09-03, cross-spec audit) Recurred a second time after the first fix (`5c82ad0b`, 2026-08-24, 5 specs): `scheduler-sim-eager-reconciliation` looked like "6/9, stalled since Aug 22" by a naive checkbox count, but all 3 "unchecked" items were section headers whose children (1.1/1.2/2.1/3.1/3.2/3.3) were already all `[x]`, with a `task 3.3 full regression confirmation` commit proving genuine completion on 2026-08-27. `worker-rejoin-resync` was the same drift the other direction (28/28 real tasks incl. headers all `[x]`, but `spec.json.phase` itself never advanced past `tasks-generated`). **Before reporting any spec as "stalled" or "N/M done," check headers and children SEPARATELY (`grep -E '^\s*-\s*\[ \]\s*[0-9]+\.'` for unchecked headers vs `^\s*-\s*\[ \]\s*[0-9]+\.[0-9]'` for unchecked subtasks) and cross-check `spec.json.phase`/`updated_at` against the tasks.md file's own git log — a low, stale-looking checkbox ratio and a phase field that hasn't moved are both metadata that can independently lag the real state, not just one signal.** diff --git a/.wolf/memory.md b/.wolf/memory.md index aaa99b33..e7c7e3c5 100644 --- a/.wolf/memory.md +++ b/.wolf/memory.md @@ -4085,3 +4085,7 @@ | 02:37 | Edited .kiro/specs/scheduler-sim-eager-reconciliation/spec.json | 3→3 lines | ~28 | | 02:38 | Edited .kiro/specs/scheduler-allocation/spec.json | modified 23() | ~261 | | 02:38 | Edited .kiro/specs/scheduler-preemption/spec.json | 1→3 lines | ~60 | +| 02:42 | Edited .kiro/specs/xce-test-rc-file/tasks.md | inline fix | ~20 | +| 02:43 | Edited .kiro/specs/xce-test-rc-file/tasks.md | inline fix | ~12 | +| 02:43 | Edited .kiro/specs/xce-test-rc-file/tasks.md | inline fix | ~18 | +| 02:43 | Edited .kiro/specs/xce-test-rc-file/spec.json | 3→3 lines | ~28 |