OverviewFilesCommitsIssuesDocsReleasesPeers

favela-bridge commits / 8323803

README: link sibling repos, which this tree already does and I did not
The convention was already here — favela-web and favela-node link siblings as [hyper-proto-peer](../hyper-proto-peer), favela-community as [hyper-rooms](../hyper-rooms). The READMEs I wrote from scratch had ZERO of them; the ones I only edited kept theirs. Measured before fixing: favela-bridge, favela-host, favela-identity, favela-markdown, favela-peer, favela-surface and favela-surface-android each had 0 relative links while mentioning 5-10 siblings by name. Linked on FIRST mention only, prose only. Skipped code fences, tables, existing links and URLs, and left later mentions as code spans so a paragraph does not turn into a row of blue. One case the automated pass got wrong and I reverted by hand: favela-surface's Boundary section lists the modules it may NOT import, as a uniform run of code spans. Linking hyper-overlay and ap-bridge there broke the list's formatting and read as "go read these" when the point is "never import these". Those two are code spans again. Rewrapped the lines the inserted links pushed past 100 columns, which is where the rest of this tree wraps. The long lines that remain in favela-community and favela-node are pre-existing prose — verified against HEAD — and one is inside a code fence. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
83238039f5c0325c5321725cdd39ca0f1730b6c4
by plankatron <fleeky@gmail.com> · 2026-09-20T21:23:03.000Z

Changed files (1) +10 -7

README.md +10 -7
……@@ -1,7 +1,7 @@
11# favela-bridge
22
33Projects a node's own favela records onto the networks its identity has turned on. Reads
4`favela-peer`, decides, and drives the sinks.
4[favela-peer](../favela-peer), decides, and drives the sinks.
55
66```
77favela-bridge plan every record and report; publish nothing
……@@ -31,7 +31,8 @@ Dry by default. Projection is publication: it puts words under an identity on a
3131forget, so a bare run says what would happen and does nothing.
3232
3333`--watch` always sends, and `--send` has no bearing on it. The two flags read as orthogonal and are
34not — the deployed pgh args are `["--watch"]` with no `--send`. Use `--limit 0` for a watch that sends
34not — the deployed [pgh](../pgh) args are `["--watch"]` with no `--send`. Use `--limit 0` for a
35watch that sends
3536nothing. This is deliberately not "fixed" by making watch honour `--send`, because both deployed
3637daemons rely on it and would silently stop publishing.
3738
……@@ -47,7 +48,8 @@ compares against the repo and writes only a real difference.
4748
4849`favela-peer` must not know what atproto is; `favela-peer/test/boundary.test.js` enforces it, from
4950hyper-social #61 §10: *"the moment the daemon imports the projection the dependency has been
50inverted"*. And `hyper-proto-peer` signs a production DID. So the projection lives in neither.
51inverted"*. And [hyper-proto-peer](../hyper-proto-peer) signs a production DID. So the projection
52lives in neither.
5153
5254It is also where the reach decision belongs. `favela-markdown/lib/reach.js` exists because that check
5355would otherwise be written three times and the third one would eventually be written wrong. One
……@@ -59,9 +61,9 @@ Two independent gates, and both must pass:
5961
6062- **`maxReach(roomType, verb)`** — what a room *may* reach. A followers room cannot reach bsky at all,
6163 because atproto has no addressing and a projection it cannot restrict is a leak.
62- **the identity's `reach` preference** — what its owner has *asked* for, set in favela-surface's
63 settings and stored in the peer's own feed. Read every cycle: unticking a network withdraws consent,
64 and a cached copy would keep publishing.
64- **the identity's `reach` preference** — what its owner has *asked* for, set in
65 [favela-surface](../favela-surface)'s settings and stored in the peer's own feed. Read every cycle:
66 unticking a network withdraws consent, and a cached copy would keep publishing.
6567
6668A failure to read either is off. Unknown consent is not consent.
6769
……@@ -163,7 +165,8 @@ throwing.
163165### `lib/peer.js`, `lib/tid.js`
164166
165167`FavelaPeer` is re-exported from `favela-identity/lib/peer-client.js` — one copy of the wire format,
166because ap-bridge reads the same records to project the fediverse and a protocol client written twice
168because [ap-bridge](../ap-bridge) reads the same records to project the fediverse and a protocol
169client written twice
167170drifts. `tidFor(name)` pairs a favela record name with an atproto rkey, which is what makes the two
168171names pure functions of each other.
169172