feat(scheduler-sim-repl-verbosity): task 3.2 - implement Event Echo Gate
Implements mode-aware event echo classification, job-arrival range
compression (Req 4.5), and round-collapse flush wiring at all 3
breakpoint-match/structural-event call sites (Requirements 1.1-1.4,
3.5, 3.6). All 4 of task 3.1's tests pass; also closes bug-1609
("continue is as verbose as step").
repl_break.c grew 827->905 lines (13% over the 800-line cap). Unlike
task 2.2's Round Rollup, this logic is wiring inside pre-existing
driver-facing hooks, not a relocatable subsystem - accepted in place
per design.md's established residual-tolerance precedent.
Review independently investigated a one-off ASAN stack-use-after-return
in an unrelated test (sched_sim_record_output_test) surfaced by this
change's stack-layout perturbation: traced to the same documented
pre-existing thread-lifecycle bug class as bug-1598/bug-1632 (an
unjoined picker thread reading a stack-local sim after test-function
return), confirmed via 11/11 clean reruns - logged as bug-1763, not a
regression from this task.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YAWMhfRJFnmmnG8h97yUDd
This commit is contained in:
parent
f587a441ac
commit
cc78d09140
4 changed files with 124 additions and 18 deletions
|
|
@ -169,6 +169,8 @@ See the Architecture Pattern & Boundary Map diagram above — it is the only non
|
|||
- Routine events (echoed only in `step` mode): `RESVALS_DELTA`, `JOB_STATE_CHANGE`, `JOB_UPDATE`, `QUEUE_UPDATE`, `JOB_RUSAGE`. `JOB_STATE_CHANGE` is classified routine deliberately — the Round Rollup (Requirement 2.4) already surfaces job status transitions at round granularity, so an individual `JOB_STATE_CHANGE` line under `continue` would duplicate that information.
|
||||
- Breakpoint matching (`repl_find_event_breakpoint`, plus the equivalent checks in `xce_repl_on_begin_round`/`xce_repl_on_decision`) runs on every event regardless of echo suppression — Requirement 1.4 is unaffected by this gate. On a match, before re-entering `repl_command_loop()`, the matching hook calls the Round Rollup's flush entry point so the operator sees the collapsed range's final state before the prompt returns (Requirement 3.6).
|
||||
|
||||
**Accepted residual (post-review, task 3.2)**: implementing this gate (classifier + 3 flush call sites + `JOBS_PUSH`'s range-compression adoption) grew `repl_break.c` from 827 to 905 lines (13% over the 800-line cap; the file was already 827/3.4% over before this task, a pre-existing condition unrelated to this spec). Unlike Round Rollup's task 2.2, this logic is wiring inside `repl_break.c`'s own pre-existing driver-facing hooks (`xce_repl_on_event`/`xce_repl_on_begin_round`/`xce_repl_on_decision`/`repl_print_event_summary`) rather than a relocatable standalone subsystem — there is no cohesive block to extract into a sibling file without fragmenting those functions. Accepted in place, same reasoning as `repl.c`'s task-2.2 residual above.
|
||||
|
||||
**Dependencies**
|
||||
- Inbound: `xce_repl_on_event` — calls this gate before its existing breakpoint check (P0)
|
||||
- Outbound: `repl_print_event_summary` — invoked only when the gate allows it (P0); Round Rollup's flush entry point — called before a structural-event line or a breakpoint-triggered command-loop re-entry (P0)
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
- _Boundary: Event Echo Gate_
|
||||
- _Depends: 1.2, 2.2_
|
||||
|
||||
- [ ] 3.2 (P) Implement the mode-aware event echo, range compression adoption, and range-ending wiring
|
||||
- [x] 3.2 (P) Implement the mode-aware event echo, range compression adoption, and range-ending wiring
|
||||
- Suppress routine per-event lines during continuous execution while preserving full detail while single-stepping; keep structural-change lines and breakpoint interruption behavior unaffected by the classification
|
||||
- Render job-arrival listings using the compressed range format
|
||||
- Before printing a structural-change line, and before a breakpoint interruption is shown, end any active collapsed range first so output never interleaves out of order
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue