Skip to content

KEYS tab: every key visible and editable; self-checking keys; the stage-2 router laws - #12781

Merged
gHashTag merged 1 commit into
masterfrom
feat/keys-final-x3
Oct 27, 2026
Merged

gHashTag merged 1 commit into
masterfrom
feat/keys-final-x3

Conversation

@gHashTag

Copy link
Copy Markdown
Collaborator

Closes #12753

The full keys-tab lane rebased on the moving master: the ten-provider KEYS tab (every key visible and editable, the rotation, the self-check, the ages, the next mark), the stage-2 router laws (router/sock/serve/actor), the transform unblock with the floor, the fleet fold. All test-reports green from this exact tree: keys 115, router 8, sock 3, serve 5, actor 4, fleet 5, transform 12, glass_window 92/92.

phi^2 + 1/phi^2 = 3 | TRINITY

@tri-claw

tri-claw Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Summary by t27-bees

Checked by the t27 compiler

t27c parse, parse-complete and typecheck on each changed .t27 file at c46cd73. Nothing was generated, built or run. A pass means the file is well formed, not that it is right.

  • specs/t27os/keys.t27: parses and typechecks.
  • specs/t27os/keys_fleet.t27: parses and typechecks.
  • specs/t27os/node_runner_tick_argv.t27: parses and typechecks.
  • specs/t27os/router_actor.t27: parses and typechecks.
  • specs/t27os/router_serve.t27: parses and typechecks.

Read by the model

This PR delivers the KEYS tab overhaul (all ten providers visible/editable with rotation, self-check, ages, and "next" mark) and the stage-2 router laws (actor, serve, sock). It adds keys_fleet.t27 to fold route-matrix state with key-vault state, rewires challenge validation to tri::lab::dispatch::challenge_ok, and updates seals.

Worth a look

  • specs/t27os/keys.t27:457 – KY_SUB_H increased from 20.0 to 32.0. Any layout code that multiplies by this constant (or assumes the old height) will now render rows 60% taller, potentially overflowing panels or misaligning hit-testing.
  • specs/t27os/keys_fleet.t27:143–162 – keys_state returns SC_UNPROBED if any stored key is ST_STORED (unchecked), even when other keys for the same provider are ST_INVALID. A provider with one unchecked key and seven invalid keys reports UNPROBED rather than DEAD, which may mask failed keys in the UI.
  • specs/t27os/node_runner_tick_argv.t27:27,36 – hex32 (exact 32 lowercase hex) replaced by challenge_ok from tri::lab::dispatch. If challenge_ok accepts a different format, the error message (“exactly 32 lowercase hex expected”) becomes misleading and invalid challenges may be accepted (or valid ones rejected).
  • specs/t27os/router_actor.t27:58–65 – conn_step ignores the return value of serve_answer (bytes written). The caller receives only the new state (CS_ANSWERED), so it cannot know how many bytes to transmit; the response may be truncated or include garbage.
  • specs/t27os/router_actor.t27:60–62 – When the output buffer is too small (out.len < line.len + body.len + 128), the connection transitions to CS_CLOSED without writing any error response. The client sees a silent close rather than a 5xx/4xx, making debugging harder.

Read: 8 files, +254 -37, the whole diff. Head c46cd73. Model: openai-compatible/nvidia/nemotron-3-ultra-550b-a55b. Commands: @t27-bees review | summary | help | pause | resume. Free for every repository.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-27 05:49:55 UTC

Summary

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

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=67adcf31aff7 != 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).

