Files
ruflo/v3/docs
ruv 6814b513de docs(adr): ADR-387 ChatGPT Federation connector, ADR-388 OAuth on x.ruv.io
ADR-387 records why a relaying design is impossible (buzz-relay refuses any
EVENT whose pubkey differs from the NIP-42 identity), where the signing key
lives and why it is in ruv-dev rather than cognitum, and the three custody
omissions that are each enforced by a test.

ADR-388 records OAuth as an ADDITIVE credential on the federation's front door —
reads stay open and adminToken keeps working, because closing either would
strand every agent already connected. It also records why swarm:* rather than
federation:* (audience pinning is the control; scope names are a UX contract,
correcting an overstatement in console migration 0029), and why the resource
accepts dcr- audiences.

Both ADRs carry a section on what the work cost: bugs that read as working code
— a 301-second hanging GET, a log that could not tell 'no credential' from
'credential refused', a required adminToken that made OAuth writes impossible,
a read-back verifier using an unadmitted key, and a client-existence probe that
returned the same answer whether or not the client existed.

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_013u4pmL9ZUAXb6usVQgNo67
2026-09-11 15:02:14 -04:00
..