docs: add weekly report and change log for Sep 13-19, 2026

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC
This commit is contained in:
Rongsong Shen 2026-09-20 13:18:15 +00:00
parent ea76f4771f
commit 0a983a74e1
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
2 changed files with 233 additions and 0 deletions

View file

@ -3,6 +3,173 @@
Auto-generated by /xce-changes — component-grouped, newest week first.
`.wolf/` bookkeeping commits are excluded.
## Sep 13, 2026 - Sep 19, 2026
<!-- window: 2026-09-13..2026-09-19 -->
### controller
- `6c437e2b` fix(controller-status): ctrlstatus_fill must prefer a live registry slot over a stale disconnected one (task 8.6, bug-1819) (2026-09-16)
- `ab5dd915` feat(controller-status): source per-controller connection status in ctrlstatus_fill (task 8.2) (2026-09-16)
- `1b278c0e` feat(controller-status): add per-controller connection-status field to CtrlPeer schema (task 8.1) (2026-09-16)
- `93f32b5d` feat(controller-status): source election time in ctrlstatus_fill (task 7.4) (2026-09-16)
- `30adc52e` feat(controller-status): carry election time on the heartbeat (task 7.3) (2026-09-16)
- `21ae00b3` feat(controller-status): stamp election time on both promotion roads (task 7.2) (2026-09-16)
- `cae1039e` feat(controller-status): add election-time schema fields + ha_state_t (task 7.1) (2026-09-16)
- `cbf822fc` fix: repoint stale controller/xce_test path references to harness/xce_test (2026-09-14)
- `b5873a67` feat(xce-harness-component): consolidate harness_unit_test binary (2026-09-14)
- `9ed68025` feat(xce-harness-component): promote ctrlstatus_fmt.h to shared xce/ include path (2026-09-14)
- `cf55d691` feat(xce-harness-component): relocate xce_test into standalone harness component (2026-09-14)
### worker
- `9369b871` fix(worker): stop treating systemd's UINT64_MAX sentinel as real rusage data (2026-09-15)
### scheduler
- `4db992b5` fix(scheduler): close core_clock.c isolation-test coverage gap (bug-1827) (2026-09-19)
- `a643966f` fix(scheduler): plugin_end_session() guards on the wrong field (bug-1682/1492) (2026-09-19)
- `aacb7250` docs(scheduler-sim-live-allocation): reconcile equivalence suites (task 5.3) (2026-09-19)
- `a70c7a2c` test(scheduler-sim-live-allocation): prove replay-driven limit visibility (task 5.2, closes bug-1826) (2026-09-19)
- `ab88848f` test(scheduler-sim-live-allocation): prove contention parity across drivers (task 5.1) (2026-09-19)
- `f6a28621` feat(scheduler-sim-live-allocation): close host-scoped limit fan-out seam gap (task 4.3) (2026-09-19)
- `915782fc` feat(scheduler-sim-live-allocation): narrow reconciliation to the timing-gap safety net (task 4.2) (2026-09-19)
- `08df6493` feat(scheduler-sim-live-allocation): wire simulation mode onto shared picker/allocator (task 4.1) (2026-09-19)
- `4195331b` feat(scheduler-sim-live-allocation): extract shared picker/allocator into sched_election.c (task 3.1) (2026-09-19)
- `fc23ea8d` feat(scheduler-sim-live-allocation): make limit matching core-safe (task 2.3) (2026-09-18)
- `ecdea8bf` feat(scheduler-sim-live-allocation): make allocation dispatch and decision commit core-safe (task 2.2) (2026-09-18)
- `d52c78e4` feat(scheduler-sim-live-allocation): thread core state through allocation context and host search (task 2.1) (2026-09-18)
- `55173fca` feat(scheduler-sim-live-allocation): make capacity checks core-safe (task 1.3) (2026-09-18)
- `e8866641` feat(scheduler-sim-live-allocation): make plugin hook dispatch core-safe (task 1.2) (2026-09-18)
- `89297dc8` feat(scheduler-sim-live-allocation): add unsatisfiable-cache callback seam (task 1.1) (2026-09-18)
- `487e7b94` fix(scheduler-sim-diagnostics): bootstrap limit plugin in sim mode (bug-1825) (2026-09-18)
- `97c182cb` test(scheduler-sim-diagnostics): verify info limit is read-only and deterministic (2026-09-17)
- `afe22d31` feat(scheduler-sim-diagnostics): wire info limit into REPL dispatch (2026-09-17)
- `4f60f148` feat(scheduler-sim-diagnostics): display per-host usage for host-scoped limits (2026-09-17)
- `6148cb05` feat(scheduler-sim-diagnostics): display live usage for cluster-wide limit instances (2026-09-17)
- `5876716e` feat(scheduler-sim-diagnostics): display effective host-scope note (Req 1.6) (2026-09-17)
- `117d01c7` feat(scheduler-sim-diagnostics): display configured limit setting via fmt_limit() (2026-09-17)
- `d3df8fb2` feat(scheduler-sim-diagnostics): implement info limit name/all resolution (2026-09-17)
- `915c0e44` feat(scheduler-sim-diagnostics): add read-only limit plugin accessors (2026-09-17)
- `dfabb674` fix(scheduler): freeze mem-usage reconciliation for a RECONCILING/UNAVAIL worker too (2026-09-15)
- `d5ec1eb3` refactor(scheduler): defer job-array expansion off the vtask thread pool (2026-09-15)
- `6c201bb3` fix(scheduler): refuse a stale JOBS_PUSH resync claim that would destroy a real allocation (2026-09-15)
- `b7250c2e` fix(scheduler): downgrade routine EEXIST resync log, dedup hash_string (2026-09-15)
### xceadmin
- `723fdb63` feat(xceadmin): accept a comma-separated --controller failover list (bug-1821, bug-1822) (2026-09-17)
### lib
- `30adc52e` feat(controller-status): carry election time on the heartbeat (task 7.3) (2026-09-16)
- `63de9473` fix(lib): zarray_fini/xlist_fini must reset caps/count, not just free data (2026-09-16)
- `0f3919f1` fix(lib): stop cbuf_put/get orphaning their mutex on cancellation, hanging vtaskmgr_fini (2026-09-15)
- `b7250c2e` fix(scheduler): downgrade routine EEXIST resync log, dedup hash_string (2026-09-15)
### include
- `1b278c0e` feat(controller-status): add per-controller connection-status field to CtrlPeer schema (task 8.1) (2026-09-16)
- `30adc52e` feat(controller-status): carry election time on the heartbeat (task 7.3) (2026-09-16)
- `cae1039e` feat(controller-status): add election-time schema fields + ha_state_t (task 7.1) (2026-09-16)
- `b7250c2e` fix(scheduler): downgrade routine EEXIST resync log, dedup hash_string (2026-09-15)
- `9ed68025` feat(xce-harness-component): promote ctrlstatus_fmt.h to shared xce/ include path (2026-09-14)
### schema
- `1b278c0e` feat(controller-status): add per-controller connection-status field to CtrlPeer schema (task 8.1) (2026-09-16)
- `cae1039e` feat(controller-status): add election-time schema fields + ha_state_t (task 7.1) (2026-09-16)
### specs
- `984a6869` docs(scheduler): correct stale bug-1611 status and driver-equivalence steering (2026-09-19)
- `2f994067` docs(scheduler-sim-live-allocation): validate against real recorded sessions (task 5.4) (2026-09-19)
- `aacb7250` docs(scheduler-sim-live-allocation): reconcile equivalence suites (task 5.3) (2026-09-19)
- `a70c7a2c` test(scheduler-sim-live-allocation): prove replay-driven limit visibility (task 5.2, closes bug-1826) (2026-09-19)
- `ab88848f` test(scheduler-sim-live-allocation): prove contention parity across drivers (task 5.1) (2026-09-19)
- `f6a28621` feat(scheduler-sim-live-allocation): close host-scoped limit fan-out seam gap (task 4.3) (2026-09-19)
- `915782fc` feat(scheduler-sim-live-allocation): narrow reconciliation to the timing-gap safety net (task 4.2) (2026-09-19)
- `08df6493` feat(scheduler-sim-live-allocation): wire simulation mode onto shared picker/allocator (task 4.1) (2026-09-19)
- `4195331b` feat(scheduler-sim-live-allocation): extract shared picker/allocator into sched_election.c (task 3.1) (2026-09-19)
- `fc23ea8d` feat(scheduler-sim-live-allocation): make limit matching core-safe (task 2.3) (2026-09-18)
- `ecdea8bf` feat(scheduler-sim-live-allocation): make allocation dispatch and decision commit core-safe (task 2.2) (2026-09-18)
- `d52c78e4` feat(scheduler-sim-live-allocation): thread core state through allocation context and host search (task 2.1) (2026-09-18)
- `55173fca` feat(scheduler-sim-live-allocation): make capacity checks core-safe (task 1.3) (2026-09-18)
- `e8866641` feat(scheduler-sim-live-allocation): make plugin hook dispatch core-safe (task 1.2) (2026-09-18)
- `89297dc8` feat(scheduler-sim-live-allocation): add unsatisfiable-cache callback seam (task 1.1) (2026-09-18)
- `487e7b94` fix(scheduler-sim-diagnostics): bootstrap limit plugin in sim mode (bug-1825) (2026-09-18)
- `2f1ffd1e` docs(scheduler-sim-diagnostics): add task 6, sim-mode limit plugin bootstrap (bug-1825) (2026-09-18)
- `77924f78` chore(scheduler-sim-diagnostics): mark container-only task groups complete (2026-09-17)
- `57b93f29` chore(buglog): log bug-1825, limit plugin never registered in any sim-mode driver path (2026-09-17)
- `97c182cb` test(scheduler-sim-diagnostics): verify info limit is read-only and deterministic (2026-09-17)
- `afe22d31` feat(scheduler-sim-diagnostics): wire info limit into REPL dispatch (2026-09-17)
- `4f60f148` feat(scheduler-sim-diagnostics): display per-host usage for host-scoped limits (2026-09-17)
- `6148cb05` feat(scheduler-sim-diagnostics): display live usage for cluster-wide limit instances (2026-09-17)
- `5876716e` feat(scheduler-sim-diagnostics): display effective host-scope note (Req 1.6) (2026-09-17)
- `117d01c7` feat(scheduler-sim-diagnostics): display configured limit setting via fmt_limit() (2026-09-17)
- `d3df8fb2` feat(scheduler-sim-diagnostics): implement info limit name/all resolution (2026-09-17)
- `b79a547a` docs(scheduler-sim-diagnostics): record task 1 fixture-gap learning for task 2.1 (2026-09-17)
- `915c0e44` feat(scheduler-sim-diagnostics): add read-only limit plugin accessors (2026-09-17)
- `80e096b8` docs(scheduler-sim-diagnostics): finalize requirements, design, and tasks for limit inspection (2026-09-17)
- `d19e9f27` docs(controller-status): record feature-level GO for Req 13 delta (2026-09-16)
- `6c437e2b` fix(controller-status): ctrlstatus_fill must prefer a live registry slot over a stale disconnected one (task 8.6, bug-1819) (2026-09-16)
- `464489d9` docs(controller-status): mark task 8.4 complete -- live E2E validation (Req 13 delta) (2026-09-16)
- `64b18d5c` feat(controller-status): render per-controller connection status in ctrlstatus command (task 8.3) (2026-09-16)
- `ab5dd915` feat(controller-status): source per-controller connection status in ctrlstatus_fill (task 8.2) (2026-09-16)
- `1b278c0e` feat(controller-status): add per-controller connection-status field to CtrlPeer schema (task 8.1) (2026-09-16)
- `8a1964d4` docs(controller-status): correct stale lock-acquisition claim in Req 13 design (2026-09-16)
- `40882c63` docs(controller-status): add Requirement 13 delta (per-controller connection status) (2026-09-16)
- `2d7990aa` docs(controller-status): record feature-level GO for Req 12 delta (2026-09-16)
- `ff757704` docs(controller-status): correct Req 12 delta File Structure Plan (2026-09-16)
- `6911056a` docs(controller-status): update spec.json for Req 12 delta completion (2026-09-16)
- `196fa663` docs(controller-status): mark task 7.6 complete, record live-E2E outcome (2026-09-16)
- `80839661` fix(controller-status): gate electedTerm/electedAt on elected_at_ms, not primaryName (2026-09-16)
- `d982d34e` feat(controller-status): render election term/time in ctrlstatus CLI (task 7.5) (2026-09-16)
- `93f32b5d` feat(controller-status): source election time in ctrlstatus_fill (task 7.4) (2026-09-16)
- `30adc52e` feat(controller-status): carry election time on the heartbeat (task 7.3) (2026-09-16)
- `21ae00b3` feat(controller-status): stamp election time on both promotion roads (task 7.2) (2026-09-16)
- `cae1039e` feat(controller-status): add election-time schema fields + ha_state_t (task 7.1) (2026-09-16)
- `7556856e` docs(controller-status): add Requirement 12 delta (primary election term/time) (2026-09-16)
- `cf380750` chore(xce-harness-component): mark spec implementation-complete (2026-09-14)
- `2f7b64b4` docs(xce-harness-component): refresh harness CLAUDE.md post-implementation (2026-09-14)
- `9d81eda5` test(xce-harness-component): verify all downstream workflows end-to-end (2026-09-14)
- `b3aa2af2` test(xce-harness-component): verify build isolation; narrow requirement 2.2 (2026-09-14)
- `7958b395` test(xce-harness-component): verify harness_unit_test's build-order dependency (2026-09-14)
- `973d38f2` test(xce-harness-component): verify xce_test behavioral parity after relocation (2026-09-14)
- `64e4ccb3` docs(xce-harness-component): list harness in structure.md (2026-09-14)
- `6318183b` docs(xce-harness-component): document harness in root CLAUDE.md and build-deployment.md (2026-09-14)
- `ae3ab2b4` feat(xce-harness-component): xce-test-resources builds/checks harness explicitly (2026-09-14)
- `06262347` feat(xce-harness-component): xce-test-multihost builds/checks harness explicitly (2026-09-14)
- `5bd1c75c` docs(xce-harness-component): document harness soft-skip in xce-deploy-ha (2026-09-14)
- `84c812b0` feat(xce-harness-component): xce-test-ha builds/checks harness explicitly (2026-09-14)
- `9a4f1aa9` feat(xce-harness-component): add /xce-build harness, decouple from controller (2026-09-14)
- `49cf25aa` feat(xce-harness-component): relocate the four standalone test binaries (2026-09-14)
- `b5873a67` feat(xce-harness-component): consolidate harness_unit_test binary (2026-09-14)
- `79628f7b` docs(xce-harness-component): add harness component guide (2026-09-14)
- `9ed68025` feat(xce-harness-component): promote ctrlstatus_fmt.h to shared xce/ include path (2026-09-14)
- `cf55d691` feat(xce-harness-component): relocate xce_test into standalone harness component (2026-09-14)
### build
- `7b274ec0` fix(deploy-ha): stop-all.sh/cleanup.sh must find the real worker regardless of sudo process-tree depth (bug-1823) (2026-09-17)
- `baa07d78` fix(deploy-ha): stop-all.sh/cleanup.sh must also kill the real worker's sudo child (bug-1820) (2026-09-17)
- `64b18d5c` feat(controller-status): render per-controller connection status in ctrlstatus command (task 8.3) (2026-09-16)
- `80839661` fix(controller-status): gate electedTerm/electedAt on elected_at_ms, not primaryName (2026-09-16)
- `d982d34e` feat(controller-status): render election term/time in ctrlstatus CLI (task 7.5) (2026-09-16)
- `7f3237ae` fix(xce-deploy-ha): stop a stale deploy's processes surviving a hand-typed cleanup mistake (2026-09-15)
- `76e63592` feat(xce-build): default --jobs to a live-computed value when omitted (2026-09-15)
- `868c6427` fix(harness): reset getopt_long via optind=0 to stop cross-command corruption (2026-09-14)
- `cbf822fc` fix: repoint stale controller/xce_test path references to harness/xce_test (2026-09-14)
- `2f7b64b4` docs(xce-harness-component): refresh harness CLAUDE.md post-implementation (2026-09-14)
- `9a4f1aa9` feat(xce-harness-component): add /xce-build harness, decouple from controller (2026-09-14)
- `49cf25aa` feat(xce-harness-component): relocate the four standalone test binaries (2026-09-14)
- `b5873a67` feat(xce-harness-component): consolidate harness_unit_test binary (2026-09-14)
- `79628f7b` docs(xce-harness-component): add harness component guide (2026-09-14)
- `9ed68025` feat(xce-harness-component): promote ctrlstatus_fmt.h to shared xce/ include path (2026-09-14)
- `cf55d691` feat(xce-harness-component): relocate xce_test into standalone harness component (2026-09-14)
### misc
- `7f3237ae` fix(xce-deploy-ha): stop a stale deploy's processes surviving a hand-typed cleanup mistake (2026-09-15)
- `76e63592` feat(xce-build): default --jobs to a live-computed value when omitted (2026-09-15)
- `89a3dec5` feat(xce-build): discount --jobs for forked compiler/assembler children per profile (2026-09-15)
- `cbf822fc` fix: repoint stale controller/xce_test path references to harness/xce_test (2026-09-14)
- `6318183b` docs(xce-harness-component): document harness in root CLAUDE.md and build-deployment.md (2026-09-14)
- `ae3ab2b4` feat(xce-harness-component): xce-test-resources builds/checks harness explicitly (2026-09-14)
- `06262347` feat(xce-harness-component): xce-test-multihost builds/checks harness explicitly (2026-09-14)
- `5bd1c75c` docs(xce-harness-component): document harness soft-skip in xce-deploy-ha (2026-09-14)
- `84c812b0` feat(xce-harness-component): xce-test-ha builds/checks harness explicitly (2026-09-14)
- `04807985` add weekly report and change log for Sep 06-12, 2026 (2026-09-13)
## Sep 06, 2026 - Sep 12, 2026
<!-- window: 2026-09-06..2026-09-12 -->

