Skip to content

chore(pins): tokenfuse v1.15.0, wardryx 2.0.0, vouchryx v0.3.0, costcrew v0.7.0; the gateway's wardryx key becomes pep - #133

Merged
TAIPANBOX merged 1 commit into
mainfrom
chore/pin-security-releases
Oct 18, 2026
Merged

TAIPANBOX merged 1 commit into
mainfrom
chore/pin-security-releases

Conversation

@TAIPANBOX

Copy link
Copy Markdown
Owner

Pins the four security releases of 2026-10-18 (@decided 2026-10-18, paraphrased: release the wave-0 fixes and pin them in the launchers before wave 1).

  • Image pins: tokenfuse v1.15.0, wardryx v2.0.0, vouchryx v0.3.0, costcrew v0.7.0 (compose defaults, components.json, install.sh, README, fixtures).
  • wardryx 2.0.0 refuses a viewer key on /v1/decide and /v1/filter-tools. A fresh install mints the gateway's key (shared by the gateway, the MCP broker and scopyx) as pep; on a re-run, an existing .env has exactly that one entry rewritten from viewer to pep, its secret, org and agent list unchanged, file mode kept, every other key untouched.
  • Gate scripts/wardryx-gateway-key-is-pep.sh (invariant 37) with 9 teeth cases (451 in the harness).

Breaking: an installed box that is not re-run keeps its viewer entry; with wardryx 2.0.0 the gateway and the broker then fail closed (403 from the policy plane). Migration: re-run install.sh before the new images take traffic. A new box is not affected.

The real proof is this repository's install.yml on a fresh runner with the new images.

🤖 Generated with Claude Code

…w 0.7.0; the gateway's policy-plane key is a pep

wardryx 2.0.0 refuses a viewer key on POST /v1/decide and POST /v1/filter-tools.
The gateway, the MCP broker and scopyx present the one policy-plane key on every
governed call, and the gateway and the broker fail closed, so a viewer key would
refuse every governed call once the new image took traffic.

- install.sh mints the gateway's entry as default:pep on a new box.
- A re-run leaves .env as is, so wardryx_gateway_role rewrites that one entry's
  role from viewer to pep before the first up. The secret, the org, an agent
  list, every other entry and every other line stay byte for byte, and the
  admin key is never rewritten.
- New gate scripts/wardryx-gateway-key-is-pep.sh (invariant 37), nine teeth
  cases, scenarios in features/the-gateway-key-is-a-pep.feature, in gates.yml,
  .githooks/pre-push and the CLAUDE.md gate list.
- Pins: tokenfuse and tokenfuse-control-plane v1.15.0, wardryx v2.0.0,
  vouchryx v0.3.0, costcrew v0.7.0 in compose.yaml, components.json, README and
  the teeth anchors.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@TAIPANBOX
TAIPANBOX merged commit 7407e07 into main Oct 18, 2026
7 checks passed
@TAIPANBOX
TAIPANBOX deleted the chore/pin-security-releases branch October 18, 2026 12:51
TAIPANBOX added a commit that referenced this pull request Oct 19, 2026
…to #140

Renames docs/releases/v1.1.36.md to v1.2.0.md and covers every merged PR since
v1.1.35: #131 (typed stub), #132 (client keys, broker blocks raw secrets), #133
(pins, pep key), #134 (networks), #135 (provider key, drills key), #136 (agent
tokens), #138 (keyryx custody and witness), #139 (digest pins and signatures),
#140 (the wave's pins and conflicts). #137 is open and not included.

The Upgrade first list is taken from each PR's body and from the diff against
v1.1.35: new required variable (GATEWAY_CLIENT_KEYS), new uids, new default
services (keyryx, keyryx-witness), the approval signer, the network move, the
new refusals, and the outbound HTTPS the install now needs.

Moves the stale pins in the README (console v1.1.48, tokenfuse v1.18.0). No
other file names the release version: the install.sh banner and
components.json carry none.

Gates run here: features-are-bound, no-owner-quotes, manifest-is-true.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
TAIPANBOX added a commit that referenced this pull request Oct 19, 2026
…to #140 (#141)

Renames docs/releases/v1.1.36.md to v1.2.0.md and covers every merged PR since
v1.1.35: #131 (typed stub), #132 (client keys, broker blocks raw secrets), #133
(pins, pep key), #134 (networks), #135 (provider key, drills key), #136 (agent
tokens), #138 (keyryx custody and witness), #139 (digest pins and signatures),
#140 (the wave's pins and conflicts). #137 is open and not included.

The Upgrade first list is taken from each PR's body and from the diff against
v1.1.35: new required variable (GATEWAY_CLIENT_KEYS), new uids, new default
services (keyryx, keyryx-witness), the approval signer, the network move, the
new refusals, and the outbound HTTPS the install now needs.

Moves the stale pins in the README (console v1.1.48, tokenfuse v1.18.0). No
other file names the release version: the install.sh banner and
components.json carry none.

Gates run here: features-are-bound, no-owner-quotes, manifest-is-true.

Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
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