fix: bound durable context recovery and fence uncertain maintenance #348

Merged
karsten merged 1 commit from fix/mandatory-compaction-recovery-696297dc into main 2026-11-11 19:17:00 +00:00
Owner

Summary

Fix repeated mandatory context-maintenance failures (incident 696297dc-69d6-45fc-b2d0-3bad38682874) without assuming the original exception or that rejected compaction had no effects.

  • Persist operation identity, monotonic observed-failure count and fixed retry pacing separately. Bound automatic idempotent recovery at seven failures; preserve intent and a durable working-prompt fence across arrivals/restart.
  • Block uncertain native compact/summary/rotation effects instead of blindly replaying them. Migrate legacy counters/deadlines without a fresh budget. Explicit recovery uses existing versioned host admission; cancellation does not masquerade as failure or rollback.
  • Route structured maintenance waiting/blocked status through host pump/task recovery and durable outbox. Internal worker/API/subagent channels must not mistake notices for successful results; terminal dispatcher maintenance is not an automatic worker-retry trigger.
  • Deduplicate notices; retain bounded redacted diagnostic correlation, not raw exceptions/prompts. Bind queued prerequisites to durable applied receipts. No general task continuation budget reduction.

Validation

  • npm run typecheck: passed.
  • Build and complete npm test: exit 0, 1903 tests, 1902 passed, 0 failed, 1 external integration test skipped.
  • Targeted context/backoff/terminal/migration/authority/cancellation/redaction/native-seed/delivery-routing suite: 89/89 passed.
  • git diff --check and manual sensitive-data/correctness review including both new test files: passed.

Original unrelated dirty checkout preserved; implementation in an isolated worktree from current main. No deployment or service restart requested or performed.

## Summary Fix repeated mandatory context-maintenance failures (incident 696297dc-69d6-45fc-b2d0-3bad38682874) without assuming the original exception or that rejected compaction had no effects. - Persist operation identity, monotonic observed-failure count and fixed retry pacing separately. Bound automatic idempotent recovery at seven failures; preserve intent and a durable working-prompt fence across arrivals/restart. - Block uncertain native compact/summary/rotation effects instead of blindly replaying them. Migrate legacy counters/deadlines without a fresh budget. Explicit recovery uses existing versioned host admission; cancellation does not masquerade as failure or rollback. - Route structured maintenance waiting/blocked status through host pump/task recovery and durable outbox. Internal worker/API/subagent channels must not mistake notices for successful results; terminal dispatcher maintenance is not an automatic worker-retry trigger. - Deduplicate notices; retain bounded redacted diagnostic correlation, not raw exceptions/prompts. Bind queued prerequisites to durable applied receipts. No general task continuation budget reduction. ## Validation - `npm run typecheck`: passed. - Build and complete `npm test`: exit 0, 1903 tests, 1902 passed, 0 failed, 1 external integration test skipped. - Targeted context/backoff/terminal/migration/authority/cancellation/redaction/native-seed/delivery-routing suite: 89/89 passed. - `git diff --check` and manual sensitive-data/correctness review including both new test files: passed. Original unrelated dirty checkout preserved; implementation in an isolated worktree from current main. No deployment or service restart requested or performed.
fix: bound durable context recovery and fence uncertain maintenance
All checks were successful
decision-interface-ci / full-validation (pull_request) Successful in 1m54s
e0ecb96aed
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
harness/core!348
No description provided.