2cabeeabca
Follow-up to the salvaged #35533 fix: instead of parsing 'here [N]' only in _mirror_slash_side_effects, parse it inside _compress_session_history — the single helper all three manual-compress routes converge on (session.compress RPC, command.dispatch /compress|/compact, slash-exec mirror). Every route now honors the boundary-aware forms (here [N], up to here, --keep N) with the same head/tail split + rejoin as cli.py and gateway/slash_commands.py, and keeps the choke point's existing guards (lock-free LLM call, history_version race check, deferred context-engine notification). Tests: choke-point unit tests for 'here N', degenerate-split fallback, and focus-topic passthrough, plus endpoint-level tests on each of the three routes.