Skip to content

spec(queen): dispatch_exit -- a provider refusal never charges the issue (Closes #10008) - #10011

Merged
gHashTag merged 1 commit into
masterfrom
spec/dispatch-exit-provider-10008
Oct 17, 2026
Merged

gHashTag merged 1 commit into
masterfrom
spec/dispatch-exit-provider-10008

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #10008. Part of #9976. Related: #9993, #7851.

Why

The bee dispatcher as keyed actors (gHashTag/trios queen-bee-actors.ts) asks counts_against_issue whether an end spends a counted run of the issue.

This is the step that comes before switching trios to TRIOS_QUEEN_DISPATCH=actors.

The change

  • counts_against_issue(DX_PROVIDER_ERROR) is now false.
  • Unchanged:
    • A bad request (HC_4XX) still gives up at once.
    • A refusal that keeps repeating still ends at STREAK_LIMIT (6).
  • New test a_provider_refusal_never_charges_the_issue. It also pins that a timeout and an unknown end remain counted runs.

Evidence (Railway lab, master de2cff8)

  • t27c test-report: 11 tests, 0 FAIL, 0 vacuous, 4 invariants. The seal is regenerated.
  • tri mutate spec: 81 of 84 mutants killed. The 3 survivors are equivalent mutants in the untouched restart_wait_seconds clamps (lines 192, 198 and 202). At the boundary both branches return the same value.
  • wasm, built with the trios specs/PIN recipe:
    • The old card rebuilds to the pinned 31c0e524....
    • The new card gives b990a601... on two builds.

Next

The trios vendoring PR re-vendors the .t27, the .wasm and the specs/PIN lines. It changes no TypeScript.

🤖 Generated with Claude Code

…sue (Closes #10008)

The bee actors in gHashTag/trios ask counts_against_issue whether an end
spends a counted run. A provider error did, so three quota refusals in a row
gave the issue up, while the next dispatch would take another key.
key_failover.t27 charges_issue (#9993) charges only a bad request; the two
cards now agree.

A bad request (HC_4XX) still gives up at once, and a refusal that keeps
repeating still ends at STREAK_LIMIT.

Railway lab: test-report 11/11, 0 vacuous, 4 invariants; tri mutate spec
81/84 killed, 3 equivalent survivors in the untouched restart_wait_seconds
clamps. The wasm recipe rebuilds the pinned 31c0e524 from the old card; the
new card gives b990a601 on two builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) October 17, 2026 16:13
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-17 16:13:09 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 49
PRs with All Checks Green 1
READY 0
FAILING 49
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 49 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=e769ef021713 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

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.

dispatch_exit: a provider refusal never charges the issue (agree with key_failover charges_issue)

1 participant