| … | … | @@ -68,7 +68,7 @@ Refuses to start if another daemon already holds the socket. |
| 68 | 68 | | | | |
| 69 | 69 | |---|---| |
| 70 | 70 | | `profile` | display name and picture | |
| 71 | | | `set-profile [--name X] [--bio "…"] [--avatar <file>]` | `--bio ""` removes | |
| 71 | | `set-profile [--name X] [--bio "…"] [--avatar <file>] [--banner <file>]` | `--bio ""` removes | |
| 72 | 72 | | `invite [--ttl <ms>]` | one-time invite for a browser | |
| 73 | 73 | | `browsers` | browsers you have admitted | |
| 74 | 74 | | `revoke <publicKey>` | retire a browser | |
| … | … | @@ -94,7 +94,8 @@ Refuses to start if another daemon already holds the socket. |
| 94 | 94 | | `dismiss <feedKey>` | | |
| 95 | 95 | | `directory` | listings across registries you hold | |
| 96 | 96 | |
| 97 | | `lib/rpc.js` answers 98 methods; the CLI covers the ones a human drives. |
| 97 | `lib/rpc.js` answers 106 methods; the CLI covers the 34 a human drives. The rest are what |
| 98 | `favela-surface` calls — onboarding, rooms, namespaces, reach, and the bridge verbs below. |
| 98 | 99 | |
| 99 | 100 | ## Primitives |
| 100 | 101 | |
| … | … | @@ -128,15 +129,37 @@ Refuses to start if another daemon already holds the socket. |
| 128 | 129 | |
| 129 | 130 | ## Boundary |
| 130 | 131 | |
| 131 | | ⛔ No `atproto-*` or `ap-*` imports. No DAG-CBOR, no MST, no DID, no signed commit. |
| 132 | No `atproto-*` or `ap-*` imports. No DAG-CBOR, no MST, no DID, no signed commit. |
| 132 | 133 | |
| 133 | 134 | `test/boundary.test.js` enforces this over every file in `lib/` and over the dependency list. |
| 134 | 135 | |
| 136 | ## Bridges |
| 137 | |
| 138 | A bridge carries this identity onto a network the daemon itself knows nothing about. The peer holds |
| 139 | the client half; the ceremony and the signed bytes come from `favela-identity`, so the claimant and |
| 140 | the verifier cannot disagree about them. |
| 141 | |
| 142 | | | | |
| 143 | |---|---| |
| 144 | | `bridge-policy` | what a bridge will accept | |
| 145 | | `bridge-claim` | take a name on it | |
| 146 | | `bridge-release` | give one up — permanent | |
| 147 | | `bridge-front` | ask it to carry an identity this node holds | |
| 148 | | `bridge-which` | which bridge carries a given name | |
| 149 | |
| 150 | Driven from `favela-surface`'s `/bridge/*` and `/did/*` routes, not from the CLI. |
| 151 | |
| 152 | `lib/bridge.js` also exports `buildCollect` — the request a node makes for what a bridge observed |
| 153 | while it was unreachable. It is proven by `test/bridge-collect.test.js` and has **no RPC verb**, so |
| 154 | nothing on this side can send one yet. The bridge half is built; see hyper-social #73 §3. |
| 155 | |
| 135 | 156 | ## Status |
| 136 | 157 | |
| 137 | | Working. 0.0.53, running on tabertron, ashatron and stortron. |
| 158 | Working. `npm test` — 395 tests, 938 asserts, passing (`brittle-bare test/*.test.js`, 50 files, |
| 159 | ~43 s). |
| 138 | 160 | |
| 139 | | `npm test` — 362 tests, 865 asserts, passing (`brittle-bare test/*.test.js`, 44 files, ~36 s). |
| 161 | Deployed as a pgh app. Measured 2026-09-20: 0.0.57 installed and running on tabertron and stortron, |
| 162 | with this tree at 0.0.58. |
| 140 | 163 | |
| 141 | 164 | ## License |
| 142 | 165 | |