Skip to content

T27 OS: a restored pane starts on the free flash model with the rotation's key and fails over on an empty key - #11287

Merged
gHashTag merged 2 commits into
masterfrom
lane/restore-rekey-11284
Oct 20, 2026
Merged

gHashTag merged 2 commits into
masterfrom
lane/restore-rekey-11284

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #11284

T27 OS: a restored pane starts on the free flash model with the rotation's key and fails over on an empty key

Gates run on the merged tree (t27c from master): 2 spec(s) with tests clean and vacuous passes 0, seal --verify MATCH, tri types ratchet CLEAN, dupe_scan failure set a subset of master's (inherited red).

TEST specs/t27os/keys.t27 tests=[86] fail=[0] vacuous=[0]
TEST specs/t27os/pty_logic.t27 tests=[45] fail=[0] vacuous=[0]
SEAL specs/t27os/keys.t27 :: all hashes MATCH
SEAL specs/t27os/pty_logic.t27 :: all hashes MATCH
TYPES RATCHET: CLEAN
DUPE failing=4 extra-vs-master=[]

🤖 Generated with Claude Code

claude and others added 2 commits October 20, 2026 16:04
…e rotation's key and fails over on an empty key (Closes #11284)

The record of a restored pane named glm-5.2 and the command line passed it as --model, which beat the profile's model variable: every z.ai key answers 1113 for it, so no key swap could help. Three decisions were wrong for any pane and showed on the restored one: the model came from the record (keys.t27 model_for_profile, pty_logic launch_model: the profile's tier map, never the saved id), error_row ignored Claude Code's retry rows although a retry cannot cure an empty account (z.ai answers 429 code 1113, ten retries, minutes), and fo_action left the provider on 1113 and 401/403 instead of trying the next key, which with only z.ai keys stored ended in a give-up.

Default z.ai model is now glm-4.5-flash (measured 2026-10-20T08:49Z, 200 on 7 of 7 keys), second model of the tier glm-4.7-flash (200 on 2 of 7, 529 on 5). A pane rotates over every key, then takes the next model of the tier (FA_RESPAWN_MODEL, per-pane step in G_MSTEP, rests lifted for the new model), then the next profile, then gives up once (giveup_quiet_ms: as long as the key rests). MAX_FAILOVERS 12 -> 24 to cover keys times models.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ion's key and fails over on an empty key (Closes #11284)

Merge of master plus sealing, gates run on the merged tree with t27c from master: tests clean with vacuous passes 0, seal --verify MATCH, tri types ratchet CLEAN, dupe_scan failure set a subset of master's.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) October 20, 2026 09:05
@gHashTag
gHashTag merged commit 33a45f5 into master Oct 20, 2026
31 of 34 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-20 09:10:26 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 47
PRs with All Checks Green 3
READY 2
FAILING 47
PENDING 0
NO CHECKS YET 0

These columns do not partition: 2 + 47 + 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)=5aec047d42ec != 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.

T27 OS: a restored pane reuses its record model and dead key, and no failover reaches it

2 participants