Skip to content

fix(runtime): preserve retries across temporary admission holds - #9

Merged
itstimwhite merged 2 commits into
mainfrom
codex/typed-machine-deferral
Sep 10, 2026
Merged

itstimwhite merged 2 commits into
mainfrom
codex/typed-machine-deferral

Conversation

@itstimwhite

Copy link
Copy Markdown

Context

Temporary inventory and admission refusals were charged as execution failures. A valid capacity hold also erased prior failures, allowing recovered work to exceed its retry budget.

TL;DR

Defer exact temporary launch refusals while preserving execution budgets and fresh admission checks.

Summary

  • Recognize issue-bound inventory and admission receipts during initialize and before_run, with distinct status evidence.
  • Reject ambiguous or later-phase receipts so a prompt already sent cannot authorize duplicate execution.
  • Release held claims, preserve consumed retry attempts, and recheck eligibility through bounded cooldowns.
  • Keep queued retries out of candidate dispatch; ordinary failures and tracker rate limits retain their existing gates.

Alternatives

  • Extend the maintained cooldown and reconciliation path; a new lifecycle framework is unnecessary.
  • Treating arbitrary exit75 as retryable would hide real failures and defeat the execution budget.

Test Plan

  • make -C elixir all: 348 tests, zero failures, six existing live-test skips; format, specs, Credo and Dialyzer pass.
  • TemporaryAdmission coverage is 100%; existing excluded runtime modules are not included in that percentage.
  • Actual OTP budget regression: failed turn, retry1, valid hold, resume at attempt1, then failure exhausts the budget.
  • Actual launcher and before_run tests cover ambiguity, cancellation, tracker429 and fresh eligibility on recovery.
  • Actual patched Jovie launcher reaches AppServer's existing provider receipt parser with honest unknown timing.

@itstimwhite
itstimwhite marked this pull request as ready for review September 10, 2026 00:21
@itstimwhite
itstimwhite merged commit dda8778 into main Sep 10, 2026
3 checks passed
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