Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC
12 KiB
XCE Project Status — Sep 06 – Sep 12, 2026
Note: the calendar-default window (Aug 31–Sep 05) is already covered by
aug30-sep05-2026.md; this report covers the actual gap — the last completed day before this report was generated.
TL;DR
A CLI-quality week bookended by two scheduler-side finishes: Sunday closed out resreq-maxtasks-wiring (real multi-host task-count wiring, proven end-to-end and HA-soak clean), and the middle of the week was almost entirely xce-test-cli-ux — a large, self-contained rebuild of xce_test's interactive shell (interrupt-safe RPCs, confirmation gates, tab completion, JSON output, flag parsing) that surfaced its own cluster of testsuite bugs (bug-1791–1797). Monday/Tuesday cleared the last of the gitea#46 limit-plugin cascade and closed the from-scratch build race (bug-1798) for good. Saturday's session — driven by a live scheduler-replay debugging conversation — fixed a real resource over-commit (bug-1799/1801), added human-scaled resource-unit display (bug-1800), and, after live user feedback, revised scheduler-sim-eager-reconciliation's own design to make captured jobs' job->state transition synchronously (bug-1804) rather than deferred. Last week's flagged flagship gap, bug-1770 (multi-host allocation had no live production path), is now fixed.
Commits by day
Sun 09-06 — resreq-maxtasks-wiring to done, plus last week's report
799a71ec..5c87f1cc(12 commits) — built the real task-count derivation helper, wired it into fresh job-ingest and snapshot/replay-restore ingest, closed a worker launch-type coverage gap, then validated with a real multi-host end-to-end harness (plain multi-task job + array-job element, both genuinely split across hosts) and a full regression + HA soak pass. This is the fix for last week's flagged bug-1770 (multi-host allocation had zero live production path).a6b735b6— addedaug30-sep05-2026.mdandCHANGES.mdfor the prior window.
Mon 09-07 — gitea#46 limit-plugin cascade, apiserver job-control fixes
22cfe616..924ac32c— fixed the limit-plugin usergroup/scope/error-code cascade (gitea#46) end-to-end: named-usergroup resolution, default-scope semantics, kvmgr not-found-vs-error confusion (twice), an RTTI/pointer-indirection type-confusion bug, and finally live-verified all 7limits.yamllimits matching expectations (bug-1784–1789).099dbdab,5ab344e1— apiserver: fixed a job-control union discriminant bug + added human-readable job IDs (gitea#45 reopened), and propagated submit user as job execuser (bug-1780).0d3f925c,ef3c4670— scheduler: retired reconciled jobs from picker candidates and excluded terminal jobs from the assigned-jobs listing (bug-1759/1778/1779).a35f597e,e395eaa3— worker: real maxswap/maxtmp hardware detection (bug-1554); frontend: fixed host job-state/EXEC_HOST columns to count real slots.850d186d,028d8f6a— build:xce-build.shnow self-wraps intonix developand caps its run-queue length via a live-computed--jobsflag.
Tue 09-08 — bug-1790 residual gap, leak fixes, scheduler global-limit refactor
9caf1424..a6d96705— fixed bug-1790 (global limits on per-host resources reading the wrong "want"), live-verified with a real global mem limit, then refactored job-total limit computation into the limit plugin itself and fixed a regression that briefly broke slots-based global enforcement along the way.4b20590c,c832706e— fixed two pre-existing ASAN leaks (host_account/job_account test fixtures, bug-1621/1723) and a wrong resInUse precondition in a mem-reservation test (bug-1758).
Wed 09-09 — xce-test-cli-ux: foundation and core (bulk of the week)
0748f10c..96746af3(16 commits) — built the flag-descriptor parsing/rejection core, typo suggestions, SIGINT/EINTR handling, an interruptible-call heap-ownership adapter with per-connection locking, a pty-driven black-box CLI test harness, tab completion, in-sessionsourcewith cycle detection, a JSON list-output helper library, a destructive-command confirmation gate wired to five commands, flagspec migration for every flag-accepting command, and consolidated help generation. Along the way, fixed bug-1557 (join's maxmem default) and bug-1711 (display/text defects).- Testsuite bugs surfaced and fixed same-day: bug-1791 (cross-thread pthread mutex unlock, EPERM), bug-1792 (tab-completion test silent-input-mode gap).
Thu 09-10 — xce-test-cli-ux: integration, validation, and the build-race root-cause fix
a98fad24..38595099— routed diagnostic/warning output to stderr uniformly, then verified Ctrl-C cancellation, the confirmation gate,source's interaction with it, and help/completion/context-switching end-to-end (tasks 4.1–4.4). Found and deliberately deferred four more testsuite bugs (bug-1794–1797: acmd_jobrunASAN abort, aleave_ctx()use-after-free, misleadingperror()diagnostics, a queue-name leak) — all out of boundary for their discovering (validation-only) tasks.654c6e8c,c1c6c9a2,f09fbdb3— root-caused and closed the long-standing intermittent from-scratch build failure (fatal error: controller.capnp.h): a missing-dependency-edge race in the capnp codegencustom_target, fixed at themeson.buildlevel and extended to controller/worker/scheduler and all four PEG parser generators (bug-1798).
Fri–Sat 09-11/09-12 — live replay debugging: resource over-commit, unit display, design revision
- Live scheduler-replay session surfaced and fixed, same-day (all TDD, RED confirmed before GREEN): bug-1799/1801 (sim replay resInUse over-commit — a worker's used slots could exceed its own capacity after a resync replay;
sched_account_jobsnow skips RECONCILING/UNAVAIL workers likecore_reset_workersalready does), bug-1800 (bytes-valued CONSUMABLE resources now render human-scaled units), and bug-1802/1803 (abreak ANYbreakpoint kind was added, then reverted after live feedback it over-fired inside busy sessions, replaced with a prescan-based "next non-dummy session" hint ininfo summary). 25fb5c11(Sat) — bundled commit landing all of the above plus bug-1804: a user-directed design-fork resolution revisingscheduler-sim-eager-reconciliationso a captured job'sjob->stateis set toRUNsynchronously at dispatch capture (mirroring normal-mode'ssched_commit_decision, bug-1624) instead of deferring until its separately-recordedJOB_STATE_CHANGEevent replays. Full scheduler suite verified 77/77 green before commit.
Bugs opened/fixed this window
- 29 genuinely new bugs (bug-1775 – bug-1804, one intentional ID gap at bug-1783), 24 fixed, 5 deliberately deferred/still open (bug-1777, bug-1793, bug-1796, bug-1797 — all explicitly out-of-boundary for the validation-only tasks that found them; bug-1799 itself stays logged as "not yet fixed" by this project's own convention of routing its actual fix through a separate follow-up ID, bug-1801, which is fixed).
- Carry-over status from last week's report: bug-1770 — fixed (Sun,
resreq-maxtasks-wiring), closing the flagship gap flagged last week (multi-host allocation now has a real production path).bug-1621/bug-1723/bug-1758— fixed (Tue).bug-1714— still open, no movement this window (last touched Sep 4).bug-1632,bug-1726,bug-1728— no movement, still open. - Highest-severity fixes: bug-1799/1801 (resource-accounting over-commit — a worker could show more slots in use than it physically has), bug-1798 (root-caused a long-standing intermittent from-scratch build failure), bug-1784–1789 (gitea#46's full limit-plugin cascade, 6 stacked bugs found and fixed in sequence).
- Integrity check: 29 unique new bug IDs, sequential except one deliberate gap (bug-1783); 0 duplicate IDs in the buglog overall.
Spec status changes
resreq-maxtasks-wiring—implementation-complete, all subtasks done (Sun), HA-soak and full-suite verified with no regression. Closes bug-1770.scheduler-sim-eager-reconciliation— revision 4 landed (Sat,25fb5c11): synchronous job-state-at-capture per bug-1804/user direction. Phase remainsimplementation-complete, 12/12 tasks.xce-test-cli-ux— all 23 real subtasks across all 4 task groups (Foundation → Validation) are checked done, butspec.jsonstill reads phasetasks-generated(ready_for_implementation: true) — the same metadata-lag pattern flagged for three other specs in the prior two reports. A phase-sync pass is due.
Stats
- 73 commits — 62 real (feature/fix/refactor/test/docs), 11
.wolfbookkeeping. - 287 non-
.wolffiles changed, +22,190 / −1,889 (non-wolf headline; raw incl..wolf: +30,044 / −7,591). - Busiest areas by files touched:
src/scheduler(47),src/controller(28),.kiro(16),src/lib(10),src/worker(7),src/frontend(7),.wolf(7),.claude(5). - By spec scope:
xce-test-cli-ux(25 commits),resreq-maxtasks-wiring(13),scheduler(11, unscoped fixes),build(5). - 2 specs shipped end-to-end this window (
resreq-maxtasks-wiring, andscheduler-sim-eager-reconciliation's revision-4 patch); 1 spec functionally complete pending metadata sync (xce-test-cli-ux). - 8 sessions logged in
.wolf/memory.mdtouching this window (Sep 7 ×5, Sep 9, Sep 11, Sep 12); busiest logged day Sep 7 (184 actions, gitea#46 cascade + apiserver fixes). - Commits landed on all 7 days; peak day Wed 09-09 (16 commits,
xce-test-cli-uxfoundation-to-core).
Open threads / to-do heading into next session
xce-test-cli-ux'sspec.jsonmetadata lag — tasks.md shows all 23 real subtasks complete across all 4 groups, but phase still readstasks-generated. Same class of fix already applied to three other specs in recent weeks (scheduler-dispatch-commit,scheduler-snapshot-job-allocation, and implicitlyeliminate-frontend-makefile) — needs the same treatment: sync phase toimplementation-complete.- Four deliberately-deferred testsuite bugs from
xce-test-cli-ux's validation tasks remain open and unowned: bug-1796 (misleadingperror()diagnostics on RPC-failure paths), bug-1797 (queue-name leak on an RPC-error path), bug-1793 (join's stale maxswap/maxtmp defaults — docs and code both need fixing together to avoid a new mismatch), bug-1777 (workerlist MaxSwap can disagree with the scheduler's own view). Worth a triage pass to decide which need a dedicated follow-up spec vs. quick fixes. bug-1714still unresolved, now over two weeks old with zero movement this window — the stale second reader forjob_submit_data_t->project_nameremains unfound. Needs either a fresh live gdb-watchpoint campaign or an explicit decision to accept it as a monitored low-frequency risk.- Three lower-priority open bugs with zero movement across two consecutive windows:
bug-1632,bug-1726,bug-1728— still awaiting triage. giteaMCP server connectivity — noted in.wolf/STATUS.mdas failing to connect (CONNECT_TIMEOUT) as of this window's close; buglog entries bug-1798 through bug-1804 have not yet been synced to Gitea issues viagitea-sync. Retry once the server is reachable.scheduler-sim-eager-reconciliation's revision 4 is committed and test-verified (77/77), but has not yet been exercised against a live multi-round replay beyond the unit/integration fixtures added this window — worth a live-replay smoke pass next session to confirm the synchronous-state change behaves as expected outside the test harness.