Skip to content

fix(senpi): harden compaction recovery and Goal migration - #552

Open
realsigridjin wants to merge 4 commits into
code-yeongyu:mainfrom
realsigridjin:fix/compaction-queue-recovery
Open

fix(senpi): harden compaction recovery and Goal migration#552
realsigridjin wants to merge 4 commits into
code-yeongyu:mainfrom
realsigridjin:fix/compaction-queue-recovery

Conversation

@realsigridjin

@realsigridjin realsigridjin commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add map-less GPT-5.6 Sol max reasoning support across capability detection, Shift+Tab cycling, and OpenAI-compatible payload serialization
  • recover terminal required-compaction watchdog/truncated-stream failures with a deterministic durable checkpoint while preserving retained-suffix progress and global queued-input chronology
  • enforce exact per-turn caps and cooldown admission semantics without weakening hard-limit or generic-failure fail-closed behavior
  • migrate legacy budget-limited pi-goal state into Senpi's budget-free builtin Goal store

Verification

  • npm run check
  • coding-agent affected suite: 13 files / 164 tests passed after rebasing onto current main
  • AI reasoning suite: 2 files / 60 tests passed after rebasing onto current main
  • final review lanes: code quality, goal verification, hands-on QA, security, context/history, and independent gate all PASS/APPROVE
  • installed runtime QA: Senpi 2026.7.30, xhigh/max exposed, queue metadata compatibility preserved

Compatibility

  • existing Ctrl+Tab behavior is unchanged; only the supported level sequence expands for eligible map-less Sol models
  • manual compaction, generic cancellation, and genuine oversize remain fail-closed
  • clearAllQueues() keeps the legacy enumerable { steering, followUp } shape while exposing ordered recovery metadata non-enumerably

Related work


Summary by cubic

Hardens compaction recovery with a deterministic checkpoint and preserves queued-input order across UI and native queues; also exposes max for map-less gpt-5.6-sol and migrates legacy budget-limited goals to Senpi’s goal store.

  • New Features

    • Expose max for map-less gpt-5.6-sol and send reasoning.effort: "max" via openai-responses, azure-openai-responses, openai-codex-responses, and openai-completions. Shift+Tab now cycles xhigh → max. Explicit maps and null vetoes stay authoritative; non‑Sol variants are unchanged.
    • Auto-migrate legacy pi-goal files into the built-in Goal store; convert budgetLimited to active and drop tokenBudget with no user action.
  • Bug Fixes

    • Required compaction recovers from summarization timeouts and upstream_stream_truncated by appending a deterministic checkpoint compaction and rebuilding context under limits; manual and non-target failures stay fail‑closed.
    • Pre-prompt compaction failures now emit willRetry: false so queued input returns to the editor instead of being re-queued against an oversized context.
    • Admission honors the compaction circuit-breaker cooldown: if the breaker cancels compaction, the turn proceeds; other cancellations still fail‑closed.
    • Preserve global enqueue order across steering/follow-up and compaction-owned input; clearQueue() keeps the legacy { steering, followUp } shape and adds a non‑enumerable ordered list for recovery and delivery.
    • Enforce exact per‑turn caps and breaker semantics: ineffective compactions count toward the cap, and blocking summaries aren’t invoked while the breaker is open.

Written for commit 503174f. Summary will update on new commits.

Review in cubic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant