feat(scheduler-sim-decision-trace): emit traces inline and apply settings at session boundaries

Task 4.6: session begin makes the next settings current, stamps the
session number and publishes them to the core; session end withdraws and
releases them. Emission marks the round traced, flushes the collapsed
range and reprints the suppressed echo in continue mode, renders to the
console and the trace file with identical bytes, and stores the record.
sim_print_decision is exported unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-10-08 14:42:27 +00:00
parent 27cad0b0b7
commit 4df29606f6
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
9 changed files with 941 additions and 4 deletions

View file

@ -317,4 +317,13 @@ extern void sched_sim_driver_fini(xce_sched_sim_driver_t* sim);
extern int sim_prescan_next_nonempty_session(xce_sched_sim_driver_t* sim,
uint64_t* out_sessions_ahead);
/*
* sim_print_decision (sim_loop.c) - the per-decision echo line,
* "[sim] DISPATCH|PEND|PREEMPT jobid=<id>", to stdout. Exported so the
* REPL's continue-mode trace emission (repl_trace_emit.c, task 4.6 of the
* scheduler-sim-decision-trace spec, Req 7.3) prints exactly the echo line
* the print gate suppressed. Other ops print nothing.
*/
extern void sim_print_decision(const xce_decision_t* d);
#endif