myxce/CHANGES.md
Rongsong Shen 68c278e3b6
docs: add weekly report and change log for Sep 20-26, 2026
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 13:08:27 +00:00

93 KiB

XCE Change Log

Auto-generated by /xce-changes — component-grouped, newest week first. .wolf/ bookkeeping commits are excluded.

Sep 20, 2026 - Sep 26, 2026

controller

  • 63fd3d2a fix(controller): checkpoints no longer punch a hole in the replicated log (bug-1870) (2026-09-26)
  • e4bb492a fix(controller): checkpoints keep a job's exit code (bug-1867) (2026-09-26)
  • 1d6c04c2 fix(controller): persist a failed job's finish_time through WAL_JOB_FAIL (bug-1747) (2026-09-26)
  • 6876e4f6 fix(controller): persist a failed job's exit code through WAL_JOB_FAIL (bug-1754) (2026-09-26)
  • 910b43cd fix(controller): never close() the primary channel's raw fd (bug-1865) (2026-09-25)
  • b5d59253 fix(controller): stop a failed test from hanging the unit suite (bug-1429); mkstemp for upgrade temp file (bug-1861) (2026-09-25)
  • ca4db13a fix(controller): string resvals own their bytes -- rejoin use-after-free killed new primary (bug-1851) (2026-09-24)
  • 1f6f219d fix(controller): resync_resolve_round never told scheduler RECONCILING cleared (bug-1841) (2026-09-22)
  • e1da9f1e fix(controller): standby-endpoint err handler freed ep->data under a live vtask (bug-1839) (2026-09-22)
  • cd9ecb41 fix(controller): CtrlHelloRequest.key Data field crashed HA leader election (bug-1835) (2026-09-21)

worker

  • 5df33e69 fix(worker): xcecd's fixed /tmp files never follow planted links (bug-1869) (2026-09-26)
  • 7864a3da fix(worker): don't follow links planted at a job's output file name (bug-1868) (2026-09-26)
  • 7723a4f4 fix(worker): fetchfile only reads the job's own output file (bug-1508) (2026-09-26)
  • c29518b2 fix(worker): lock the worker list against vtask-thread readers (bug-1862) (2026-09-25)
  • 7c98c056 fix(worker): don't let a failover outage expire a finished job's retained outcome (bug-1859) (2026-09-25)

scheduler

  • 663ea63c fix(scheduler): re-pushed resource definitions are not errors (bug-1854) (2026-09-25)
  • 601b245e fix(scheduler): a failed COMPOUND leaves no partial allocation (bug-1766) (2026-09-25)
  • aea34738 fix(scheduler): allocate every primary of a COMPOUND, not only the last (bug-1863) (2026-09-25)
  • b4e9a099 fix(scheduler): check slots/rusage for primaries nested in COMPOUND/ALTER (bug-1768) (2026-09-25)
  • 1ecd348f fix(scheduler): ALTER allocation type confusion (bug-1769); NULL queue in legacy fcfs hooks (bug-1771) (2026-09-25)
  • 9e9f2798 fix(scheduler): release interned queue resreq with dereference, not free (bug-1858) (2026-09-24)
  • 9c02184f fix(scheduler): record events before the core applies them (bug-1852) (2026-09-24)
  • ac033f47 fix(scheduler): record config pushes, free hlimits lists, quiet benign picker WARN (bug-1847/1848/1849) (2026-09-24)
  • a9feded8 fix(scheduler): mid-round rejoin config push truncated live rounds (bug-1846 part 2) (2026-09-24)
  • 77f047f2 fix(scheduler): host-scoped limit staged N times per dispatch (bug-1846 part 1) (2026-09-24)
  • fcf119b4 fix(scheduler): 3 --sim-verify false positives + snapshot resreq_fp gap (bug-1844/1845/1772) (2026-09-23)
  • 5ee329b1 fix(scheduler): recorder silently truncated a round's decisions on realloc failure (bug-1843) (2026-09-23)
  • 7901db57 fix(scheduler): --sim-verify false-flagged every DISPATCH decision on wall-clock drift (bug-1842) (2026-09-23)
  • 4f94638a fix(scheduler): route sim reconciliation's on_dispatch() through the allocator thread (bug-1837) (2026-09-21)
  • 94115b00 fix(scheduler): sim mode force-dispatched recorded decisions past live capacity (bug-1836, bug-1838) (2026-09-21)
  • ea76f477 fix(scheduler): percent-limit capacity reads maxmem/maxswap, not mem/swap (bug-1834) (2026-09-20)
  • 0ce71254 fix(scheduler): percent-based limit display shows raw fraction, not percent (bug-1831) (2026-09-20)
  • bf61f595 test(scheduler-sim-diagnostics): close cross-cutting gaps for Requirement 6 (task 10.2) (2026-09-20)
  • 51255366 test(scheduler-sim-diagnostics): strengthen coincidentally-passing assertions (task 10.1) (2026-09-20)
  • 70190107 fix(scheduler-sim-diagnostics): correct usage display's resource classification (task 9) (2026-09-20)
  • 8477f677 feat(scheduler-sim-diagnostics): wire info limit to fmt_limit_units (task 8.2) (2026-09-20)
  • eb23c158 feat(scheduler-sim-diagnostics): promote byte-unit formatting to shared lib (task 7) (2026-09-20)

xceadmin

  • 7982f285 feat(xceadmin): validate percent-based limit values are in [0.0, 1.0] (bug-1833) (2026-09-20)

lib

  • 663ea63c fix(scheduler): re-pushed resource definitions are not errors (bug-1854) (2026-09-25)
  • 6b1862f8 fix(lib): retry a NOT_READY controller in place instead of failing over (bug-1850) (2026-09-25)
  • 0d3bb965 fix(lib): keep per-endpoint message order in the vtask dispatcher (bug-1864) (2026-09-25)
  • aea34738 fix(scheduler): allocate every primary of a COMPOUND, not only the last (bug-1863) (2026-09-25)
  • e71d91bf chore(libxce-failover): log the status that triggered each failover rotation (bug-1850) (2026-09-24)
  • ca4db13a fix(controller): string resvals own their bytes -- rejoin use-after-free killed new primary (bug-1851) (2026-09-24)
  • ea76f477 fix(scheduler): percent-limit capacity reads maxmem/maxswap, not mem/swap (bug-1834) (2026-09-20)
  • 0ce71254 fix(scheduler): percent-based limit display shows raw fraction, not percent (bug-1831) (2026-09-20)
  • 9f54c575 feat(scheduler-sim-diagnostics): add fmt_limit_units() sibling (task 8.1) (2026-09-20)
  • eb23c158 feat(scheduler-sim-diagnostics): promote byte-unit formatting to shared lib (task 7) (2026-09-20)

include

  • 63fd3d2a fix(controller): checkpoints no longer punch a hole in the replicated log (bug-1870) (2026-09-26)
  • 1d6c04c2 fix(controller): persist a failed job's finish_time through WAL_JOB_FAIL (bug-1747) (2026-09-26)
  • 6876e4f6 fix(controller): persist a failed job's exit code through WAL_JOB_FAIL (bug-1754) (2026-09-26)
  • 663ea63c fix(scheduler): re-pushed resource definitions are not errors (bug-1854) (2026-09-25)
  • 6b1862f8 fix(lib): retry a NOT_READY controller in place instead of failing over (bug-1850) (2026-09-25)
  • 0d3bb965 fix(lib): keep per-endpoint message order in the vtask dispatcher (bug-1864) (2026-09-25)
  • aea34738 fix(scheduler): allocate every primary of a COMPOUND, not only the last (bug-1863) (2026-09-25)
  • b5d59253 fix(controller): stop a failed test from hanging the unit suite (bug-1429); mkstemp for upgrade temp file (bug-1861) (2026-09-25)
  • 1f6f219d fix(controller): resync_resolve_round never told scheduler RECONCILING cleared (bug-1841) (2026-09-22)
  • cd9ecb41 fix(controller): CtrlHelloRequest.key Data field crashed HA leader election (bug-1835) (2026-09-21)
  • ea76f477 fix(scheduler): percent-limit capacity reads maxmem/maxswap, not mem/swap (bug-1834) (2026-09-20)
  • 9f54c575 feat(scheduler-sim-diagnostics): add fmt_limit_units() sibling (task 8.1) (2026-09-20)
  • eb23c158 feat(scheduler-sim-diagnostics): promote byte-unit formatting to shared lib (task 7) (2026-09-20)

schema

  • e4bb492a fix(controller): checkpoints keep a job's exit code (bug-1867) (2026-09-26)
  • cd9ecb41 fix(controller): CtrlHelloRequest.key Data field crashed HA leader election (bug-1835) (2026-09-21)

specs

  • b63bb581 chore(buglog): point fix references at the re-signed commit hashes (2026-09-25)
  • 4ba0f327 chore(scheduler-allocation): mark implementation complete (2026-09-25)
  • b0f2aea4 chore(gitea-sync): record first status-driven Gitea sync (2026-09-24)
  • 6e0463e7 chore: persist OpenWolf state and libxce-alloc-preason-equality spec (2026-09-24)
  • 668e3f68 chore: persist OpenWolf state, controller-peers-env-fallback spec, and scheduler backlog notes (2026-09-23)
  • 4f94638a fix(scheduler): route sim reconciliation's on_dispatch() through the allocator thread (bug-1837) (2026-09-21)
  • 94115b00 fix(scheduler): sim mode force-dispatched recorded decisions past live capacity (bug-1836, bug-1838) (2026-09-21)
  • bf61f595 test(scheduler-sim-diagnostics): close cross-cutting gaps for Requirement 6 (task 10.2) (2026-09-20)
  • 51255366 test(scheduler-sim-diagnostics): strengthen coincidentally-passing assertions (task 10.1) (2026-09-20)
  • 70190107 fix(scheduler-sim-diagnostics): correct usage display's resource classification (task 9) (2026-09-20)
  • 8477f677 feat(scheduler-sim-diagnostics): wire info limit to fmt_limit_units (task 8.2) (2026-09-20)
  • 9f54c575 feat(scheduler-sim-diagnostics): add fmt_limit_units() sibling (task 8.1) (2026-09-20)
  • eb23c158 feat(scheduler-sim-diagnostics): promote byte-unit formatting to shared lib (task 7) (2026-09-20)

build

  • 3cc2f6e3 fix(xce-test-multihost): deploy with a fixture config set that clears limits (bug-1857) (2026-09-24)
  • 7982f285 feat(xceadmin): validate percent-based limit values are in [0.0, 1.0] (bug-1833) (2026-09-20)
  • a8fb7685 fix(config): night_mem_pct's percent value was 100x too large (bug-1832) (2026-09-20)

