86 lines
6.4 KiB
Markdown
86 lines
6.4 KiB
Markdown
# XCE Project Status — Aug 03 – Aug 07, 2026
|
||
|
||
## TL;DR
|
||
|
||
**scheduler-core: fully implemented.** All 13 task groups landed across the week — picker plugin contract, core extraction, normal-mode driver wiring, replay wire format, snapshot save/load, recording lifecycle, admin opcode dispatch, simulation mode, interactive REPL, and HA soak regression. One controller bug fixed (bug-1505: WalCatchupEntry SIGSEGV). Aug 08 (today) was documentation cleanup: deployment guide, CLAUDE.md sync, and a broad audit of 33 closed specs. The scheduler-framework feature branch is now implementation-complete.
|
||
|
||
## Commits by day
|
||
|
||
### Aug 03 (Sun) — Group 1 (picker contract) + Group 2 (builtin_fcfs) + Group 4 (core extraction) + Group 5 (driver wiring)
|
||
|
||
10 commits, closing out Groups 1–5:
|
||
|
||
- **Group 1 — Picker Plugin Contract** (tasks 1.1–1.3): defined `job_elect_fn` plugin contract, registered picker plugin category, added picker configuration fields
|
||
- **Group 2 — builtin_fcfs** (tasks 2.1–2.6): lifecycle, state-change hooks, session/post-allocation hooks, wired as registered default picker, scheduling-loop ordering guard regression tests, data-sharing invariant audit
|
||
- **Group 4 — Core Extraction** (tasks 4.1–4.6): extracted `xce_sched_core_t` from monolithic `scheduler_t`, pinned jbuf capacity + kvmgr determinism audit, event batch push interface (CONFIG_PUSH decomposition approved round 2), session-start signal + decision callback, clock virtualization + session timing, core contract test (full push-go-drain-end cycle)
|
||
- **Group 5 — Driver Wiring** (tasks 5.1–5.2): normal-mode event translation path, decision publishing + mode-selection wired into `main.c`
|
||
|
||
### Aug 04 (Mon) — Group 6 (HA soak gate) + Group 7 (replay wire format) + Group 8 (snapshot)
|
||
|
||
9 commits:
|
||
|
||
- **Group 6** (task 6): Phase 2 HA soak regression gate closed
|
||
- **Group 7 — Replay Wire Format** (tasks 7.1–7.5): replay stream envelope schema, event payload types (JobStateChangeEvent), decision payload types + snapshot schema (SnapshotData, ReplayDecision), admin opcode schema, round-trip coverage gap (1087/1087 tests pass)
|
||
- **Group 8 — Snapshot** (tasks 8.1–8.2): snapshot save/load with cross-thread concurrency fix, `-EBUSY` guard against active session
|
||
|
||
### Aug 05 (Tue) — Group 9 (recording lifecycle) + Group 10 (admin dispatch + xceadmin CLI)
|
||
|
||
9 commits:
|
||
|
||
- **Group 9 — Recording Lifecycle** (tasks 9.1–9.5): directory provisioning + path validation, record start/stop lifecycle (O_TRUNC→ftruncate hardlink fix, CWE-59 patched), periodic snapshot checkpointing, scheduler-side admin request handler, integration tests (26/26 pass)
|
||
- **Group 10 — Admin Dispatch + xceadmin CLI** (tasks 10.1–10.3): controller-side `OPCode_schedAdmin` dispatch (fmt-noise + leak fix), dispatch test suite (timeout/RPC-status/error paths), xceadmin recording client functions
|
||
|
||
### Aug 06 (Wed) — Group 10 (cont.) + Group 11 (simulation mode)
|
||
|
||
9 commits:
|
||
|
||
- **Group 10 cont.** (tasks 10.4–10.6): xceadmin scheduler dump command, CLI wiring (record_start/stop/status), mock-server E2E tests
|
||
- **Group 11 — Simulation Mode** (tasks 11.1–11.3): simulation-mode startup, virtual clock advancement + event loop, simulation isolation enforcement
|
||
|
||
### Aug 07 (Thu) — Group 11 (cont.) + Group 12 (REPL) + Group 13 (validation)
|
||
|
||
12 commits:
|
||
|
||
- **Group 11 cont.** (tasks 11.4–11.6): simulation decision verification, what-if branching + output recording, normal↔sim decision equivalence tests (5/5 pass, 33/33 regression)
|
||
- **Group 12 — REPL** (tasks 12.1–12.4): execution control (readline→libedit GPL→BSD), breakpoints + state inspection, snapshot capture + simulation parameter commands, step/continue equivalence to batch (37/37 tests pass)
|
||
- **fix(controller):** stop SIGSEGV in WalCatchupEntry capnp encode (**bug-1505**)
|
||
- **Group 13:** full cross-phase HA soak regression (15 rounds sequential pass)
|
||
- **Validation:** spec marked implementation-complete; feature-level validation findings recorded
|
||
|
||
### Aug 08 (Fri, today) — Documentation Cleanup
|
||
|
||
5 commits (documentation only, not implementation):
|
||
|
||
- `docs:` add scheduler recording/simulation/REPL to deployment guide
|
||
- `docs(scheduler-core):` sync CLAUDE.md for core/driver/picker/sim/REPL architecture
|
||
- `docs(scheduler-core):` commit accumulated brief/requirements/roadmap edits
|
||
- `docs(scheduler-core):` backfill `_Verified` notes for tasks 2.1–2.6
|
||
- `docs(scheduler-core):` commit design.md/research.md, sync design.md with as-built code
|
||
|
||
Plus a broad documentation audit (not yet committed): 33 closed `.kiro/specs` design.md files audited for drift against production source, with confirmed corrections across 8+ HA/Raft spec design docs. A separate stream of work (S1275–S1278) covered 28 free-standing docs → 126 audit findings, and TLS encryption claims in deployment.md were verified against `libxce` source (server-side TLS confirmed, `do_connect()` is an uncalled stub).
|
||
|
||
## Bugs opened/fixed this window
|
||
|
||
| Bug | Status | Summary |
|
||
|---|---|---|
|
||
| bug-1505 | **Fixed** (2026-08-07, `1fd467d0`) | `WalCatchupEntry` capnp encode SIGSEGV — `Data` fields in capnp schema caused null-deref; fixed by migrating to `List(UInt8)` (same class as bug-1504 in SnapshotData) |
|
||
|
||
## Spec status changes
|
||
|
||
- **scheduler-core** — **implementation-complete** (2026-08-07). All 13 task groups (1.1–13) delivered; spec.json phase → `implemented`. 55 commits, 112 files changed, ~42K insertions.
|
||
- Architecture: picker plugin system (job_elect_fn contract), builtin_fcfs, extracted xce_sched_core_t, normal-mode driver, capnp replay wire format, snapshot persistence, recording lifecycle, xceadmin CLI, simulation mode (normal↔sim equivalence), interactive REPL (BSD libedit).
|
||
|
||
## Stats
|
||
|
||
- **55 commits** in 5 days
|
||
- **112 files changed**, 42,005 insertions, 803 deletions
|
||
- **1 bug fixed** (bug-1505)
|
||
- **13 task groups** completed (Groups 1–13)
|
||
- **1 spec** moved to implemented (scheduler-core)
|
||
- **1,087+ roundtrip tests**, **26 integration tests**, **37 REPL tests**, **15-round HA soak** all passing
|
||
|
||
## Open threads heading into next session
|
||
|
||
1. scheduler-core is implementation-complete — next step is either PR review + merge to master, or starting scheduler-allocation/scheduler-preemption design.
|
||
2. Documentation audit (33 specs) is in progress — design.md corrections applied to ~8 HA/Raft specs; remaining ~24 specs need verification.
|
||
3. Broad documentation audit (S1278) still running — 28 docs with 126 findings, Tier 3 workflow targeting 32 closed spec design.md files.
|