- The node's signed offer now defines which request parameters it pins. Clients enforce one rule: a pin may only switch an extra off.
- Fairer billing: idle connections can't block paying clients, a long response gets time to finish, only attested usage is charged, the node's own provider-key errors cost only the session fee, prompt-cache writes are billed correctly, and a failed database write is retried instead of charging the full reservation.
- Hardening: the proofs also bind the record's content type, proof connections need a per-session token, clients refuse unsafe offers and limit how much the node can make them buffer, and the browser pre-warms only after your first message.
- Sidecar: session files are deleted after 24 h, and the container is built from digest-pinned base images with no package installs.
- Upstream: the v2 PRs are rebased, plus six separate fixes for every Routstr node: admin login, revoking credentials, startup reservations, log redaction, no caching of API keys, private logs.
- Paper: every figure is backed by archived receipts and runs, or marked as unarchived.
Your prompts and the model's answers stay private from the node, and you never get its API key.
https://jooray.github.io/routstr-confidential-pwa/
