feat(scheduler-sim-repl-verbosity): task 6.2 - implement dynamic REPL prompt

Adds repl_build_prompt(), building the readline() prompt fresh each
loop iteration: the plain "(sim) " before any session begins, else
"(sim session=<N> t=<ISO8601-ts>) " using the bare session count (not
+1, matching info session's convention) and the existing
repl_format_ts_human(). Both of task 6.1's tests pass.

repl.c grew 808->852 lines (6.5% over the 800-line cap). Review
empirically tried extracting repl_build_prompt() into a new
repl_prompt.c: it works, but requires updating 19 sibling white-box
test files' #include lists, and even then repl.c only drops to 814
lines - still over cap. Given the function is a small 15-line
formatter and the split doesn't even achieve compliance, accepted in
place rather than forcing disproportionate churn.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YAWMhfRJFnmmnG8h97yUDd
This commit is contained in:
Rongsong Shen 2026-09-02 16:14:52 +00:00
parent 99fa45c41a
commit da6ba96eb4
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
3 changed files with 48 additions and 2 deletions

View file

@ -65,7 +65,7 @@
- _Requirements: 5.5_
- _Boundary: REPL Prompt Context_
- [ ] 6.2 (P) Implement the dynamic prompt
- [x] 6.2 (P) Implement the dynamic prompt
- Build the prompt fresh on every `repl_command_loop()` iteration from the current session count and `xce_core_now()`/`repl_format_ts_human()`, falling back to the original plain prompt before any session begins
- Observable: all tests from 6.1 pass; a live `step`/`continue` session shows the session/timestamp in the prompt starting from the first completed session, with no change to any command's own printed output
- _Requirements: 5.5_