Skip to content

T27 OS keys: an OpenRouter free tier after the z.ai flash tier, paid last; the KEYS-tab request line follows in #11289 - #11290

Merged
gHashTag merged 2 commits into
masterfrom
lane/openrouter-11285
Oct 20, 2026
Merged

gHashTag merged 2 commits into
masterfrom
lane/openrouter-11285

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #11285

T27 OS keys: an OpenRouter free tier after the z.ai flash tier, paid last; the KEYS-tab request line follows in #11289

Gates run on the merged tree (t27c from master): 3 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=[91] fail=[0] vacuous=[0]
TEST specs/t27os/pty_logic.t27 tests=[48] fail=[0] vacuous=[0]
TEST specs/t27os/session_store.t27 tests=[16] fail=[0] vacuous=[0]
SEAL specs/t27os/keys.t27 :: all hashes MATCH
SEAL specs/t27os/pty_logic.t27 :: all hashes MATCH
SEAL specs/t27os/session_store.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:25
…s, then the paid profiles, and a missing OpenRouter key skips its tier (Refs #11285)

keys.t27: PROFILE_TIER / profile_rank put the chain in tier order (CT_ZAI_FREE,
CT_OR_FREE, CT_PAID); next_profile walks by rank, so a pane whose z.ai keys all
rest moves to OpenRouter when a key is stored and to the paid profile (or the
give-up line) when it is not. The openrouter profile now names three free ids
(public list 2026-10-20, not yet measured on a key: none is stored) at model
steps 0..2 (MODELS_DEFAULT/SECOND/THIRD, MODEL_STEPS 3) through the same
Anthropic-protocol variables as before; its paid ~anthropic tier names are gone.
needs_key_request(provider, stored_count) and KEY_REQUEST_OPENROUTER are the
predicate and the line for the KEYS tab (FR-003; the tab itself is not here).
MAX_FAILOVERS 24 -> 48 for two multi-model free tiers.

session_store.t27: model_ok accepts "/" and ":" so an OpenRouter id is not
dropped from the --model flag (quoted in single quotes, so plain bytes).

pty_logic.t27: pane-level tests of the whole walk (z.ai keys and models, then
OpenRouter's three ids, then the paid profile, then the give-up), of the skip
with no OpenRouter key, and of the command line and environment of an
OpenRouter pane.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…last; the KEYS-tab request line follows in #11289 (Closes #11285)

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:29
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-20 09:29:16 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).

@gHashTag
gHashTag merged commit f53d267 into master Oct 20, 2026
32 of 35 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.

T27 OS keys: an OpenRouter free tier after the z.ai flash tier, and the KEYS tab asks for the OpenRouter key

2 participants