chore(spec): scheduler-sim-discrete-clock implementation complete (validation GO); unblock libxce-alloc-preason-equality 5.3

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-09-29 05:44:15 +00:00
parent d9bc36cde3
commit 9fae9ca22a
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
2 changed files with 3 additions and 4 deletions

View file

@ -84,12 +84,11 @@ Test-first throughout (red → green → refactor). Every sub-task leaves the bu
- Done when the test passes and the live replay reports zero mismatches; then mark bug-1881 fixed through the buglog skill with the fix commit.
- _Requirements: 4.3, 5.4_
- _Depends: spec scheduler-sim-discrete-clock_
- _Blocked: spec scheduler-sim-discrete-clock is at requirements-generated (not approved or implemented); the simulator's own session-begin clock read (sim_loop.c) still drifts at --sim-speed ≥ 1, so a replayed `from` cannot yet be shown equal at default settings_
## Implementation Notes
- `xce-build.sh` resolves a relative build dir under `src/`: `bash src/tools/xce-build.sh lib asan xce.build.alloceq` builds into `src/xce.build.alloceq`, so iterate with `meson test -C src/xce.build.alloceq`.
- `xce-build.sh lib` runs only the `libxce test` binary; run `meson test -C src/xce.build.alloceq "libxce alloc OOM test"` (or plain `meson test`) for the allocation OOM binary, which also wraps `vasprintf`/`__vasprintf_chk` since 2.1.
- Simulation mode (`sim_loop.c`) still takes its own session-begin clock reading before `xce_core_begin_session()`; by design that is left to spec scheduler-sim-discrete-clock (3.1 fixed only the normal-mode recorder).
- Simulation mode (`sim_loop.c`) still takes its own session-begin clock reading before `xce_core_begin_session()`; by design that is left to spec scheduler-sim-discrete-clock (3.1 fixed only the normal-mode recorder). UPDATE 2026-09-29: spec scheduler-sim-discrete-clock is implemented (commits 4f653d8f..d9bc36cd; validation GO): the simulator clock is pinned, and a replayed `session_start` equals the recorded `beginRound` exactly at default settings, so 5.3 is unblocked.
- 4.2 left the `from`-excluded comments at `test_sim_verify.c` ~639-681 for 4.3, which inverts the test they document.
- `sim_verify.c` builds descriptions with `vsnprintf` + `malloc`, not `vasprintf`: about 25 scheduler tests `#include "../src/sim_verify.c"` after `<stdio.h>` without `_GNU_SOURCE`. Same ownership contract as libxce.
- 5.2: `xce-build.sh all` stops at the xceadmin live-HA e2e test (`test_live_config_push_against_primary_reaches_success_path`, versionTag 0); it uses controller binaries from the shared default build dirs, not this build. The spec needs only lib/scheduler/controller: built with `--incremental` per component, then `meson test --no-suite xceadmin` gave 116/116, 0 Unity :FAIL lines, 0 sanitizer reports.

View file

@ -1,9 +1,9 @@
{
"feature_name": "scheduler-sim-discrete-clock",
"created_at": "2026-09-28T08:46:06Z",
"updated_at": "2026-09-29T04:11:51Z",
"updated_at": "2026-09-29T05:44:15Z",
"language": "en",
"phase": "tasks-generated",
"phase": "implementation-complete",
"approvals": {
"requirements": {
"generated": true,