repl_print_event_summary() (interactive REPL event echo) now prefixes each echoed event with "[sim] t=<ns> (<human>) session=<N>", using the same xce_core_now()/repl_format_ts_human()/session_count sources "info session" already reports. Uses session_count+1, not the raw count: events stream in and are echoed individually before the ReplaySession/ begin_round message that increments session_count is even read (file order is event, event, ..., ReplaySession), so an echoed event always belongs to the session about to begin. Add sim_prescan_session_count() (sim.c): scans the replay file from the current position via shape-only classification (mirroring sim_loop.c's own ReplayEvent/ReplaySession/SnapshotEntry dispatch), counts ReplaySession messages, then rewinds via fseek back to the exact ftell() position -- same rewind technique sim_locate_and_load_snapshot() already uses. Wired into sched_sim_driver_start(): prints "[sim] replay file contains N sessions" once at load, non-fatal on scan failure. Add test_replay_load_reports_total_session_count; extend test_step_echoes_events_before_session_decisions with t=/session=1 assertions. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| hooks | ||
| _scan-state.json | ||
| anatomy-index.json | ||
| anatomy.md | ||
| buglog.json | ||
| cerebrum.md | ||
| config.json | ||
| cron-manifest.json | ||
| cron-state.json | ||
| daemon.log | ||
| dashboard-token | ||
| designqc-report.json | ||
| identity.md | ||
| memory.md | ||
| OPENWOLF.md | ||
| reframe-frameworks.md | ||
| suggestions.json | ||
| token-ledger.json | ||