View file

@ -0,0 +1,66 @@
# XCE Project Status — Sep 13 – Sep 19, 2026
> Note: the calendar-default window (Sep 07–Sep 12) is already covered by
> `sep06-sep12-2026.md`; this report covers the actual gap — the last
> completed day before this report was generated.
## TL;DR
A scheduler-architecture week, one spec per day or two: Monday relocated `xce_test` out of `controller` into its own standalone `harness` component; Tuesday was a live-replay-driven resource-accounting firefight (7 bugs fixed same-day — stale `JOBS_PUSH` resync races, a systemd rusage sentinel bug, a reconciliation-freeze gap); Wednesday shipped `controller-status`'s Req 12 (election term/time) and Req 13 (per-controller connection status) deltas to feature-level GO; Thursday landed `scheduler-sim-diagnostics`' human-readable limit-inspection feature (Req 1–5) end-to-end, plus a run of `deploy-ha` worker-cleanup fixes; Friday–Saturday built and shipped `scheduler-sim-live-allocation` — a genuinely large unification merging the normal-mode driver's and sim-mode driver's job-election/allocation logic into one shared implementation (`sched_election.c`), closing bug-1825/1826 (sim-mode limit-plugin bootstrap and matching) along the way. 25 new bugs were opened, 22 fixed, 2 deliberately deferred, and 1 fix attempt was reverted after it broke the recorded-decision-reconciliation live-verify test. ⚠️ A mass bug-log retag on Saturday touched 1,164 historical entries with an identical timestamp — at least one now carries a "fixed" tag that contradicts its own fix-field prose (see Bugs section).
## Commits by day
### Sun 09-13 (Sunday) — bookkeeping only
- **`04807985`..`b8ef82c1`** (2 commits) — added last week's report (`sep06-sep12-2026.md`) and `CHANGES.md`, then a routine `.wolf` sync. No code changes.
### Mon 09-14 (Monday) — xce-harness-component: full spec in one day
- **`cf55d691`..`868c6427`** (19 commits) — relocated `xce_test` and its four standalone test binaries out of `controller` into a new standalone `harness` component (own `/xce-build harness` target, decoupled from `controller`'s build), promoted `ctrlstatus_fmt.h` to the shared `xce/` include path, and wired `harness` into `xce-test-ha`/`xce-test-multihost`/`xce-test-resources`'s explicit build/check steps. Verified build isolation, `xce_test`'s post-relocation behavioral parity, and every downstream workflow end-to-end (tasks 1–4, all in one day). Also fixed **bug-1807** (`getopt_long`'s `optind=0` reset, cross-command state corruption) and **bug-1808** (a longjmp'd Unity assertion leaking a spawned `xce_test` child process).
### Tue 09-15 (Tuesday) — live-replay resource-accounting firefight
- **`b7250c2e`..`7f3237ae`** (8 commits) — a live-replay debugging session found and fixed, same-day: **bug-1809** (routine `EEXIST` resync log flooding operational output), **bug-1810** (`cbuf_put`/`cbuf_get` orphaning their mutex on cancellation, hanging `vtaskmgr_fini`), **bug-1812/1813** (a stale `JOBS_PUSH` resync claim could destroy a real allocation; job-array expansion moved off the vtask thread pool as the underlying architectural fix), **bug-1814** (worker rusage collection was treating systemd's `UINT64_MAX` sentinel as real memory data), **bug-1815** (mem-usage reconciliation now freezes for a RECONCILING/UNAVAIL worker too, closing a gap next to bug-1801), and **bug-1816** (`xce-deploy-ha`: stop a stale deploy's processes surviving a hand-typed cleanup mistake). Also added a live-computed default for `xce-build`'s `--jobs` flag.
### Wed 09-16 (Wednesday) — controller-status: two requirement deltas to GO
- **`63de9473`..`d19e9f27`** (20 commits) — **Req 12** (primary election term/time): new schema fields + `ha_state_t`, stamped on both promotion roads, carried on the heartbeat, sourced in `ctrlstatus_fill`, rendered in the `ctrlstatus` CLI — reached feature-level GO. **Req 13** (per-controller connection status): same shape (schema field → `ctrlstatus_fill` → CLI render) — reached feature-level GO, but its own live E2E validation (task 8.6) found **bug-1819**: `ctrlstatus_fill` was preferring a stale disconnected registry slot over a live one (slot-reuse, first-match-wins bug), fixed same-day. Also fixed **bug-1818** (a dead-code gate had `cmd_ctrlstatus` never actually reaching its own display-layer election check) and a `zarray_fini`/`xlist_fini` bug that left stale `caps`/`count` behind instead of resetting them.
### Thu 09-17 (Thursday) — scheduler-sim-diagnostics limit inspection, plus deploy-ha/xceadmin fixes
- **`baa07d78`..`77924f78`** (18 commits, 2 `.wolf`-only) — built `info limit`'s full feature set end-to-end: name/`all` resolution, configured-setting display via `fmt_limit()`, effective host-scope notes (Req 1.6), live usage for both cluster-wide and host-scoped limit instances, and REPL dispatch wiring — with a read-only/deterministic proof as the closing task. Found and logged **bug-1824** (a latent, pre-existing `zarray` bounds imprecision in `repl_info_resource_one()`, left unfixed as out-of-scope) along the way. Same day: **bug-1820/1823** (`stop-all.sh`/`cleanup.sh` couldn't find a real, sudo-launched worker regardless of process-tree depth — two rounds, the second a regression on the first's own fix) and **bug-1821/1822** (`xceadmin` now accepts a comma-separated `--controller` failover list; found a `NoPrimaryError` retry gap live while verifying it).
### Fri 09-18 (Friday) — scheduler-sim-live-allocation: foundation
- **`fc23ea8d`..`2f1ffd1e`** (8 commits) — started the driver-unification effort: threaded core state through allocation context and host search, made plugin-hook dispatch, capacity checks, allocation-dispatch/decision-commit, and limit matching all "core-safe" (usable from either driver). Same day, fixed **bug-1825**: the limit plugin was never registered on any sim-mode driver path at all — a `limit_new_plugin()` factory plus a new `sim_bootstrap_limit_plugin()` (mirroring `sim_picker.c`'s own bootstrap shape) closed the gap.
### Sat 09-19 (Saturday) — scheduler-sim-live-allocation: unification to done
- **`4195331b`..`8c363de7`** (13 commits, 1 `.wolf`-only) — extracted the shared picker/allocator into a new `sched_election.c`, wired simulation mode onto it, narrowed reconciliation to a timing-gap safety net, closed a host-scoped limit fan-out seam gap, then proved contention parity across drivers and replay-driven limit visibility (closing **bug-1826**, the sim-mode limit-*matching* follow-up to Friday's bootstrap fix) and reconciled the equivalence test suites. Also fixed **bug-1682/1492** (`plugin_end_session()` guarding on the wrong field) and **bug-1827** (a `core_clock.c` coverage gap in the core-isolation test found during an `/xce-audit-invariants scheduler` run), and corrected a stale bug-1611 status claim in the driver-equivalence steering doc.
## Bugs opened/fixed this window
- **25 genuinely new bugs** (bug-1805 – bug-1829): **22 fixed**, **2 deliberately deferred** (bug-1806 — accepted as a documented Meson platform limitation, user decision 2026-09-14; bug-1824 — latent pre-existing bug, out of its discovering task's scope), **1 reverted** (bug-1811 — an initial guard-based fix broke `test_e2e_original_motivation_long_replay`, the live-verify for the entire Recorded-Decision Reconciliation mechanism, and was rolled back; reclassified as a design decision, not a defect).
- **Carry-over status from last week's report**: `xce-test-cli-ux`'s `spec.json` metadata lag — **still unsynced**, now 2 windows running. bug-1796/1797/1793/1777 — **still open**, deliberately deferred, unowned. bug-1714 — **still zero movement**, now a 3rd consecutive window (last real progress Aug 26). bug-1632/1726/1728 — **still zero movement**, also a 3rd consecutive window. `gitea` MCP connectivity — **still failing to connect** (confirmed again this session).
- Highest-severity fixes: **bug-1817** (a SIGSEGV core dump in a live, HA-connected `xce_scheduler` — a "previously-unroot-caused, recurring bug class" per its own tags, fixed at the `zarray`/`xlist` library-primitive level), **bug-1814/1815** (a live-user-traced memory-accounting chain: a systemd rusage sentinel bug plus the reconciliation-freeze gap it exposed), **bug-1819** (a display-layer stale-slot bug found during `controller-status`'s own live E2E validation).
- ⚠️ **Integrity concern**: a mass edit on Sat, `last_seen=2026-09-19T09:00:00Z`, added the tag `closed-by-scheduler-sim-live-allocation` (plus, on many entries, a bare `fixed` tag) to **1,164** historical bug entries — including clearly unrelated ones from as far back as May (`bug-002`). At least one (**bug-1811**) now carries a `fixed` tag that directly contradicts its own fix-field text ("REVERTED"). Any future tooling that trusts `.tags` or `.fix`-field-non-empty as a status oracle will misclassify entries like this — the fix field's actual prose (read fresh) remains the only reliable signal. Worth either a stale-tag cleanup pass or documenting this caveat permanently in the buglog's own schema notes.
## Spec status changes
- **`xce-harness-component`** — `implementation-complete` (Mon), 16/20 tasks checked (the 4 unchecked are top-level group headers whose own subtasks are all done — a checkbox-convention gap, not real incompleteness). Metadata is correctly synced this time.
- **`controller-status`** — Req 12 and Req 13 deltas both reached feature-level GO this window (Wed); 29/30 tasks done, the 1 remaining explicitly marked optional (`8.5`, live-cluster observation). `spec.json` still reads phase `tasks-generated` / `ready_for_implementation: true` rather than `implementation-complete` — a metadata-sync candidate, same class of gap flagged for `xce-test-cli-ux`.
- **`scheduler-sim-diagnostics`** — Requirements 1–5 (limit inspection) shipped end-to-end (Thu), 17/19 tasks checked (tasks 8 and 10's own subtasks are all done; only their parent headers are unflipped, same convention gap as above). Requirement 6 (human-readable units) had not started as of this window's close.
- **`scheduler-sim-live-allocation`** — a new spec, taken from Task 1.1 to Task 5.4 (all subtasks complete per commit history) in two days (Fri–Sat). `spec.json` still reads `tasks-generated` / `ready_for_implementation: false` — the THIRD spec this window showing the same phase/checkbox metadata lag (alongside `xce-test-cli-ux` and `controller-status`), suggesting a quick batch phase-sync pass would clear all three at once.
## Stats
- **89 commits** — **83 touching at least one non-`.wolf` file**, **6 pure-`.wolf` bookkeeping** (4 routine `chore(openwolf)` syncs, 2 buglog-only edits).
- **454 non-`.wolf` file changes**, **+21,856 / −2,047** (non-wolf headline; raw incl. `.wolf`: +30,969 / −5,452).
- Busiest areas by files touched: `src/scheduler` (78), `src/harness` (50), `.kiro` (25), `src/lib` (12), `src/controller` (12), `.claude` (8), `src/xceadmin` (7), `.wolf` (6), `src/include` (4).
- By spec scope: `controller-status` (19 commits), `xce-harness-component` (18), `scheduler-sim-live-allocation` (14), `scheduler-sim-diagnostics` (13), `scheduler` (7, unscoped fixes).
- **1 spec shipped and correctly synced** (`xce-harness-component`); **2 requirement deltas reached feature-level GO** (`controller-status` Req 12/13); **2 specs functionally complete pending metadata sync** (`scheduler-sim-diagnostics` Req 1–5, `scheduler-sim-live-allocation`).
- **10 sessions** logged in `.wolf/memory.md` touching this window (Sep 14 ×3, Sep 15 ×3, Sep 16 ×2, Sep 17 ×1, Sep 18 ×1); busiest logged day **Sep 18** (383 actions — the `scheduler-sim-live-allocation` foundation day).
- Commits landed on all 7 days; peak day **Wed 09-16** (20 commits, `controller-status` Req 12+13), close behind by **Sat 09-19** (13 commits, closing `scheduler-sim-live-allocation`).
## Open threads / to-do heading into next session
1. **Metadata-lag pattern now spans three specs**: `xce-test-cli-ux` (2 windows unaddressed), and newly `controller-status` (29/30 done, both deltas GO) and `scheduler-sim-live-allocation` (all subtasks done) — all three still read a stale phase/`ready_for_implementation` in `spec.json`. A single batch phase-sync pass would clear all three at once.
2. **Buglog integrity**: the Sat mass retag (1,164 entries, `closed-by-scheduler-sim-live-allocation`, identical `last_seen`) leaves `.tags` and `.fix`-non-empty unreliable as status signals — confirmed via `bug-1811`'s contradicting `fixed` tag. Needs a cleanup pass or a documented caveat before any tooling trusts those fields directly again.
3. **`gitea` sync backlog now 32 bugs deep** (bug-1798 through bug-1829) — the MCP server is still failing to connect (`CONNECT_TIMEOUT`, reconfirmed this session). Retry `gitea-sync` once reachable.
4. **`bug-1714`/`bug-1632`/`bug-1726`/`bug-1728`** — zero movement for a 3rd consecutive window each. Worth an explicit triage-or-accept decision rather than letting them keep aging silently.
5. **`bug-1796`/`bug-1797`/`bug-1793`/`bug-1777`** — still deliberately deferred from `xce-test-cli-ux`'s validation tasks, still unowned.
6. **`scheduler-sim-eager-reconciliation`'s live-replay smoke pass** (flagged last week) — still not directly done; `scheduler-sim-live-allocation`'s tasks 5.1/5.2/5.4 delivered adjacent live-replay proof, but for a different spec — the original open item remains untouched.
7. **`scheduler-sim-live-allocation` shipped a full driver-unification architecture in two days** — before treating it as fully done, it warrants a live multi-round replay or HA-adjacent smoke pass beyond the unit suite, the same caution this project's own `/xce-audit-invariants` methodology applies to architectural/consistency changes of this size.