misc

  • ff4e2cb8 chore: gitea-sync --ids, sync recent bugs (#264-#286), refresh STATUS.md (2026-09-26)
  • 3cc2f6e3 fix(xce-test-multihost): deploy with a fixture config set that clears limits (bug-1857) (2026-09-24)
  • e915f8de fix(gitea-sync): survive live Gitea replies; point project memory at /buglog (2026-09-24)
  • 19104f19 feat(buglog): status field, buglog skill, status-driven gitea-sync (2026-09-24)
  • 5b891b50 fix(xce-test-ha): chaotic mid-round walcompare false committed divergence (bug-1853) (2026-09-24)
  • d9ff02cd test(xce-test-ha): scheduler replay-parity gate in sequential/chaotic soaks (2026-09-24)
  • 668e3f68 chore: persist OpenWolf state, controller-peers-env-fallback spec, and scheduler backlog notes (2026-09-23)
  • e592e921 test(xce-test-ha): add --worker-capacity-soak mode for bug-1841 regression (2026-09-22)
  • 0a983a74 docs: add weekly report and change log for Sep 13-19, 2026 (2026-09-20)

Sep 13, 2026 - Sep 19, 2026

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

controller

  • a83d7087 docs(xce-test-cli-ux): document jobsub -n's min,max task-range format (2026-09-10)
  • 38595099 test(xce-test-cli-ux): verify help/completion/context-switching hold together (task 4.4) (2026-09-10)
  • a98fad24 fix(xce-test-cli-ux): route diagnostic/warning messages to stderr uniformly (2026-09-10)
  • 96746af3 feat(xce-test-cli-ux): generate and consolidate every command's help content (2026-09-09)
  • 0d67f5cb feat(xce-test-cli-ux): add JSON output mode to the listing commands (2026-09-09)
  • a57c0471 feat(xce-test-cli-ux): wire confirmation gate to the five destructive commands (2026-09-09)
  • 45120af2 feat(xce-test-cli-ux): wrap every blocking RPC with the interrupt adapter (2026-09-09)
  • f152c59e feat(xce-test-cli-ux): migrate all flag-accepting commands to flagspec (2026-09-09)
  • 878a42fb fix(xce-test-cli-ux): fix bug-1557's join maxmem default (2026-09-09)
  • a8154acb fix(xce-test-cli-ux): fix bug-1711's display and text defects (2026-09-09)
  • c709eba8 feat(xce-test-cli-ux): add in-session source command with cycle detection (2026-09-09)
  • 0ef232a0 feat(xce-test-cli-ux): add command-name tab completion scoped to context (2026-09-09)
  • 07d238ea feat(xce-test-cli-ux): build JSON list-output helper library (2026-09-09)
  • a2686516 feat(xce-test-cli-ux): build destructive-command confirmation gate (2026-09-09)
  • 4d1f2476 test(xce-test-cli-ux): build reusable pty-driven black-box CLI harness (2026-09-09)
  • b70228c5 feat(xce-test-cli-ux): add process-level help/version discovery (2026-09-09)
  • 204f81d1 feat(xce-test-cli-ux): add per-connection lock to interruptible-call adapter (2026-09-09)
  • 9a06047d feat(xce-test-cli-ux): build interruptible-call heap-ownership mechanism (2026-09-09)
  • b4f5a460 feat(xce-test-cli-ux): fix SIGINT install to guarantee EINTR, add accessor (2026-09-09)
  • 89af46af feat(xce-test-cli-ux): add flag typo-suggestion and help-block renderer (2026-09-09)
  • 0748f10c feat(xce-test-cli-ux): build flag-descriptor parsing/rejection core (2026-09-09)

worker

  • a35f597e fix(worker): real maxswap/maxtmp detection; feat(scheduler): annotate multi-slot assigned jobs (2026-09-07)
  • f02bedc5 test(resreq-maxtasks-wiring): close worker launch-type dispatch coverage gap (2026-09-06)

scheduler

  • 25fb5c11 fix(scheduler): sim resource over-commit, byte-unit display, sync job-state-at-capture (2026-09-12)
  • a6d96705 refactor(scheduler): read slots' job total from alloc_req instead of name-checking (2026-09-08)
  • 5b18f14a fix(scheduler): restore slots-based global limit enforcement (bug-1790 regression) (2026-09-08)
  • fa34b038 refactor(scheduler): move job-total limit computation to the limit plugin (bug-1790) (2026-09-08)
  • c832706e test(scheduler): fix wrong resInUse precondition in mem-reservation test (bug-1758) (2026-09-08)
  • 9caf1424 fix(scheduler): populate job-wide total want for per-host resources during global phase (bug-1790) (2026-09-08)
  • 924ac32c fix(scheduler): global limits on per-host resources now read the correct want (bug-1789) (2026-09-07)
  • 22cfe616 fix(scheduler): fix limit-plugin usergroup/scope/error-code cascade (gitea#46) (2026-09-07)
  • 0d3f925c fix(scheduler): retire reconciled jobs from picker candidates (bug-1759/1779) (2026-09-07)
  • ef3c4670 fix(scheduler): exclude terminal jobs from assigned-jobs listing (bug-1778) (2026-09-07)
  • a35f597e fix(worker): real maxswap/maxtmp detection; feat(scheduler): annotate multi-slot assigned jobs (2026-09-07)
  • c454f065 test(resreq-maxtasks-wiring): fix deferred queue-priority assertion (2026-09-06)
  • d1849c94 test(resreq-maxtasks-wiring): retire multislot test's bug-1770 workaround (2026-09-06)
  • c36014c0 test(resreq-maxtasks-wiring): verify driver parity, update-immunity, cache (2026-09-06)
  • 4644d20c test(resreq-maxtasks-wiring): verify ingest wiring parity and no-regression (2026-09-06)
  • 6577e041 feat(resreq-maxtasks-wiring): wire snapshot-restore ingest to real task count (2026-09-06)
  • 0aadb494 feat(resreq-maxtasks-wiring): wire fresh job-ingest to real task count (2026-09-06)

frontend

  • 099dbdab fix(apiserver): fix job control union discriminant, add human-readable job ID support (gitea#45) (2026-09-07)
  • 5ab344e1 fix(apiserver): propagate submit user as job execuser (bug-1780) (2026-09-07)
  • e395eaa3 fix(frontend): count host job-state columns and EXEC_HOST by real slots (2026-09-07)

lib

  • f09fbdb3 fix(build): close the same codegen race for the four PEG parsers (bug-1798) (2026-09-10)
  • c1c6c9a2 fix(build): close capnp codegen race for controller/worker/scheduler too (bug-1798) (2026-09-10)
  • 654c6e8c fix(build): close capnp codegen missing-dependency-edge race (bug-1798) (2026-09-10)
  • fa34b038 refactor(scheduler): move job-total limit computation to the limit plugin (bug-1790) (2026-09-08)
  • 4b20590c fix(lib): free host_account.host and job_account test fixtures (bug-1723, bug-1621) (2026-09-08)
  • 9caf1424 fix(scheduler): populate job-wide total want for per-host resources during global phase (bug-1790) (2026-09-08)
  • 22cfe616 fix(scheduler): fix limit-plugin usergroup/scope/error-code cascade (gitea#46) (2026-09-07)
  • 799a71ec feat(resreq-maxtasks-wiring): add task-count derivation helper (2026-09-06)

include

  • fa34b038 refactor(scheduler): move job-total limit computation to the limit plugin (bug-1790) (2026-09-08)
  • 9caf1424 fix(scheduler): populate job-wide total want for per-host resources during global phase (bug-1790) (2026-09-08)
  • 22cfe616 fix(scheduler): fix limit-plugin usergroup/scope/error-code cascade (gitea#46) (2026-09-07)
  • 799a71ec feat(resreq-maxtasks-wiring): add task-count derivation helper (2026-09-06)

specs

  • 25fb5c11 fix(scheduler): sim resource over-commit, byte-unit display, sync job-state-at-capture (2026-09-12)
  • 38595099 test(xce-test-cli-ux): verify help/completion/context-switching hold together (task 4.4) (2026-09-10)
  • 31d66060 docs(xce-test-cli-ux): verify source's interaction with the confirmation gate (task 4.3) (2026-09-10)
  • f6793a24 docs(xce-test-cli-ux): verify the confirmation gate end-to-end (task 4.2) (2026-09-10)
  • 18aa7366 docs(xce-test-cli-ux): verify Ctrl-C cancellation end-to-end (task 4.1) (2026-09-10)
  • a98fad24 fix(xce-test-cli-ux): route diagnostic/warning messages to stderr uniformly (2026-09-10)
  • 96746af3 feat(xce-test-cli-ux): generate and consolidate every command's help content (2026-09-09)
  • 0d67f5cb feat(xce-test-cli-ux): add JSON output mode to the listing commands (2026-09-09)
  • a57c0471 feat(xce-test-cli-ux): wire confirmation gate to the five destructive commands (2026-09-09)
  • 45120af2 feat(xce-test-cli-ux): wrap every blocking RPC with the interrupt adapter (2026-09-09)
  • f152c59e feat(xce-test-cli-ux): migrate all flag-accepting commands to flagspec (2026-09-09)
  • 878a42fb fix(xce-test-cli-ux): fix bug-1557's join maxmem default (2026-09-09)
  • a8154acb fix(xce-test-cli-ux): fix bug-1711's display and text defects (2026-09-09)
  • c709eba8 feat(xce-test-cli-ux): add in-session source command with cycle detection (2026-09-09)
  • 0ef232a0 feat(xce-test-cli-ux): add command-name tab completion scoped to context (2026-09-09)
  • 07d238ea feat(xce-test-cli-ux): build JSON list-output helper library (2026-09-09)
  • a2686516 feat(xce-test-cli-ux): build destructive-command confirmation gate (2026-09-09)
  • 7d0ac6f6 docs(xce-test-cli-ux): commit requirements/design/tasks spec-phase artifacts (2026-09-09)
  • 4d1f2476 test(xce-test-cli-ux): build reusable pty-driven black-box CLI harness (2026-09-09)
  • b70228c5 feat(xce-test-cli-ux): add process-level help/version discovery (2026-09-09)
  • 204f81d1 feat(xce-test-cli-ux): add per-connection lock to interruptible-call adapter (2026-09-09)
  • 9a06047d feat(xce-test-cli-ux): build interruptible-call heap-ownership mechanism (2026-09-09)
  • b4f5a460 feat(xce-test-cli-ux): fix SIGINT install to guarantee EINTR, add accessor (2026-09-09)
  • 89af46af feat(xce-test-cli-ux): add flag typo-suggestion and help-block renderer (2026-09-09)
  • 0748f10c feat(xce-test-cli-ux): build flag-descriptor parsing/rejection core (2026-09-09)
  • 0d3f925c fix(scheduler): retire reconciled jobs from picker candidates (bug-1759/1779) (2026-09-07)
  • a221b6ae chore(resreq-maxtasks-wiring): close out feature-level validation (2026-09-06)
  • 5c87f1cc chore(resreq-maxtasks-wiring): confirm HA soak regression (task 5.2) (2026-09-06)
  • c454f065 test(resreq-maxtasks-wiring): fix deferred queue-priority assertion (2026-09-06)
  • 1e962746 feat(resreq-maxtasks-wiring): prove array-job element spans hosts too (2026-09-06)
  • 7fd673cc feat(resreq-maxtasks-wiring): submit real multi-task job across hosts (2026-09-06)
  • 0313b910 feat(resreq-maxtasks-wiring): add multi-host e2e test harness (2026-09-06)
  • d1849c94 test(resreq-maxtasks-wiring): retire multislot test's bug-1770 workaround (2026-09-06)
  • c36014c0 test(resreq-maxtasks-wiring): verify driver parity, update-immunity, cache (2026-09-06)
  • 4644d20c test(resreq-maxtasks-wiring): verify ingest wiring parity and no-regression (2026-09-06)
  • f02bedc5 test(resreq-maxtasks-wiring): close worker launch-type dispatch coverage gap (2026-09-06)
  • 6577e041 feat(resreq-maxtasks-wiring): wire snapshot-restore ingest to real task count (2026-09-06)
  • 0aadb494 feat(resreq-maxtasks-wiring): wire fresh job-ingest to real task count (2026-09-06)
  • 799a71ec feat(resreq-maxtasks-wiring): add task-count derivation helper (2026-09-06)

build

  • 58918a6a fix(scheduler): live-verify bug-1790 with a real global mem limit (2026-09-08)
  • ed654609 remove override of maxswap (2026-09-08)
  • 028d8f6a chore(build): make xce-build.sh self-wrap into nix develop (2026-09-07)
  • 850d186d feat(build): cap xce-build.sh's run-queue length via a live-computed --jobs flag (2026-09-07)

misc

  • 25fb5c11 fix(scheduler): sim resource over-commit, byte-unit display, sync job-state-at-capture (2026-09-12)
  • ffca959e docs(skills): note join's corrected maxmem default at bare-join call sites (2026-09-10)
  • 7acf26f2 docs(xce-build): drop redundant manual nix develop wrapper from skill (2026-09-08)
  • 028d8f6a chore(build): make xce-build.sh self-wrap into nix develop (2026-09-07)
  • 850d186d feat(build): cap xce-build.sh's run-queue length via a live-computed --jobs flag (2026-09-07)
  • a6b735b6 add weekly report and change logs (2026-09-06)
  • 1e962746 feat(resreq-maxtasks-wiring): prove array-job element spans hosts too (2026-09-06)
  • 7fd673cc feat(resreq-maxtasks-wiring): submit real multi-task job across hosts (2026-09-06)
  • 0313b910 feat(resreq-maxtasks-wiring): add multi-host e2e test harness (2026-09-06)

Aug 30, 2026 - Sep 05, 2026

controller

  • 12c6a59c feat(eliminate-frontend-makefile): task 3.4 - update source code comments (2026-09-03)
  • 1c4cf8bd fix(worker-rejoin-resync): task 7.5 - bound the outbound reconciliation query (2026-09-02)
  • 613b80e9 test(worker-rejoin-resync): task 7.4 - large job-count pagination correctness (2026-09-02)
  • 165fc158 test(worker-rejoin-resync): task 7.3 - burst recovery unbounded by count (2026-09-02)
  • bceca0c9 test(worker-rejoin-resync): task 7.2 - failover-during-job recovery (2026-09-01)
  • 8650cfd9 test(worker-rejoin-resync): task 7.1 - full rejoin round trip (2026-09-01)
  • 9f655c61 feat(worker-rejoin-resync): task 6.2 - route job-state report to reconciliation (2026-09-01)
  • a3d12d37 feat(worker-rejoin-resync): task 6.1 - trigger reconciliation on rejoin (2026-09-01)
  • eec2596c feat(worker-rejoin-resync): apply reported outcomes idempotently (task 3.2) (2026-09-01)
  • 442fcf45 feat(worker-rejoin-resync): reconciliation round lifecycle (task 3.1) (2026-09-01)
  • ea0658ec feat(worker-rejoin-resync): fail-fast disconnected-worker dispatch (task 2.3) (2026-09-01)
  • ecfb4c94 feat(worker-rejoin-resync): reconcile unqueried job assignment (task 2.2) (2026-09-01)
  • cfe66dde feat(worker-rejoin-resync): reconcile unrecognized job to pending (task 2.1) (2026-09-01)
  • 026fe97b fix(bug-1737): scheduler can never learn a job finished successfully (2026-08-31)
  • 0e96a69f fix(bug-1429): persist_stop() before commit_engine_fini() in 21 fixtures (2026-08-30) — fixes a controller_unit_test hang/deadlock after HA quorum was lost during teardown
  • 5c2c6664 fix(bug-1736): capture memory_swap/tasks_current, compute peak_cpu_time (2026-08-30)
  • d8a37fa2 fix(bug-1735): job memory/CPU usage always read 0 in scheduler replay (2026-08-30)
  • a02d4777 fix(bug-1561): fix flaky test_conf_trim_keeps_only_n_versions/test_conf_get_saved_tag_no_config (2026-08-30)

worker

  • b6a2f5ec fix(worker-rejoin-resync): task 4.4 - gate periodic load-indices send on resync_pending (2026-09-02)
  • a3d12d37 feat(worker-rejoin-resync): task 6.1 - trigger reconciliation on rejoin (2026-09-01)
  • 5b699736 feat(worker-rejoin-resync): task 4.3 - wire query receipt and post-join gate (2026-09-01)
  • cfe58c3d feat(worker-rejoin-resync): task 4.2 - worker answers job-state query with extras (2026-09-01)
  • e31012e8 feat(worker-rejoin-resync): task 4.1 - bounded finished-job retention on worker (2026-09-01)

scheduler

  • c009f108 test(scheduler-allocation): end-to-end multi-host parallel job proof (2026-09-05)
  • e8c2087d feat(scheduler-allocation): clear unsatisfiable-resreq cache per session (2026-09-05)
  • 5c022d0b feat(scheduler-allocation): wire unsatisfiable-resreq cache into dispatch (2026-09-04)
  • 9d23060b test(scheduler-allocation): prove parjob's shared resource commits once (2026-09-04)
  • 3d5e1c32 feat(scheduler-allocation): implement parjob's per-bucket allocation loop (2026-09-04)
  • 6ca717fb feat(scheduler-allocation): implement parjob's combinatorial plan generation (2026-09-04)
  • 9d64ba0d test(scheduler-allocation): prove seqjob rewrap preserves host selection (2026-09-04)
  • b18c5f78 feat(scheduler-allocation): rewrap seqjob allocation onto shared iterators (2026-09-04)
  • 86c86352 feat(scheduler-allocation): implement the unsatisfiable-resreq cache (2026-09-04)
  • d9831b0b feat(scheduler-allocation): implement the shared host-candidate iterator (2026-09-04)
  • d0024eb7 feat(scheduler-allocation): add per-host resource-debit reversal (2026-09-04)
  • d8b5cf87 feat(scheduler-allocation): add forward-compatible allocation-mode field (2026-09-04)
  • 5a670676 feat(scheduler-allocation): add resreq fingerprinting for the cache (2026-09-04)
  • d5d2c1ca feat(scheduler-allocation): add lazy plan/host iterator contracts (2026-09-04)
  • 88b0ac99 fix(scheduler): close post-failover rejoin detection gap (bug-1760) (2026-09-04) — new primary's dispatched job stayed PEND 60s+ with zero scheduler activity
  • 9dcffce8 test(scheduler-sim-reconcile-terminal-guard): task 2.2 - final REPL-level verification (2026-09-03)
  • b722de4f fix(scheduler-sim-reconcile-terminal-guard): task 1.2 - bug-1764 terminal-state guard (2026-09-03) — info worker kept listing already-DONE/EXIT jobs as still assigned
  • ff05c37b test(scheduler-sim-reconcile-terminal-guard): task 1.1 - RED tests for terminal guard (2026-09-03)
  • 56e007cb feat(scheduler-sim-step-verbosity): task 1.2 - implement preamble deduplication (2026-09-03)
  • 6a2aa47f test(scheduler-sim-step-verbosity): task 1.1 - RED tests for preamble dedup (2026-09-03)
  • bd973973 feat(scheduler-sim-repl-verbosity): task 9.2 - discoverable help and break event types (2026-09-02)
  • bd77eea0 test(scheduler-sim-repl-verbosity): task 9.1 - RED tests for help/break discoverability (2026-09-02)
  • 9db99964 feat(scheduler-sim-repl-verbosity): task 8.2 - implement resource table rendering (2026-09-02)
  • e48e222b feat(scheduler-sim-repl-verbosity): task 8.1 - RED-phase resource table tests (2026-09-02)
  • 5ee1d6cb feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers (2026-09-02)
  • 11fe6194 feat(scheduler-sim-repl-verbosity): task 7.1 - RED-phase resource formatting tests (2026-09-02)
  • da6ba96e feat(scheduler-sim-repl-verbosity): task 6.2 - implement dynamic REPL prompt (2026-09-02)
  • 99fa45c4 feat(scheduler-sim-repl-verbosity): task 6.1 - RED-phase REPL prompt tests (2026-09-02)
  • d9109b7c feat(scheduler-sim-repl-verbosity): task 4.2 - retire redundant per-decision echo (2026-09-02)
  • 3d08a43a feat(scheduler-sim-repl-verbosity): task 4.1 - RED-phase sim_print_decision Gate tests (2026-09-02)
  • cc78d091 feat(scheduler-sim-repl-verbosity): task 3.2 - implement Event Echo Gate (2026-09-02)
  • f587a441 feat(scheduler-sim-repl-verbosity): task 3.1 - RED-phase Event Echo Gate tests (2026-09-02)
  • 921c72bb feat(scheduler-sim-repl-verbosity): task 2.2 - implement Round Rollup logic (2026-09-02)
  • 0c6ccb03 feat(scheduler-sim-repl-verbosity): task 2.1 - RED-phase Round Rollup tests (2026-09-02)
  • 140f0900 fix(scheduler): repl_cmd_delete() rejects non-numeric/invalid breakpoint ids (2026-09-02)
  • b639fae1 feat(scheduler-sim-repl-verbosity): task 1.2 - implement job identifier range compression (2026-09-02)
  • f165e3a7 feat(scheduler-sim-repl-verbosity): task 1.1 - RED-phase tests for job identifier range compression (2026-09-02)
  • 80d5a062 feat(worker-rejoin-resync): task 5 - exclude reconciling host from dispatch (2026-09-01)
  • eb06f16d fix(scheduler): wire mem reservation reconciliation into live rusage event path (2026-09-01)
  • f4103e0e fix(scheduler): charge unreserved jobs' real memory usage too (2026-08-31)
  • 87a2a46b feat(scheduler): reconcile mem reservation against real usage (2026-08-31)
  • fc559948 fix(bug-1727): 'info worker'/'info resource' double-counted used capacity (2026-08-31)
  • 0e78f863 fix(bug-1738,bug-1739): terminal-state regression + phantom RUN in JOBS_PUSH merge (2026-08-31) — phantom RUN entries exceeded the worker's real slot capacity
  • 026fe97b fix(bug-1737): scheduler can never learn a job finished successfully (2026-08-31)
  • b0476a84 fix(bug-1734): merge redelivered job state instead of discarding it (2026-08-30)
  • dfcd345d fix(bug-1560): symlink-escape test asserted the wrong error string (2026-08-30)
  • 38437e57 fix(scheduler): don't hand an orphaned duplicate job to the picker (2026-08-30)

autoscaler

  • 0b1e3107 remove extralib (2026-09-04)
  • 68bc86bc build: make Go and Python builds fully offline (hermetic Nix build) (2026-09-03)

frontend

  • 6fabdba9 feat(eliminate-frontend-makefile): task 4.2 - delete src/frontend/Makefile (2026-09-03)
  • 12c6a59c feat(eliminate-frontend-makefile): task 3.4 - update source code comments (2026-09-03)
  • f5fbc6bc feat(eliminate-frontend-makefile): task 3.3 - update live documentation (11 files) (2026-09-03)
  • 6b105125 feat(eliminate-frontend-makefile): task 3.2 - fix deploy-ha.sh/run.sh messages (2026-09-03)
  • 6c3ff201 feat(eliminate-frontend-makefile): task 1.1 - Meson backend CGO test target (2026-09-03)
  • 68bc86bc build: make Go and Python builds fully offline (hermetic Nix build) (2026-09-03)
  • 728496be fix(apiserver): populate hosts-list slot usage counts (2026-09-01)
  • 343639fc fix(apiserver): stop job-control panic on int/int64 type mismatch (2026-09-01)

xceadmin

  • 68bc86bc build: make Go and Python builds fully offline (hermetic Nix build) (2026-09-03)
  • ce3d391e feat(worker-rejoin-resync): wire config fields into xceadmin build (task 1.5) (2026-09-01)

lib

  • 5a670676 feat(scheduler-allocation): add resreq fingerprinting for the cache (2026-09-04)
  • 88b0ac99 fix(scheduler): close post-failover rejoin detection gap (bug-1760) (2026-09-04) — new primary's dispatched job stayed PEND 60s+ with zero scheduler activity
  • 0b1e3107 remove extralib (2026-09-04)
  • 9f3dfe79 feat(worker-rejoin-resync): add reconciliation wire codec helpers (task 1.4) (2026-09-01)
  • 026fe97b fix(bug-1737): scheduler can never learn a job finished successfully (2026-08-31)

include

  • 5a670676 feat(scheduler-allocation): add resreq fingerprinting for the cache (2026-09-04)
  • 88b0ac99 fix(scheduler): close post-failover rejoin detection gap (bug-1760) (2026-09-04) — new primary's dispatched job stayed PEND 60s+ with zero scheduler activity
  • 0b1e3107 remove extralib (2026-09-04)
  • 9f655c61 feat(worker-rejoin-resync): task 6.2 - route job-state report to reconciliation (2026-09-01)
  • a3d12d37 feat(worker-rejoin-resync): task 6.1 - trigger reconciliation on rejoin (2026-09-01)
  • 9f3dfe79 feat(worker-rejoin-resync): add reconciliation wire codec helpers (task 1.4) (2026-09-01)
  • 1260d913 feat(worker-rejoin-resync): add worker reconciling status type (task 1.2) (2026-09-01)
  • 1ff57ef6 feat(worker-rejoin-resync): define reconciliation wire protocol (task 1.1) (2026-09-01)
  • 026fe97b fix(bug-1737): scheduler can never learn a job finished successfully (2026-08-31)
  • 5c2c6664 fix(bug-1736): capture memory_swap/tasks_current, compute peak_cpu_time (2026-08-30)

schema

  • a3d12d37 feat(worker-rejoin-resync): task 6.1 - trigger reconciliation on rejoin (2026-09-01)
  • 1ff57ef6 feat(worker-rejoin-resync): define reconciliation wire protocol (task 1.1) (2026-09-01)
  • 026fe97b fix(bug-1737): scheduler can never learn a job finished successfully (2026-08-31)
  • 5c2c6664 fix(bug-1736): capture memory_swap/tasks_current, compute peak_cpu_time (2026-08-30)

docs

  • f5fbc6bc feat(eliminate-frontend-makefile): task 3.3 - update live documentation (11 files) (2026-09-03)

specs

  • ecfb0a3c chore(scheduler-allocation): confirm HA soak regression (task 6.2) (2026-09-05)
  • 58e6a855 chore(scheduler-allocation): confirm full regression pass (task 6.1) (2026-09-05)
  • c009f108 test(scheduler-allocation): end-to-end multi-host parallel job proof (2026-09-05)
  • e8c2087d feat(scheduler-allocation): clear unsatisfiable-resreq cache per session (2026-09-05)
  • 5c022d0b feat(scheduler-allocation): wire unsatisfiable-resreq cache into dispatch (2026-09-04)
  • 9d23060b test(scheduler-allocation): prove parjob's shared resource commits once (2026-09-04)
  • 3d5e1c32 feat(scheduler-allocation): implement parjob's per-bucket allocation loop (2026-09-04)
  • 6ca717fb feat(scheduler-allocation): implement parjob's combinatorial plan generation (2026-09-04)
  • 9d64ba0d test(scheduler-allocation): prove seqjob rewrap preserves host selection (2026-09-04)
  • b18c5f78 feat(scheduler-allocation): rewrap seqjob allocation onto shared iterators (2026-09-04)
  • 86c86352 feat(scheduler-allocation): implement the unsatisfiable-resreq cache (2026-09-04)
  • d9831b0b feat(scheduler-allocation): implement the shared host-candidate iterator (2026-09-04)
  • d0024eb7 feat(scheduler-allocation): add per-host resource-debit reversal (2026-09-04)
  • d8b5cf87 feat(scheduler-allocation): add forward-compatible allocation-mode field (2026-09-04)
  • 5a670676 feat(scheduler-allocation): add resreq fingerprinting for the cache (2026-09-04)
  • d5d2c1ca feat(scheduler-allocation): add lazy plan/host iterator contracts (2026-09-04)
  • d1a3e158 docs(scheduler-allocation): fix xce_host_iter_t.next() return type (2026-09-04)
  • 48c789df docs(scheduler-allocation): approve requirements, add design and tasks (2026-09-04)
  • 375c49ec docs(eliminate-frontend-makefile): mark task 4.2 and feature complete (2026-09-03)
  • 91d99134 docs(eliminate-frontend-makefile): task 4.1 - final go/no-go gate passed (2026-09-03)
  • c554ed25 docs(eliminate-frontend-makefile): task 3.6 - live-reference sweep clean (2026-09-03)
  • 87707ff1 docs(eliminate-frontend-makefile): task 3.5 - verified regression suite parity (2026-09-03)
  • 12c6a59c feat(eliminate-frontend-makefile): task 3.4 - update source code comments (2026-09-03)
  • f5fbc6bc feat(eliminate-frontend-makefile): task 3.3 - update live documentation (11 files) (2026-09-03)
  • 6b105125 feat(eliminate-frontend-makefile): task 3.2 - fix deploy-ha.sh/run.sh messages (2026-09-03)
  • ff051e0e feat(eliminate-frontend-makefile): task 3.1 - fix run-resource-verify.sh discovery (2026-09-03)
  • 3c199f37 feat(eliminate-frontend-makefile): task 2 - migrate xce-build.sh off Make (2026-09-03)
  • 54b11bc2 docs(eliminate-frontend-makefile): task 1.2 - verified real CGO path coverage (2026-09-03)
  • 6c3ff201 feat(eliminate-frontend-makefile): task 1.1 - Meson backend CGO test target (2026-09-03)
  • be9a03a3 docs(eliminate-frontend-makefile): add approved spec (requirements/design/tasks) (2026-09-03)
  • 4a224e8c Simplify AppImage build to nix build .#xce.appImage (2026-09-03)
  • df4b386a docs(specs): reconcile stale phase/checkbox metadata (3 more specs) (2026-09-03)
  • 8557b869 docs(xce-test-rc-file): reconcile stale phase/checkbox metadata (2026-09-03)
  • 1abab949 docs(specs): reconcile stale metadata found auditing stalled specs (2026-09-03)
  • b14e53f5 docs(worker-rejoin-resync): reconcile stale phase metadata (2026-09-03)
  • 177e9b29 docs(xce-node-manager): add spec (requirements/design approved) (2026-09-03)
  • 6bb37cf4 docs(scheduler-sim-diagnostics): add draft spec (requirements only) (2026-09-03)
  • 0f7699de docs(scheduler-primary-lifecycle): add superseded spec (requirements/design/tasks) (2026-09-03)
  • 9dcffce8 test(scheduler-sim-reconcile-terminal-guard): task 2.2 - final REPL-level verification (2026-09-03)
  • 4b26120f docs(scheduler-sim-reconcile-terminal-guard): task 2.1 - validate no regression (2026-09-03)
  • b722de4f fix(scheduler-sim-reconcile-terminal-guard): task 1.2 - bug-1764 terminal-state guard (2026-09-03) — info worker kept listing already-DONE/EXIT jobs as still assigned
  • ff05c37b test(scheduler-sim-reconcile-terminal-guard): task 1.1 - RED tests for terminal guard (2026-09-03)
  • f854d9fa docs(scheduler-sim-reconcile-terminal-guard): add approved spec (requirements/design/tasks) (2026-09-03)
  • 56bd3103 docs(scheduler-sim-step-verbosity): task 2.2 - final regression and transcript verification (2026-09-03)
  • 19c9406d docs(scheduler-sim-step-verbosity): task 2.1 - validate no out-of-scope changes (2026-09-03)
  • 56e007cb feat(scheduler-sim-step-verbosity): task 1.2 - implement preamble deduplication (2026-09-03)
  • 6a2aa47f test(scheduler-sim-step-verbosity): task 1.1 - RED tests for preamble dedup (2026-09-03)
  • 13745409 docs(scheduler-sim-step-verbosity): add approved spec (requirements/design/tasks) (2026-09-03)
  • a51790dc docs(scheduler-sim-repl-verbosity): fix two documentation gaps from final validation (2026-09-02)
  • e87c0b3f docs(scheduler-sim-repl-verbosity): task 10.2 - final regression and scale verification (2026-09-02)
  • 5ab129cd docs(scheduler-sim-repl-verbosity): task 10.1 - validate no out-of-scope REPL regressions (2026-09-02)
  • bd973973 feat(scheduler-sim-repl-verbosity): task 9.2 - discoverable help and break event types (2026-09-02)
  • bd77eea0 test(scheduler-sim-repl-verbosity): task 9.1 - RED tests for help/break discoverability (2026-09-02)
  • 9db99964 feat(scheduler-sim-repl-verbosity): task 8.2 - implement resource table rendering (2026-09-02)
  • e48e222b feat(scheduler-sim-repl-verbosity): task 8.1 - RED-phase resource table tests (2026-09-02)
  • 5ee1d6cb feat(scheduler-sim-repl-verbosity): task 7.2 - implement resource formatting helpers (2026-09-02)
  • 11fe6194 feat(scheduler-sim-repl-verbosity): task 7.1 - RED-phase resource formatting tests (2026-09-02)
  • da6ba96e feat(scheduler-sim-repl-verbosity): task 6.2 - implement dynamic REPL prompt (2026-09-02)
  • 99fa45c4 feat(scheduler-sim-repl-verbosity): task 6.1 - RED-phase REPL prompt tests (2026-09-02)
  • d9109b7c feat(scheduler-sim-repl-verbosity): task 4.2 - retire redundant per-decision echo (2026-09-02)
  • 3d08a43a feat(scheduler-sim-repl-verbosity): task 4.1 - RED-phase sim_print_decision Gate tests (2026-09-02)
  • cc78d091 feat(scheduler-sim-repl-verbosity): task 3.2 - implement Event Echo Gate (2026-09-02)
  • f587a441 feat(scheduler-sim-repl-verbosity): task 3.1 - RED-phase Event Echo Gate tests (2026-09-02)
  • 921c72bb feat(scheduler-sim-repl-verbosity): task 2.2 - implement Round Rollup logic (2026-09-02)
  • 0c6ccb03 feat(scheduler-sim-repl-verbosity): task 2.1 - RED-phase Round Rollup tests (2026-09-02)
  • e6c67019 docs(scheduler-sim-repl-verbosity): expand spec with Requirements 5.5, 6, 7 (2026-09-02)
  • b639fae1 feat(scheduler-sim-repl-verbosity): task 1.2 - implement job identifier range compression (2026-09-02)
  • f165e3a7 feat(scheduler-sim-repl-verbosity): task 1.1 - RED-phase tests for job identifier range compression (2026-09-02)
  • b6a2f5ec fix(worker-rejoin-resync): task 4.4 - gate periodic load-indices send on resync_pending (2026-09-02)
  • 4140ecdb docs(worker-rejoin-resync): add task 4.4 - close feature-level Req 3.8 gap (2026-09-02)
  • a1dc2396 docs(worker-rejoin-resync): check off completed group headers in tasks.md (2026-09-02)
  • 1c4cf8bd fix(worker-rejoin-resync): task 7.5 - bound the outbound reconciliation query (2026-09-02)
  • 613b80e9 test(worker-rejoin-resync): task 7.4 - large job-count pagination correctness (2026-09-02)
  • 165fc158 test(worker-rejoin-resync): task 7.3 - burst recovery unbounded by count (2026-09-02)
  • bceca0c9 test(worker-rejoin-resync): task 7.2 - failover-during-job recovery (2026-09-01)
  • 8650cfd9 test(worker-rejoin-resync): task 7.1 - full rejoin round trip (2026-09-01)
  • 9f655c61 feat(worker-rejoin-resync): task 6.2 - route job-state report to reconciliation (2026-09-01)
  • a3d12d37 feat(worker-rejoin-resync): task 6.1 - trigger reconciliation on rejoin (2026-09-01)
  • 80d5a062 feat(worker-rejoin-resync): task 5 - exclude reconciling host from dispatch (2026-09-01)
  • 5b699736 feat(worker-rejoin-resync): task 4.3 - wire query receipt and post-join gate (2026-09-01)
  • cfe58c3d feat(worker-rejoin-resync): task 4.2 - worker answers job-state query with extras (2026-09-01)
  • e31012e8 feat(worker-rejoin-resync): task 4.1 - bounded finished-job retention on worker (2026-09-01)
  • 087b8c18 docs(worker-rejoin-resync): fold worker config-delivery gap into task 6.1 (2026-09-01)
  • eec2596c feat(worker-rejoin-resync): apply reported outcomes idempotently (task 3.2) (2026-09-01)
  • 442fcf45 feat(worker-rejoin-resync): reconciliation round lifecycle (task 3.1) (2026-09-01)
  • ea0658ec feat(worker-rejoin-resync): fail-fast disconnected-worker dispatch (task 2.3) (2026-09-01)
  • ecfb4c94 feat(worker-rejoin-resync): reconcile unqueried job assignment (task 2.2) (2026-09-01)
  • b7ed6de2 docs(worker-rejoin-resync): correct design.md's NULL-alloc encode claim (2026-09-01)
  • cfe66dde feat(worker-rejoin-resync): reconcile unrecognized job to pending (task 2.1) (2026-09-01)
  • eda2eb1b docs(worker-rejoin-resync): mark Foundation phase complete (task 1) (2026-09-01)
  • ce3d391e feat(worker-rejoin-resync): wire config fields into xceadmin build (task 1.5) (2026-09-01)
  • 9f3dfe79 feat(worker-rejoin-resync): add reconciliation wire codec helpers (task 1.4) (2026-09-01)
  • 9fbbd12b docs(worker-rejoin-resync): add task 1.5, xceadmin config-build wiring (2026-09-01)
  • 25347648 docs(worker-rejoin-resync): close task 1.3, satisfied by pre-existing infra (2026-09-01)
  • 1260d913 feat(worker-rejoin-resync): add worker reconciling status type (task 1.2) (2026-09-01)
  • 1ff57ef6 feat(worker-rejoin-resync): define reconciliation wire protocol (task 1.1) (2026-09-01)
  • 6c908d50 docs(worker-rejoin-resync): fix design review findings; add tasks.md (2026-09-01)
  • 8a2e22f4 docs: mark scheduler-dispatch-commit tasks complete; add parked commit-batch-window spec (2026-09-01)
  • f2ff45f1 docs(worker-rejoin-resync): add requirements, design, and research docs (2026-09-01)
  • eb06f16d fix(scheduler): wire mem reservation reconciliation into live rusage event path (2026-09-01)
  • a6a0bdf7 docs(resource-accounting): explain why admission control doesn't query live (2026-08-31)
  • f4103e0e fix(scheduler): charge unreserved jobs' real memory usage too (2026-08-31)
  • 87a2a46b feat(scheduler): reconcile mem reservation against real usage (2026-08-31)
  • f59890ce docs(scheduler-snapshot-job-allocation): sync spec.json phase to implementation-complete (2026-08-30)

build

  • 0b1e3107 remove extralib (2026-09-04)
  • 6b105125 feat(eliminate-frontend-makefile): task 3.2 - fix deploy-ha.sh/run.sh messages (2026-09-03)
  • 3c199f37 feat(eliminate-frontend-makefile): task 2 - migrate xce-build.sh off Make (2026-09-03)
  • 4a224e8c Simplify AppImage build to nix build .#xce.appImage (2026-09-03)
  • 68bc86bc build: make Go and Python builds fully offline (hermetic Nix build) (2026-09-03)
  • ce3d391e feat(worker-rejoin-resync): wire config fields into xceadmin build (task 1.5) (2026-09-01)
  • ff9de2e0 fix(bug-924): prune stale /tmp test-fixture dirs in xce-build.sh (2026-08-30)

misc

  • f5fbc6bc feat(eliminate-frontend-makefile): task 3.3 - update live documentation (11 files) (2026-09-03)
  • ff051e0e feat(eliminate-frontend-makefile): task 3.1 - fix run-resource-verify.sh discovery (2026-09-03)
  • 4a224e8c Simplify AppImage build to nix build .#xce.appImage (2026-09-03)
  • 651b5138 fix(xce-build skill): dispatch builds via Bash run_in_background, not Agent subagent (2026-09-03)
  • 68bc86bc build: make Go and Python builds fully offline (hermetic Nix build) (2026-09-03)
  • 00fc0a43 test(xce-test-ha): add worker-rejoin-resync coverage to sequential/chaotic soak modes (2026-09-02)
  • ea00879a update README.md to the newest build guide (2026-09-02)
  • 87a2a46b feat(scheduler): reconcile mem reservation against real usage (2026-08-31)
  • 63261097 update work status (2026-08-30)
  • ccef5610 feat(skills): add xce-changes skill for component-grouped CHANGES.md (2026-08-30)

Aug 24, 2026 - Aug 29, 2026

controller

  • 67009815 fix(bug-1731): fire HOOK_DETAIL_JOB_FAIL on WAL_JOB_FAIL apply (2026-08-29)
  • ebe691c3 fix(bug-1731): fire HOOK_DETAIL_JOB_START/JOB_EXIT on WAL apply (2026-08-29)
  • 47532f0a fix(ha): first-boot promotion evaluated eligibility before its own WAL recovery ran (bug-1696) (2026-08-27)
  • f886c809 fix(controller): standby dispatch-gate rejections now redirect to a known primary (bug-1700, bug-1701) (2026-08-27)
  • ac1e312e fix(controller): job.start_time never set -- dispatch/WAL_JOB_START RUN-state collision (bug-1697) (2026-08-27)
  • 7880ab42 chore(xce-test-rc-file): pass --norc from existing xce_test automation (2026-08-27)
  • 19bc8192 test(xce-test-rc-file): task 3.2 end-to-end rc-file failure handling (2026-08-26)
  • d258aa3d test(xce-test-rc-file): task 3.1 end-to-end rc-file discovery/loading/--norc (2026-08-26)
  • e863d699 feat(xce-test-rc-file): task 2.2 wire rc-file loading into xce_test startup (2026-08-26)
  • 68fcd657 feat(xce-test-rc-file): task 2.1 add --norc flag to xce_test (2026-08-26)
  • 77aba21f feat(xce-test-rc-file): task 1.2 rc-file line-loading via pluggable runner (2026-08-26)
  • 9de4db95 feat(xce-test-rc-file): task 1.1 rc-file path resolution with XDG precedence (2026-08-26)
  • ac46bfa6 fix(controller): restored-but-stale raft term permanently blocked re-election after restart (bug-1695) (2026-08-25)
  • b4eb9ec8 fix(controller): offload checkpoint_task_fn off the delaymgr thread (bug-1694) (2026-08-25)
  • 3eba7c16 fix(controller): fail loud on scheduler/worker disconnect instead of relying on the reply-wait timeout (bug-1693) (2026-08-25)
  • d0e5f85a fix(controller): WAL_JOB_PREASON loses job.pend_reasons on replay (bug-1692) (2026-08-25)
  • 97760761 fix(controller): WAL_JOB_CKPT loses job.ckptinfo on replay (bug-1691) (2026-08-25)
  • f7b732a3 fix(controller): WAL_JOB_RUSAGE loses job.run_usage on replay (bug-1690) (2026-08-25)
  • c2690cbf fix(controller): WAL_JOB_FINISH loses exit_info/finish_time on replay -- and exit_info was never set at all in production (bug-1689) (2026-08-25)
  • 955efecd fix(controller): WAL_JOB_START loses pidinfo/start_time on restart replay (bug-1687) (2026-08-25)
  • e5e6cd18 fix(controller): raft_cb_persist must deny vote and roll back state on persist failure (bug-1684) (2026-08-25)
  • 8d6f610e test(controller): cover live dispatch's apiserver notification (bug-1679) (2026-08-25)
  • da7813bf fix(controller): notify apiserver synchronously on live dispatch (bug-1679) (2026-08-25)
  • f8851353 test(controller): cover WAL_JOB_DISPATCH allocation persistence (bug-1678) (2026-08-25)
  • db142d41 fix(controller): persist dispatch-time resource allocation into WAL_JOB_DISPATCH (bug-1678, gitea #43) (2026-08-25)

worker

  • 347e996e feat(worker): distinguish signal-killed job exits from real crashes in logs (2026-08-29)

scheduler

  • 14f95b06 fix(scheduler): re-derive worker/shared resource used-totals on snapshot load (2026-08-29)
  • ebe691c3 fix(bug-1731): fire HOOK_DETAIL_JOB_START/JOB_EXIT on WAL apply (2026-08-29)
  • b1323f8d fix(bug-1730): free job accounts/allocs on JOB_UPDATE terminal transition (2026-08-29)
  • 5948e079 docs(scheduler-snapshot-job-allocation): close final invariant-audit follow-up, feature complete (2026-08-28)
  • 93d791c6 docs(scheduler-snapshot-job-allocation): correct snapshot.c scope-decision documentation (2026-08-28)
  • 2654e03f test(scheduler-snapshot-job-allocation): close originally-reported symptom end to end (2026-08-28)
  • de6ad514 test(scheduler-snapshot-job-allocation): regression test for allocator crash (2026-08-27)
  • f0fbebde test(scheduler-snapshot-job-allocation): backward-compat for allocation-less snapshots (2026-08-27)
  • 7481cedb test(scheduler-snapshot-job-allocation): full cross-instance round-trip proof (2026-08-27)
  • 182cb555 feat(scheduler-snapshot-job-allocation): restore allocs/accounts on load (2026-08-27)
  • 6fa2d970 feat(scheduler-snapshot-job-allocation): populate allocs on snapshot save (2026-08-27)
  • 22353849 feat(scheduler-snapshot-job-allocation): construct schedobj for restored jobs (2026-08-27)
  • 0ebf3a81 fix(scheduler): repeat WORKERS_PUSH with a NULL resval clobbers good values (bug-1688) (2026-08-27)
  • ab077916 test(scheduler-sim-eager-reconciliation): task 3.2 sim-verify regression (2026-08-27)
  • c971f7dc test(scheduler-sim-eager-reconciliation): task 3.1 resource-contention proof (2026-08-27)
  • c67382e6 test(scheduler-sim-eager-reconciliation): task 1.2 capture-safety unit coverage (2026-08-27)
  • 0893fd50 test(scheduler-sim-eager-reconciliation): task 2.1 resInUse deferral proof (2026-08-27)
  • e2bb98c8 feat(scheduler-sim-eager-reconciliation): task 1.1 state-independent dispatch capture (2026-08-27)
  • bc3f76b4 fix(scheduler): invalidate stale builtin_fcfs picker cursors across calls (bug-1686) (2026-08-25)
  • b040dfc0 fix(scheduler): remove double-free in limit plugin config update (bug-1685) (2026-08-25)
  • 6400f96d fix(scheduler): mirror plugin_begin_session/plugin_end_session into sim-mode driver (bug-1681) (2026-08-25)

frontend

  • ebe691c3 fix(bug-1731): fire HOOK_DETAIL_JOB_START/JOB_EXIT on WAL apply (2026-08-29)
  • 9a230f08 fix(apiserver): FilterRows must not route non-bitmask operators through bitmask matching (bug-1680) (2026-08-25)
  • 1a61b04a fix(apiserver): thread from_host through the CGO conversion layer (bug-1676, gitea #44) (2026-08-24)
  • fe8818b1 fix(apiserver): pass client-asserted FromHost through unchanged (bug-1676, gitea #44) (2026-08-24)
  • 4fad7884 fix(xcecli): assert own hostname as FROM_HOST at submission time (bug-1676, gitea #44) (2026-08-24)
  • fe87dafc fix(apiserver): fall back to default HostConfig for unmatched workers (bug-1673, gitea #40) (2026-08-24)
  • 88c7c05d fix(apiserver): jobs list -l/-o validates against the wrong struct (bug-1674, gitea #41) (2026-08-24)
  • a58c2a19 fix(xcecli): friendly message for connection-refused instead of raw OS error (bug-1675, gitea #42) (2026-08-24)

xceadmin

  • 6193fa7e test(admin-config-tool): update standby-redirect E2E for bug-1700/1701 (2026-08-29)
  • cfd7db8c fix(xceadmin): retry transient scheduler-admin failures after a redirect (bug-1713, bug-1715) (2026-08-27)
  • 3891bd90 test(xceadmin): add env-var override for live E2E binary discovery (2026-08-27)

lib

  • 42e1eeaa fix(bug-1733): fix heap-use-after-free race in vtask_enq() (2026-08-29)
  • 097e33ae feat(scheduler-snapshot-job-allocation): add dup_job_alloc deep-copy primitive (2026-08-27)
  • 00207503 fix(lib): heap buffer overflow in make_job_account() for multi-host jobs (bug-1722) (2026-08-27)
  • 363709b0 fix(lib): thread from_host through the wire format and the job-submit interning object (bug-1676, gitea #44) (2026-08-24)

include

  • 097e33ae feat(scheduler-snapshot-job-allocation): add dup_job_alloc deep-copy primitive (2026-08-27)
  • ac1e312e fix(controller): job.start_time never set -- dispatch/WAL_JOB_START RUN-state collision (bug-1697) (2026-08-27)
  • b4eb9ec8 fix(controller): offload checkpoint_task_fn off the delaymgr thread (bug-1694) (2026-08-25)
  • d0e5f85a fix(controller): WAL_JOB_PREASON loses job.pend_reasons on replay (bug-1692) (2026-08-25)
  • 97760761 fix(controller): WAL_JOB_CKPT loses job.ckptinfo on replay (bug-1691) (2026-08-25)
  • f7b732a3 fix(controller): WAL_JOB_RUSAGE loses job.run_usage on replay (bug-1690) (2026-08-25)
  • c2690cbf fix(controller): WAL_JOB_FINISH loses exit_info/finish_time on replay -- and exit_info was never set at all in production (bug-1689) (2026-08-25)
  • 955efecd fix(controller): WAL_JOB_START loses pidinfo/start_time on restart replay (bug-1687) (2026-08-25)
  • da7813bf fix(controller): notify apiserver synchronously on live dispatch (bug-1679) (2026-08-25)
  • db142d41 fix(controller): persist dispatch-time resource allocation into WAL_JOB_DISPATCH (bug-1678, gitea #43) (2026-08-25)
  • 363709b0 fix(lib): thread from_host through the wire format and the job-submit interning object (bug-1676, gitea #44) (2026-08-24)

schema

  • f7b732a3 fix(controller): WAL_JOB_RUSAGE loses job.run_usage on replay (bug-1690) (2026-08-25)
  • 363709b0 fix(lib): thread from_host through the wire format and the job-submit interning object (bug-1676, gitea #44) (2026-08-24)

specs

  • 6193fa7e test(admin-config-tool): update standby-redirect E2E for bug-1700/1701 (2026-08-29)
  • 42fdeb66 docs: save scheduler-config-version-tag spec (requirements/design/tasks) (2026-08-29)
  • b64682dc docs: save scheduler-snapshot-job-allocation and xce-test-cli-ux spec docs, sync OpenWolf state (2026-08-28)
  • 5948e079 docs(scheduler-snapshot-job-allocation): close final invariant-audit follow-up, feature complete (2026-08-28)
  • 93d791c6 docs(scheduler-snapshot-job-allocation): correct snapshot.c scope-decision documentation (2026-08-28)
  • 9988e714 test(scheduler-snapshot-job-allocation): confirm no regression to reconciliation or snapshot format (2026-08-28)
  • 2654e03f test(scheduler-snapshot-job-allocation): close originally-reported symptom end to end (2026-08-28)
  • de6ad514 test(scheduler-snapshot-job-allocation): regression test for allocator crash (2026-08-27)
  • f0fbebde test(scheduler-snapshot-job-allocation): backward-compat for allocation-less snapshots (2026-08-27)
  • 7481cedb test(scheduler-snapshot-job-allocation): full cross-instance round-trip proof (2026-08-27)
  • 182cb555 feat(scheduler-snapshot-job-allocation): restore allocs/accounts on load (2026-08-27)
  • 6fa2d970 feat(scheduler-snapshot-job-allocation): populate allocs on snapshot save (2026-08-27)
  • 22353849 feat(scheduler-snapshot-job-allocation): construct schedobj for restored jobs (2026-08-27)
  • 097e33ae feat(scheduler-snapshot-job-allocation): add dup_job_alloc deep-copy primitive (2026-08-27)
  • d32f06e5 docs: formalize save/restore field-completeness as a standing invariant (2026-08-27)
  • 5e68fcc0 docs(spec): promote eliminate-frontend-makefile backlog item to a brief (2026-08-27)
  • 13246a89 docs: OpenWolf pointer cleanup + redirect-hint checklist item (bug-1700 lesson) (2026-08-27)
  • 446437bf test(scheduler-sim-eager-reconciliation): task 3.3 full regression confirmation (2026-08-27)
  • ab077916 test(scheduler-sim-eager-reconciliation): task 3.2 sim-verify regression (2026-08-27)
  • c971f7dc test(scheduler-sim-eager-reconciliation): task 3.1 resource-contention proof (2026-08-27)
  • c67382e6 test(scheduler-sim-eager-reconciliation): task 1.2 capture-safety unit coverage (2026-08-27)
  • 0893fd50 test(scheduler-sim-eager-reconciliation): task 2.1 resInUse deferral proof (2026-08-27)
  • e2bb98c8 feat(scheduler-sim-eager-reconciliation): task 1.1 state-independent dispatch capture (2026-08-27)
  • 8fc86ef4 test(xce-test-rc-file): task 3.3 confirm existing automation unaffected (2026-08-26)
  • 19bc8192 test(xce-test-rc-file): task 3.2 end-to-end rc-file failure handling (2026-08-26)
  • d258aa3d test(xce-test-rc-file): task 3.1 end-to-end rc-file discovery/loading/--norc (2026-08-26)
  • e863d699 feat(xce-test-rc-file): task 2.2 wire rc-file loading into xce_test startup (2026-08-26)
  • 68fcd657 feat(xce-test-rc-file): task 2.1 add --norc flag to xce_test (2026-08-26)
  • 77aba21f feat(xce-test-rc-file): task 1.2 rc-file line-loading via pluggable runner (2026-08-26)
  • 9de4db95 feat(xce-test-rc-file): task 1.1 rc-file path resolution with XDG precedence (2026-08-26)
  • 71a814f3 docs(steering): add field-complete apply-parity invariant; extend xce-audit-invariants (2026-08-25)
  • 5c82ad0b chore(specs): reconcile stale phase/checkbox metadata across 4 specs (2026-08-24)
  • 0c736c79 chore(specs): add scheduler-sim-eager-reconciliation spec, weekly report, cross-spec sequencing notes (2026-08-24)

build

  • 83cb660b fix(bug-1732): build xcecd_virtual in xce-build.sh's worker target (2026-08-29)
  • faedc6fc fix(deploy-ha): guard against double-launching a live HA deploy (2026-08-27)

misc

  • f0a3729f ignore daemon.log token-ledger (2026-08-28)
  • 1b473736 docs: general design-time cross-check against project invariant dimensions (2026-08-27)
  • d32f06e5 docs: formalize save/restore field-completeness as a standing invariant (2026-08-27)
  • 13246a89 docs: OpenWolf pointer cleanup + redirect-hint checklist item (bug-1700 lesson) (2026-08-27)
  • 7880ab42 chore(xce-test-rc-file): pass --norc from existing xce_test automation (2026-08-27)
  • 5441d1b8 docs(steering): add Decision Log fidelity as controller audit dimension 8 (2026-08-25)
  • 71a814f3 docs(steering): add field-complete apply-parity invariant; extend xce-audit-invariants (2026-08-25)
  • 643741fa fix(gitea-sync): unwrap buglog.json's {version,bugs} wrapper before iterating (bug-1677) (2026-08-24)
  • 8fd232c1 chore: gitignore generated capnp-c codegen output (2026-08-24)
  • f2b5f9c9 chore: untrack .wolf/dashboard-token, gitignore it going forward (2026-08-24)
  • 0c736c79 chore(specs): add scheduler-sim-eager-reconciliation spec, weekly report, cross-spec sequencing notes (2026-08-24)

Aug 17, 2026 - Aug 23, 2026

controller

  • a9cfee5f test(scheduler-dispatch-commit): fix last stale pinned assertion, full regression clean (task 5.4, final) (2026-08-23)
  • bea95699 test(scheduler-dispatch-commit): terminal dispatch failure e2e coverage (task 5.3) (2026-08-23)
  • 16d90319 test(scheduler-dispatch-commit): retryable and bounded-retry dispatch failure e2e coverage (task 5.2) (2026-08-23)
  • 7b3dfed5 feat(scheduler-dispatch-commit): handle_jobdispatch no longer duplicates dispatch-outcome reporting (task 4.1) (2026-08-23)
  • 05c45ef3 feat(scheduler-dispatch-commit): controller resolves retryable dispatch failures with bounded escalation (task 3.3) (2026-08-23)
  • 8a4266ad feat(scheduler-dispatch-commit): controller resolves terminal dispatch failures to EXIT (task 3.2) (2026-08-23)
  • d9aedc4b feat(scheduler-dispatch-commit): controller commits alloc+RUN transition together on successful dispatch (task 3.1) (2026-08-23)
  • 19bbac6a feat(scheduler-dispatch-commit): add dispatch-fail retry counter to job_t (task 1.3) (2026-08-23)
  • 8eea7490 feat(scheduler-dispatch-commit): add durable WAL_JOB_DISPATCH fact type (task 1.2) (2026-08-23)
  • 5724d1e9 feat(scheduler-dispatch-commit): add controller dispatch-failure classification (task 1.1) (2026-08-23)
  • 1c906e95 fix(worker): job ids print human-readable format via fmt_jobid() (bug-1588) (2026-08-22)
  • fd62e26b feat(dirty-content-fingerprint): controller/scheduler show fingerprint in --version (2026-08-21)
  • 88649a04 feat(build-time-versioning): controller/scheduler --version and startup log (2026-08-20)
  • 5147396d fix(controller): job start_time/finish_time/run_time never set by apply-pump (2026-08-20)
  • e52c68f4 fix(controller): admission-gate OPCode_schedAdmin's blocking wait (Req 5 AC 10) (2026-08-19)
  • 515f4ca0 fix(controller): job.c TRACE lines print human-readable jobid (bug-1588) (2026-08-19)
  • b406dd76 fix(controller): sched_worker_change() use-after-free on worker disconnect (bug-1578) (2026-08-18)
  • f5390c14 feat(resource-value-verification): per-name accept/reject verification in resupdate (task 2.2) (2026-08-18)
  • 058335d2 feat(resource-value-verification): wire resolver into resupdate, add -t flag (task 2.1) (2026-08-17)
  • 98b8c34b feat(resource-value-verification): extract resupdate type-resolution logic (task 1.1) (2026-08-17)
  • aabddf60 fix(scheduler,controller): worker resource values always display as 0.00 (bug-1568) (2026-08-17)
  • 986a3304 fix(controller): persist_flush now fires durable-advance callback (bug-1564) (2026-08-17)
  • 846713ab fix(ha): close standby election-freeze (bug-1562) + flusher retry storm (bug-1563) (2026-08-17)

worker

  • 1c906e95 fix(worker): job ids print human-readable format via fmt_jobid() (bug-1588) (2026-08-22)
  • d3d9522f feat(dirty-content-fingerprint): worker shows fingerprint in --version (2026-08-21)
  • bc5c669b feat(build-time-versioning): worker --version and startup log (2026-08-20)
  • 70fe9e46 fix(worker): dbus_workers_update() starves workers after first DONE/EXITED (bug-1589) (2026-08-19)
  • 6e5c3a89 fix(worker): bug-1569 periodic resval reports tagged with wrong host (2026-08-17)

scheduler

  • 01c83066 test(scheduler-dispatch-commit): bug-1624 multi-round regression coverage (task 5.1) (2026-08-23)
  • 281a026d feat(scheduler-dispatch-commit): scheduler processes dispatch-fail notify, returns job to PEND (task 2.2) (2026-08-23)
  • 8607348c feat(scheduler-dispatch-commit): scheduler transitions job to RUN at dispatch commit (task 2.1) (2026-08-23)
  • 3c4091d8 test(scheduler-sim-decision-parity): live-verify against a real 24-round recording (task 4.3, final) (2026-08-22)
  • 88bed529 test(scheduler-sim-decision-parity): regression suite for existing guarantees (task 4.2) (2026-08-22)
  • b3190732 test(scheduler-sim-decision-parity): prove capacity-aware parity under contention (task 4.1) (2026-08-22)
  • 12644094 feat(scheduler-sim-decision-parity): wire reconciliation into the round boundary (task 3) (2026-08-22)
  • 0c237f60 feat(scheduler-sim-decision-parity): report reconciled decisions through the existing channel (task 2.4) (2026-08-22)
  • eccba841 feat(scheduler-sim-decision-parity): reconstruct job allocation with safe ownership (task 2.3) (2026-08-22)
  • 81358b52 feat(scheduler-sim-decision-parity): add reconciliation trigger and lookup (task 2.2) (2026-08-22)
  • 134380b8 fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) (2026-08-22)
  • f11f0df3 test(scheduler-sim-decision-parity): add resource-contention replay fixture (task 1.2) (2026-08-22)
  • 3106c82e feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) (2026-08-22)
  • 25e35bac docs(scheduler): document driver-equivalence invariant, scope decision-parity fix spec (2026-08-22)
  • fd62e26b feat(dirty-content-fingerprint): controller/scheduler show fingerprint in --version (2026-08-21)
  • 88649a04 feat(build-time-versioning): controller/scheduler --version and startup log (2026-08-20)
  • 8abab049 feat(scheduler): show event time/session in sim echo, total sessions on replay load (2026-08-20)
  • 94733616 fix(scheduler): gate resource value/used display on XCE_RESF_CONSUMABLE (2026-08-20)
  • 185feca2 fix(scheduler): "info resource all" printed nothing when no global/shared resources exist (2026-08-20)
  • 8cb304d2 fix(scheduler): sim_print_decision() bypassed tlog, producing inconsistent PEND/DISPATCH/PREEMPT output (2026-08-20)
  • 1bc65d2c docs(resource-value-verification): close design-review doc/comment gaps (2026-08-19)
  • a13068dc fix(scheduler): extend core-isolation nm-audit to core_events.c/core_session.c/core_clock.c (Req 5 AC 1/2) (2026-08-19)
  • b450a680 fix(scheduler): activate virtual-clock logging for sim/REPL sessions (Req 5 AC 3) (2026-08-19)
  • c9acd502 fix(scheduler): clock/resval/jobid-format fixes plus REPL live-operator gaps (task 12.5) (2026-08-19)
  • e68444f1 feat(resource-value-verification): add scheduler resval trace log (task 4.1) (2026-08-18)
  • 7041d988 fix(scheduler): bug-1569 three stacked crashes blocking ALL job dispatch (2026-08-17)
  • 6e5c3a89 fix(worker): bug-1569 periodic resval reports tagged with wrong host (2026-08-17)
  • aabddf60 fix(scheduler,controller): worker resource values always display as 0.00 (bug-1568) (2026-08-17)
  • 0c8e417b fix(scheduler): sim mode picker never learns about the initial snapshot's own jobs/queues (bug-1567) (2026-08-17)

frontend

  • d65d18ad feat(dirty-content-fingerprint): xcecli shows fingerprint in --version (2026-08-21)
  • a4c1b5ad feat(dirty-content-fingerprint): apiserver shows fingerprint in -version (2026-08-21)
  • aa3391a9 feat(dirty-content-fingerprint): Makefile computes dev-loop fingerprint (2026-08-21)
  • 502dd023 feat(dirty-content-fingerprint): apiserver/xcecli meson pass fingerprint to go_build (2026-08-21)
  • fb09afe6 feat(build-time-versioning): xcecli --version via Cobra rootCmd.Version (2026-08-20)
  • 17e837b1 feat(build-time-versioning): apiserver -version flag and startup log (2026-08-20)
  • 45c9b026 feat(build-time-versioning): Makefile ldflags for make build-server/build-cli (2026-08-20)
  • 071f3895 feat(build-time-versioning): thread commit_id/build_time into go_build env (2026-08-20)
  • 1bc65d2c docs(resource-value-verification): close design-review doc/comment gaps (2026-08-19)
  • 8b4fbffa feat(resource-value-verification): add apiserver resval trace log (task 4.2) (2026-08-18)

xceadmin

  • c79ccf0f feat(dirty-content-fingerprint): xceadmin shows fingerprint in --version (2026-08-21)
  • 2bf62a64 feat(dirty-content-fingerprint): xceadmin build-info module gains fingerprint (2026-08-21)
  • 7f5c87ce feat(build-time-versioning): xceadmin committed fallback stub and CLI version wiring (2026-08-20)
  • e1cd9d25 feat(build-time-versioning): xceadmin generates build-info module (2026-08-20)
  • 0f1df499 feat(deploy,xceadmin): standalone xceadmin packaging + deploy-ha usability (bug-1566) (2026-08-17)

lib

  • 7ebcba6d feat(dirty-content-fingerprint): add --version-only composition with dirty_fingerprint (2026-08-21)
  • 48a86cda feat(build-time-versioning): version macro/helper functions with unknown fallback (2026-08-20)
  • ddee884c fix(libxce): bug-1600 -- makeGroup() freed rtti makeString() pointer via raw free() (2026-08-20)

include

  • 19bbac6a feat(scheduler-dispatch-commit): add dispatch-fail retry counter to job_t (task 1.3) (2026-08-23)
  • 8eea7490 feat(scheduler-dispatch-commit): add durable WAL_JOB_DISPATCH fact type (task 1.2) (2026-08-23)
  • 7ebcba6d feat(dirty-content-fingerprint): add --version-only composition with dirty_fingerprint (2026-08-21)
  • 48a86cda feat(build-time-versioning): version macro/helper functions with unknown fallback (2026-08-20)
  • 846713ab fix(ha): close standby election-freeze (bug-1562) + flusher retry storm (bug-1563) (2026-08-17)

specs

  • f784e2bd chore(scheduler-dispatch-commit): mark spec implementation-complete (2026-08-23)
  • a9cfee5f test(scheduler-dispatch-commit): fix last stale pinned assertion, full regression clean (task 5.4, final) (2026-08-23)
  • bea95699 test(scheduler-dispatch-commit): terminal dispatch failure e2e coverage (task 5.3) (2026-08-23)
  • 16d90319 test(scheduler-dispatch-commit): retryable and bounded-retry dispatch failure e2e coverage (task 5.2) (2026-08-23)
  • 01c83066 test(scheduler-dispatch-commit): bug-1624 multi-round regression coverage (task 5.1) (2026-08-23)
  • 7b3dfed5 feat(scheduler-dispatch-commit): handle_jobdispatch no longer duplicates dispatch-outcome reporting (task 4.1) (2026-08-23)
  • 05c45ef3 feat(scheduler-dispatch-commit): controller resolves retryable dispatch failures with bounded escalation (task 3.3) (2026-08-23)
  • 8a4266ad feat(scheduler-dispatch-commit): controller resolves terminal dispatch failures to EXIT (task 3.2) (2026-08-23)
  • d9aedc4b feat(scheduler-dispatch-commit): controller commits alloc+RUN transition together on successful dispatch (task 3.1) (2026-08-23)
  • 281a026d feat(scheduler-dispatch-commit): scheduler processes dispatch-fail notify, returns job to PEND (task 2.2) (2026-08-23)
  • 8607348c feat(scheduler-dispatch-commit): scheduler transitions job to RUN at dispatch commit (task 2.1) (2026-08-23)
  • 19bbac6a feat(scheduler-dispatch-commit): add dispatch-fail retry counter to job_t (task 1.3) (2026-08-23)
  • 8eea7490 feat(scheduler-dispatch-commit): add durable WAL_JOB_DISPATCH fact type (task 1.2) (2026-08-23)
  • 5724d1e9 feat(scheduler-dispatch-commit): add controller dispatch-failure classification (task 1.1) (2026-08-23)
  • ca01509f chore(scheduler-sim-decision-parity): mark feature complete (2026-08-22)
  • 3c4091d8 test(scheduler-sim-decision-parity): live-verify against a real 24-round recording (task 4.3, final) (2026-08-22)
  • 88bed529 test(scheduler-sim-decision-parity): regression suite for existing guarantees (task 4.2) (2026-08-22)
  • b3190732 test(scheduler-sim-decision-parity): prove capacity-aware parity under contention (task 4.1) (2026-08-22)
  • 12644094 feat(scheduler-sim-decision-parity): wire reconciliation into the round boundary (task 3) (2026-08-22)
  • 0c237f60 feat(scheduler-sim-decision-parity): report reconciled decisions through the existing channel (task 2.4) (2026-08-22)
  • eccba841 feat(scheduler-sim-decision-parity): reconstruct job allocation with safe ownership (task 2.3) (2026-08-22)
  • 81358b52 feat(scheduler-sim-decision-parity): add reconciliation trigger and lookup (task 2.2) (2026-08-22)
  • 134380b8 fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) (2026-08-22)
  • f11f0df3 test(scheduler-sim-decision-parity): add resource-contention replay fixture (task 1.2) (2026-08-22)
  • 3106c82e feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) (2026-08-22)
  • 0b2c856d docs(scheduler-sim-decision-parity): finalize design and generate tasks (2026-08-22)
  • 25e35bac docs(scheduler): document driver-equivalence invariant, scope decision-parity fix spec (2026-08-22)
  • 94fd1504 chore: sync harness/session state and OpenWolf bookkeeping (2026-08-22)
  • 979cd24f docs(scheduler-sim-repl-verbosity): add approved spec (requirements/design/tasks) (2026-08-22)
  • aaca3768 docs(dirty-content-fingerprint): mark task 2 container checkbox complete (2026-08-21)
  • f4d2c123 test(dirty-content-fingerprint): add Nix production path fingerprint check (2026-08-21)
  • a4785418 test(dirty-content-fingerprint): add startup-log-unchanged consistency check (2026-08-21)
  • a7d64c82 test(dirty-content-fingerprint): add dev-loop distinguishability regression (2026-08-21)
  • c79ccf0f feat(dirty-content-fingerprint): xceadmin shows fingerprint in --version (2026-08-21)
  • 2bf62a64 feat(dirty-content-fingerprint): xceadmin build-info module gains fingerprint (2026-08-21)
  • d65d18ad feat(dirty-content-fingerprint): xcecli shows fingerprint in --version (2026-08-21)
  • a4c1b5ad feat(dirty-content-fingerprint): apiserver shows fingerprint in -version (2026-08-21)
  • aa3391a9 feat(dirty-content-fingerprint): Makefile computes dev-loop fingerprint (2026-08-21)
  • 502dd023 feat(dirty-content-fingerprint): apiserver/xcecli meson pass fingerprint to go_build (2026-08-21)
  • b9499493 feat(dirty-content-fingerprint): go_build injects fingerprint via ldflags (2026-08-21)
  • d3d9522f feat(dirty-content-fingerprint): worker shows fingerprint in --version (2026-08-21)
  • fd62e26b feat(dirty-content-fingerprint): controller/scheduler show fingerprint in --version (2026-08-21)
  • 7ebcba6d feat(dirty-content-fingerprint): add --version-only composition with dirty_fingerprint (2026-08-21)
  • fc5cba15 feat(dirty-content-fingerprint): Nix flake computes fingerprint via self.narHash (2026-08-21)
  • c9d40ba1 feat(dirty-content-fingerprint): xce-build.sh computes dev-loop fingerprint (2026-08-21)
  • a860141b feat(dirty-content-fingerprint): add dirty_fingerprint meson option and C define (2026-08-21)
  • d3c583b3 docs(dirty-content-fingerprint): add spec (requirements, design, tasks) (2026-08-21)
  • 084a5a95 test(build-time-versioning): add xceadmin end-to-end build/install/version cycle check (2026-08-20)
  • 79941a9f test(build-time-versioning): add version/startup-log consistency check (2026-08-20)
  • 0eefc95f test(build-time-versioning): add motivating-incident regression script (2026-08-20)
  • 7f5c87ce feat(build-time-versioning): xceadmin committed fallback stub and CLI version wiring (2026-08-20)
  • e1cd9d25 feat(build-time-versioning): xceadmin generates build-info module (2026-08-20)
  • fb09afe6 feat(build-time-versioning): xcecli --version via Cobra rootCmd.Version (2026-08-20)
  • 17e837b1 feat(build-time-versioning): apiserver -version flag and startup log (2026-08-20)
  • 45c9b026 feat(build-time-versioning): Makefile ldflags for make build-server/build-cli (2026-08-20)
  • 071f3895 feat(build-time-versioning): thread commit_id/build_time into go_build env (2026-08-20)
  • 18ae0cc3 feat(build-time-versioning): go_build injects commit/build-time via ldflags (2026-08-20)
  • bc5c669b feat(build-time-versioning): worker --version and startup log (2026-08-20)
  • 88649a04 feat(build-time-versioning): controller/scheduler --version and startup log (2026-08-20)
  • 48a86cda feat(build-time-versioning): version macro/helper functions with unknown fallback (2026-08-20)
  • d08fda76 feat(build-time-versioning): nix packages compute build time at build phase (2026-08-20)
  • bca63974 feat(build-time-versioning): xce-build.sh computes real commit id/build time (2026-08-20)
  • 1ff9e66c docs(build-time-versioning): add spec (requirements, design, research) (2026-08-20)
  • 4b7cc786 feat(build-time-versioning): add build_time meson option and C-wide define (2026-08-20)
  • e61fa2b3 docs(roadmap): add resource-distribution-mapping (existed since 2026-07-23, never tracked here) (2026-08-20)
  • a16d32e3 docs(roadmap): close out four low-risk backlog cleanup items (2026-08-19)
  • 0519d24d docs(scheduler-core): reconcile stale doc references after today's fixes (2026-08-19)
  • aa42752d docs(scheduler-core): mark task 12.5 complete with fresh verification evidence (2026-08-19)
  • 1bc65d2c docs(resource-value-verification): close design-review doc/comment gaps (2026-08-19)
  • e52c68f4 fix(controller): admission-gate OPCode_schedAdmin's blocking wait (Req 5 AC 10) (2026-08-19)
  • c9acd502 fix(scheduler): clock/resval/jobid-format fixes plus REPL live-operator gaps (task 12.5) (2026-08-19)
  • 70fe9e46 fix(worker): dbus_workers_update() starves workers after first DONE/EXITED (bug-1589) (2026-08-19)
  • ef404131 docs(resource-value-verification): commit spec files, mark implementation complete (2026-08-18)
  • 9be9e954 test(resource-value-verification): verdict-logic regression selftest (task 8.2) (2026-08-18)
  • 19104d31 test(resource-value-verification): full live e2e validation run (task 8.1) (2026-08-18)
  • 13646647 feat(resource-value-verification): verdict aggregation, reporting, cleanup (task 7.1) (2026-08-18)
  • 8222c031 feat(resource-value-verification): apiserver-side verification check (task 6.4) (2026-08-18)
  • b673b7c9 fix(resource-value-verification): close bug-1579 for real via xce_test's ! shell-escape (2026-08-18)
  • 72b6fdea feat(resource-value-verification): scheduler-side verification check (task 6.3) (2026-08-18)
  • cb5bbfcc feat(resource-value-verification): controller-side verification check (task 6.2) (2026-08-18)
  • 75a0839d feat(resource-value-verification): worker join and resource injection (task 6.1) (2026-08-18)
  • da41cce2 feat(resource-value-verification): wire deployment into skill via start-all.sh (task 5.1) (2026-08-18)
  • 8b4fbffa feat(resource-value-verification): add apiserver resval trace log (task 4.2) (2026-08-18)
  • e68444f1 feat(resource-value-verification): add scheduler resval trace log (task 4.1) (2026-08-18)
  • 8f542a38 feat(resource-value-verification): extend xce-deploy-ha with apiserver step + start-all.sh (task 3.1) (2026-08-18)
  • f5390c14 feat(resource-value-verification): per-name accept/reject verification in resupdate (task 2.2) (2026-08-18)
  • 058335d2 feat(resource-value-verification): wire resolver into resupdate, add -t flag (task 2.1) (2026-08-17)
  • 642e2362 feat(resource-value-verification): scaffold xce-test-resources skill (task 1.2) (2026-08-17)
  • 98b8c34b feat(resource-value-verification): extract resupdate type-resolution logic (task 1.1) (2026-08-17)
  • 9f539583 docs: sync skills and steering docs with bug-1562..1566 findings (2026-08-17)

build

  • f4d2c123 test(dirty-content-fingerprint): add Nix production path fingerprint check (2026-08-21)
  • a4785418 test(dirty-content-fingerprint): add startup-log-unchanged consistency check (2026-08-21)
  • a7d64c82 test(dirty-content-fingerprint): add dev-loop distinguishability regression (2026-08-21)
  • b9499493 feat(dirty-content-fingerprint): go_build injects fingerprint via ldflags (2026-08-21)
  • fc5cba15 feat(dirty-content-fingerprint): Nix flake computes fingerprint via self.narHash (2026-08-21)
  • c9d40ba1 feat(dirty-content-fingerprint): xce-build.sh computes dev-loop fingerprint (2026-08-21)
  • a860141b feat(dirty-content-fingerprint): add dirty_fingerprint meson option and C define (2026-08-21)
  • 084a5a95 test(build-time-versioning): add xceadmin end-to-end build/install/version cycle check (2026-08-20)
  • 79941a9f test(build-time-versioning): add version/startup-log consistency check (2026-08-20)
  • 0eefc95f test(build-time-versioning): add motivating-incident regression script (2026-08-20)
  • 18ae0cc3 feat(build-time-versioning): go_build injects commit/build-time via ldflags (2026-08-20)
  • d08fda76 feat(build-time-versioning): nix packages compute build time at build phase (2026-08-20)
  • bca63974 feat(build-time-versioning): xce-build.sh computes real commit id/build time (2026-08-20)
  • 4b7cc786 feat(build-time-versioning): add build_time meson option and C-wide define (2026-08-20)
  • 83e61eec feat(xce-deploy-ha): support real xcecd worker deployment alongside virtual (2026-08-19)
  • 8f542a38 feat(resource-value-verification): extend xce-deploy-ha with apiserver step + start-all.sh (task 3.1) (2026-08-18)
  • 0f1df499 feat(deploy,xceadmin): standalone xceadmin packaging + deploy-ha usability (bug-1566) (2026-08-17)
  • 1c943e98 feat(build): add --incremental flag to xce-build.sh (bug-1565) (2026-08-17)

misc

  • 94fd1504 chore: sync harness/session state and OpenWolf bookkeeping (2026-08-22)
  • 83e61eec feat(xce-deploy-ha): support real xcecd worker deployment alongside virtual (2026-08-19)
  • 9be9e954 test(resource-value-verification): verdict-logic regression selftest (task 8.2) (2026-08-18)
  • 13646647 feat(resource-value-verification): verdict aggregation, reporting, cleanup (task 7.1) (2026-08-18)
  • 8222c031 feat(resource-value-verification): apiserver-side verification check (task 6.4) (2026-08-18)
  • b673b7c9 fix(resource-value-verification): close bug-1579 for real via xce_test's ! shell-escape (2026-08-18)
  • 72b6fdea feat(resource-value-verification): scheduler-side verification check (task 6.3) (2026-08-18)
  • cb5bbfcc feat(resource-value-verification): controller-side verification check (task 6.2) (2026-08-18)
  • 75a0839d feat(resource-value-verification): worker join and resource injection (task 6.1) (2026-08-18)
  • da41cce2 feat(resource-value-verification): wire deployment into skill via start-all.sh (task 5.1) (2026-08-18)
  • 8f542a38 feat(resource-value-verification): extend xce-deploy-ha with apiserver step + start-all.sh (task 3.1) (2026-08-18)
  • 642e2362 feat(resource-value-verification): scaffold xce-test-resources skill (task 1.2) (2026-08-17)
  • 9f539583 docs: sync skills and steering docs with bug-1562..1566 findings (2026-08-17)