…er actor laws; reuse challenge_ok (Closes #12753)

keys.t27: next_mark_text, the sub-row grows to 32 for its second line.
glass_window: the serving key wears 'next', then its own last-check age
follows on the same line; the next-mark import. keys_fleet: keys_state +
row_state -- one row state from the route matrix and the key vault.
router_serve: serve_answer -- the wire composition of the walk.
router_actor: the accept loop as an actor -- bounded mailbox (8), one
pure step, faults close without killing the loop, backoff 30 after 16.
node_runner_tick_argv: digit/hexlower/hex32 were a copy of dispatch.t27's
challenge_ok -- reuse the law (the dupe ratchet is green again).
Seals: T27osKeys, T27osGlassWindow resealed against this tree.

keys 115, router 8, sock 3, serve 5, actor 4, fleet 5, transform 12,
node_runner_tick_argv 2, glass_window 92/92.
phi^2 + 1/phi^2 = 3 | TRINITY
@gHashTag
gHashTag merged commit 720a961 into master Oct 27, 2026
26 of 36 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-27 06:40:19 UTC

Summary

Status Count
Total Open PRs 13
PRs with Failing Checks 11
PRs with All Checks Green 2
READY 0
FAILING 11
PENDING 0
NO CHECKS YET 0

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

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=67adcf31aff7 != 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 added a commit that referenced this pull request Oct 27, 2026
…colours (#12808)

* spec(crons): the cards say what the workflows now do (#12776)

Closes #12775. Landed with trinity#1787 in the same hour. Admin per repo precedent.

* feat(t27os): the dsh head election law, its cron card, and the pilot node's public key (Closes #12782) (#12783)

- dsh_head_election: the hysteresis law -- the default head flips only
  after FLIP_STREAK (3) consecutive turn-sized challenger wins over a
  dead incumbent; probes are 100 tokens / 60 s (1-token probes gave
  false positives, measured 2026-10-26/27).
- mac-dsh-head-election cron card: ENABLED=false on purpose (card-first;
  the election glue lowers from the election spec and lands with it).
- .trinity/keys/2fed7065eb4439e4.pub: the mac-t27os pilot node's PUBLIC
  Ed25519 half (identity.t27 #12756 row) so its signed job receipts
  verify; the private key never enters the repository.

t27c test-report on this tree: 6+1 passes, 0 FAIL, 0 vacuous.

* feat(t27os): the LADDER -- the rung law for every LLM client on a node (Closes #12786) (#12787)

Named this night: a client points at the local ladder endpoint; the
ladder walks rungs in order (zai pool, own ollama, deepseek,
openrouter) and serves the first rung that answers a TURN-SIZED
request with 200. Fail closed at 503 naming the last refusal.
Loopback only.

Measured background: zai free pool flaps under load (2/5 and 1/5
turn-sized alive); the own ollama node went 7/7; openrouter's key
limit is not a balance (402); deepseek unfunded pays 402 per call --
the rung order encodes all of it. Live on mac-t27os: launchd
ai.t27.ladder, keys=5, a turn through the ladder served 200 in 3.2 s.

t27c test-report on this tree: 3 passes, 0 FAIL, 0 vacuous.

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980) (#12784)

* blog: the epic card reads its arrays directly -- the #5980 accessor workaround retires under the CT-VERIFIED law (Refs #12777) (#12785)

* t27b: pass_ct -- the verdict layer carries the CT-VERIFIED count (stacked on #12784) (#12788)

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980)

* t27b: the verdict layer carries ct -- pass_ct labels the folded-only pass, the corpus report counts it apart (Refs #12751, #5980)

* fix(network): restore the mac-t27os row clobbered by the KEYS-tab merge, and pin it to the canonical receipt key (Closes #12754, follows #12756) (#12790)

#12774's KEYS-tab work landed on a master without the mac-t27os row
(#12756) and silently dropped it: bindings fell back to 12, with zeros
at index 12. This re-lands the row on the current table AND upgrades it:
the receipt key is now dc1bf22de103cca3 -- created by `t27c receipt-key
init`, the canonical derivation -- replacing the hand-derived id from
the first landing. b_commit[12] is pinned to #12756's merge commit
(1a170f4...), the row-carrier per git blame. The tripwire drove
the fix: it refused the table until b_commit[12] was 40-hex.

t27c test-report: 6 passes, 0 FAIL, 0 vacuous.

* lab: the pass_ct reader -- the corpus aggregates count the compile-time-verified pass apart (Refs #12751, #5980) (#12789)

* feat(t27os): the next mark and own age on every key sub-row; the router actor laws; reuse challenge_ok (Closes #12753) (#12781)

keys.t27: next_mark_text, the sub-row grows to 32 for its second line.
glass_window: the serving key wears 'next', then its own last-check age
follows on the same line; the next-mark import. keys_fleet: keys_state +
row_state -- one row state from the route matrix and the key vault.
router_serve: serve_answer -- the wire composition of the walk.
router_actor: the accept loop as an actor -- bounded mailbox (8), one
pure step, faults close without killing the loop, backoff 30 after 16.
node_runner_tick_argv: digit/hexlower/hex32 were a copy of dispatch.t27's
challenge_ok -- reuse the law (the dupe ratchet is green again).
Seals: T27osKeys, T27osGlassWindow resealed against this tree.

keys 115, router 8, sock 3, serve 5, actor 4, fleet 5, transform 12,
node_runner_tick_argv 2, glass_window 92/92.
phi^2 + 1/phi^2 = 3 | TRINITY

* feat(t27os): the live mycelium rollout card for 27 petals and the live tap of lanes transitions and the recorded log into the work graph (Closes #12795, Closes #12796)

* feat(t27os): the plan card names the next unwired petal -- lowest wave first, ties by index (epic #12779)

* feat(t27os): the graph plane -- the tap ring folded into per-kind rows and shared-palette colours (Closes #12806)
gHashTag added a commit that referenced this pull request Oct 27, 2026
…colours (#12808)

* spec(crons): the cards say what the workflows now do (#12776)

Closes #12775. Landed with trinity#1787 in the same hour. Admin per repo precedent.

* feat(t27os): the dsh head election law, its cron card, and the pilot node's public key (Closes #12782) (#12783)

- dsh_head_election: the hysteresis law -- the default head flips only
  after FLIP_STREAK (3) consecutive turn-sized challenger wins over a
  dead incumbent; probes are 100 tokens / 60 s (1-token probes gave
  false positives, measured 2026-10-26/27).
- mac-dsh-head-election cron card: ENABLED=false on purpose (card-first;
  the election glue lowers from the election spec and lands with it).
- .trinity/keys/2fed7065eb4439e4.pub: the mac-t27os pilot node's PUBLIC
  Ed25519 half (identity.t27 #12756 row) so its signed job receipts
  verify; the private key never enters the repository.

t27c test-report on this tree: 6+1 passes, 0 FAIL, 0 vacuous.

* feat(t27os): the LADDER -- the rung law for every LLM client on a node (Closes #12786) (#12787)

Named this night: a client points at the local ladder endpoint; the
ladder walks rungs in order (zai pool, own ollama, deepseek,
openrouter) and serves the first rung that answers a TURN-SIZED
request with 200. Fail closed at 503 naming the last refusal.
Loopback only.

Measured background: zai free pool flaps under load (2/5 and 1/5
turn-sized alive); the own ollama node went 7/7; openrouter's key
limit is not a balance (402); deepseek unfunded pays 402 per call --
the rung order encodes all of it. Live on mac-t27os: launchd
ai.t27.ladder, keys=5, a turn through the ladder served 200 in 3.2 s.

t27c test-report on this tree: 3 passes, 0 FAIL, 0 vacuous.

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980) (#12784)

* blog: the epic card reads its arrays directly -- the #5980 accessor workaround retires under the CT-VERIFIED law (Refs #12777) (#12785)

* t27b: pass_ct -- the verdict layer carries the CT-VERIFIED count (stacked on #12784) (#12788)

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980)

* t27b: the verdict layer carries ct -- pass_ct labels the folded-only pass, the corpus report counts it apart (Refs #12751, #5980)

* fix(network): restore the mac-t27os row clobbered by the KEYS-tab merge, and pin it to the canonical receipt key (Closes #12754, follows #12756) (#12790)

(#12756) and silently dropped it: bindings fell back to 12, with zeros
at index 12. This re-lands the row on the current table AND upgrades it:
the receipt key is now dc1bf22de103cca3 -- created by `t27c receipt-key
init`, the canonical derivation -- replacing the hand-derived id from
the first landing. b_commit[12] is pinned to #12756's merge commit
(1a170f4...), the row-carrier per git blame. The tripwire drove
the fix: it refused the table until b_commit[12] was 40-hex.

t27c test-report: 6 passes, 0 FAIL, 0 vacuous.

* lab: the pass_ct reader -- the corpus aggregates count the compile-time-verified pass apart (Refs #12751, #5980) (#12789)

* feat(t27os): the next mark and own age on every key sub-row; the router actor laws; reuse challenge_ok (Closes #12753) (#12781)

keys.t27: next_mark_text, the sub-row grows to 32 for its second line.
glass_window: the serving key wears 'next', then its own last-check age
follows on the same line; the next-mark import. keys_fleet: keys_state +
row_state -- one row state from the route matrix and the key vault.
router_serve: serve_answer -- the wire composition of the walk.
router_actor: the accept loop as an actor -- bounded mailbox (8), one
pure step, faults close without killing the loop, backoff 30 after 16.
node_runner_tick_argv: digit/hexlower/hex32 were a copy of dispatch.t27's
challenge_ok -- reuse the law (the dupe ratchet is green again).
Seals: T27osKeys, T27osGlassWindow resealed against this tree.

keys 115, router 8, sock 3, serve 5, actor 4, fleet 5, transform 12,
node_runner_tick_argv 2, glass_window 92/92.
phi^2 + 1/phi^2 = 3 | TRINITY

* feat(t27os): the live mycelium rollout card for 27 petals and the live tap of lanes transitions and the recorded log into the work graph (Closes #12795, Closes #12796)

* feat(t27os): the plan card names the next unwired petal -- lowest wave first, ties by index (epic #12779)

* feat(t27os): the graph plane -- the tap ring folded into per-kind rows and shared-palette colours (Closes #12806)
gHashTag added a commit that referenced this pull request Oct 27, 2026
…h, live, on black (#12791)

* feat(t27os): the LIVE MYCELIUM band on the Queen screen -- the swarm's work graph, live, on black (Closes #12780)

* t27os: the graph plane -- the tap ring folded into per-kind rows and colours (#12808)

* spec(crons): the cards say what the workflows now do (#12776)

Closes #12775. Landed with trinity#1787 in the same hour. Admin per repo precedent.

* feat(t27os): the dsh head election law, its cron card, and the pilot node's public key (Closes #12782) (#12783)

- dsh_head_election: the hysteresis law -- the default head flips only
  after FLIP_STREAK (3) consecutive turn-sized challenger wins over a
  dead incumbent; probes are 100 tokens / 60 s (1-token probes gave
  false positives, measured 2026-10-26/27).
- mac-dsh-head-election cron card: ENABLED=false on purpose (card-first;
  the election glue lowers from the election spec and lands with it).
- .trinity/keys/2fed7065eb4439e4.pub: the mac-t27os pilot node's PUBLIC
  Ed25519 half (identity.t27 #12756 row) so its signed job receipts
  verify; the private key never enters the repository.

t27c test-report on this tree: 6+1 passes, 0 FAIL, 0 vacuous.

* feat(t27os): the LADDER -- the rung law for every LLM client on a node (Closes #12786) (#12787)

Named this night: a client points at the local ladder endpoint; the
ladder walks rungs in order (zai pool, own ollama, deepseek,
openrouter) and serves the first rung that answers a TURN-SIZED
request with 200. Fail closed at 503 naming the last refusal.
Loopback only.

Measured background: zai free pool flaps under load (2/5 and 1/5
turn-sized alive); the own ollama node went 7/7; openrouter's key
limit is not a balance (402); deepseek unfunded pays 402 per call --
the rung order encodes all of it. Live on mac-t27os: launchd
ai.t27.ladder, keys=5, a turn through the ladder served 200 in 3.2 s.

t27c test-report on this tree: 3 passes, 0 FAIL, 0 vacuous.

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980) (#12784)

* blog: the epic card reads its arrays directly -- the #5980 accessor workaround retires under the CT-VERIFIED law (Refs #12777) (#12785)

* t27b: pass_ct -- the verdict layer carries the CT-VERIFIED count (stacked on #12784) (#12788)

* t27b: the interpreter counts folded checks as ct_verified -- the CT-VERIFIED/VACUOUS split reaches the reference path (Refs #12751, #5980)

* t27b: the verdict layer carries ct -- pass_ct labels the folded-only pass, the corpus report counts it apart (Refs #12751, #5980)

* fix(network): restore the mac-t27os row clobbered by the KEYS-tab merge, and pin it to the canonical receipt key (Closes #12754, follows #12756) (#12790)

(#12756) and silently dropped it: bindings fell back to 12, with zeros
at index 12. This re-lands the row on the current table AND upgrades it:
the receipt key is now dc1bf22de103cca3 -- created by `t27c receipt-key
init`, the canonical derivation -- replacing the hand-derived id from
the first landing. b_commit[12] is pinned to #12756's merge commit
(1a170f4...), the row-carrier per git blame. The tripwire drove
the fix: it refused the table until b_commit[12] was 40-hex.

t27c test-report: 6 passes, 0 FAIL, 0 vacuous.

* lab: the pass_ct reader -- the corpus aggregates count the compile-time-verified pass apart (Refs #12751, #5980) (#12789)

* feat(t27os): the next mark and own age on every key sub-row; the router actor laws; reuse challenge_ok (Closes #12753) (#12781)

keys.t27: next_mark_text, the sub-row grows to 32 for its second line.
glass_window: the serving key wears 'next', then its own last-check age
follows on the same line; the next-mark import. keys_fleet: keys_state +
row_state -- one row state from the route matrix and the key vault.
router_serve: serve_answer -- the wire composition of the walk.
router_actor: the accept loop as an actor -- bounded mailbox (8), one
pure step, faults close without killing the loop, backoff 30 after 16.
node_runner_tick_argv: digit/hexlower/hex32 were a copy of dispatch.t27's
challenge_ok -- reuse the law (the dupe ratchet is green again).
Seals: T27osKeys, T27osGlassWindow resealed against this tree.

keys 115, router 8, sock 3, serve 5, actor 4, fleet 5, transform 12,
node_runner_tick_argv 2, glass_window 92/92.
phi^2 + 1/phi^2 = 3 | TRINITY

* feat(t27os): the live mycelium rollout card for 27 petals and the live tap of lanes transitions and the recorded log into the work graph (Closes #12795, Closes #12796)

* feat(t27os): the plan card names the next unwired petal -- lowest wave first, ties by index (epic #12779)

* feat(t27os): the graph plane -- the tap ring folded into per-kind rows and shared-palette colours (Closes #12806)
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.

KEYS tab: every key visible and editable, rotation on the row, self-checking keys, stage-2 router laws

1 participant