Skip to content

P448: generation-owned failure evidence and report-only blocked work - #2564

Merged
trissim merged 2 commits into
mainfrom
fix/p448-generation-evidence
Oct 21, 2026
Merged

trissim merged 2 commits into
mainfrom
fix/p448-generation-evidence

Conversation

@trissim

@trissim trissim commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

P448 follow-up: generation-owned evidence and stop without reissuing orders

Follow-up to #2529. The generation owns its failed attempt identity and now reads its evidence through that identity. Deleted GoalAttemptStore.failure_evidence and migrated all production/test callers; no alias. The read is fenced by attempt, goal and generation. Black-normalized GoalAttemptStore: main before P448 498 lines; merged P448 508; this change 498. GodClassExcess returns 8 -> 0 without changing its threshold.

The compensating order-reissue loop survived in BlockedExecution.enforce_unit_block. Deleted it, its GoalCannotRun forwarding action and the unused captured goal. Blocked and unresolved work are reported, never automatically resumed/reissued. Four tests of that deleted compensation become one report-only preservation case. Added a real native worker/group SIGTERM check against held orders and an UNKNOWN input: stop mid-provider request, assert unchanged Active goal, runnable execution, unchanged orders/input.

Also removed the duplicate open_stream call from the real-turn fixture; OwnedTurn.acquire owns that lifetime.

Evidence

Before inventory: refactor-audit Package covers HEAD/main declarations, inheritance, imports, checks and consumers; mi-owner-ast.log. Required method deletion searched across src/tests; caller migration complete. Patterns: IMPL-12 competing recovery, IDEN-5 restated failure state. Dynamic Python resolution remains outside AST proof.

Verification

104 focused Core cases collected, running under timeout 300 / -n 0 / faulthandler_timeout=60. Final results pending; no installed acceptance claimed. No local ratchets or full suite.

Assumed:

  • Operator stop wins backend failure through the existing OwnerStop.
  • Reporting a failure grants no Retry/order-reissue authority and never replays UNKNOWN.
  • The install owner still owes installation; actual box stop/order counts will be reported after it.

@trissim
trissim marked this pull request as ready for review October 21, 2026 22:04
Copilot AI balanced review requested due to automatic review settings October 21, 2026 22:04
@trissim
trissim merged commit e85eca4 into main Oct 21, 2026
6 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

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.

2 participants