Conversation
Route mandatory pre-prompt failures through deterministic recovery and advance past unsafe split-turn payloads to the earliest replay-safe suffix. Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
|
Thanks for this — I reproduced the same class of user-visible deadlock independently while investigating a field report (a summarization stream that ran past 690 s and then left every following prompt failing with the session's internal retry-suppression marker). Your diff is on current One review item before merge. Adding What this PR intentionally does not cover — tracked separately in #1741 so it does not grow your diff:
#646: its base predates the |
Synchronize the review branch with current Senpi main before applying the requested hard-cap gate. Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
Preserve full context when proactive below-cap pre-prompt compaction fails while retaining deterministic recovery at the effective hard limit. Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
|
Addressed in I adopted the hard-cap gate rather than making every
The regression pins the effective-reserve boundary on the 10k test window: Updated verification:
Thanks for calling out the proactive-context-loss case. |
Summary
pre_promptcompaction failures through deterministic recoverybranchandextensioncompactionReproduction
A resumed Astra session on
omo 5.0.0-0.beta.63/ Senpi2026.9.15-2reached mandatory pre-prompt compaction. Summary generation emitted no provider events for 300,000 ms, then compaction was rejected with the context unchanged. The persisted branch also contained an unsafe tool result after the prepared boundary and no later user boundary, so the existing deterministic fallback could not select a suffix.Read-only replay of that 32 MB branch after this patch selects
later-safe-boundaryat 185,265 estimated tokens under a 576,000-token budget while preserving atomic tool pairs.Tests
NODE_OPTIONS=--max-old-space-size=8192 bun run checkNODE_OPTIONS=--max-old-space-size=8192 bun run buildThe broad mock-loop self-test currently reports 30/48 because of pre-existing protocol-leak expectation failures unrelated to this compaction diff.
Related work
Summary by cubic
Fixes mandatory
pre_promptcompaction stalling when provider summarization fails. At the effective hard cap, pre-prompt failures now recover deterministically instead of deadlocking; below-cap proactive attempts stay fail-closed and preserve the full context. When earlier boundaries retain unsafe split-turn content, recovery advances to the earliest suffix that passes replay-safety, atomic tool-chain, and budget checks. Optionalbranchandextensioncompaction remain fail-closed.Written for commit 29f8d9e. Summary will update on new commits.