OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-social commits / 0727248

docs/favela-peer: name the component family — favela-surface is the new renderer
Daemon/UI split so clients can be interface-agnostic. favela-surface renders the room model; favela-web keeps its name and its job as the atproto appview; favela-android is unchanged because it displays HTML. Name checked against the tree: view is taken twice (autobase view, atproto AppView - 32 files), as are lens/scope/front. surface appears only in prose, and carries #30's meaning: where the truth is actually visible. One renderer, not N - #45 measured the alternative at four days each way. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0727248e3a7656d0bf3bd37169ab980ac37aff7c
by plankatron <fleeky@gmail.com> · 2026-09-06T00:37:02.000Z

Changed files (1) +26 -0

docs/FAVELA-PEER.md +26 -0
……@@ -20,6 +20,32 @@ running code:
2020The room is the container and a personal feed is a one-writer room (`SOCIAL-MODEL.md`), so a fission
2121that keeps the repo as the container has **moved** the atproto shape rather than left it.
2222
23## 1.5 The component family
24
25Named 2026-09-05. The daemon/UI split is deliberate, so that clients can be interface-agnostic.
26
27| | role |
28|---|---|
29| **`favela-peer`** | the daemon — rooms, records, identity, admission. Hosts `favela-markdown` and exposes `project` as an op |
30| **`favela-markdown`** | the codec + projections. **A library**: no storage, no network, no daemon (`library.md` §1) |
31| **`favela-surface`** | ★ **new** — the SSR renderer for the room model: rooms, records, edges, membership |
32| **`favela-android`** | the shell + capability bridge. **Unchanged** — it displays HTML (hyper-social #45) |
33| `favela-web` | keeps its name and its job: the **atproto** appview |
34
35**Why `favela-surface`.** hyper-social #30's recurring lesson was *"every surface we control reported
36success… the truth was only visible on the **product surface**"*. The name says what the thing is
37for. Checked against the tree first: `view` is taken twice over (an autobase's linearized view, and
38an atproto AppView — 32 files), as are `lens`, `scope` and `front`; `surface` appears only in prose.
39
40⛔ **One renderer, not N.** #45 measured the alternative: 35 render functions / 1771 lines in
41`render.js` plus a 483-line stylesheet, and **715 lines of React Native UI built 2026-08-07 and
42reversed 2026-08-11** — four days each way. SSR HTML is the cheapest cross-surface artifact because
43every target ships an HTML renderer; components trade one artifact for N permanent ports.
44
45⚠ **The measured cost of `favela-surface` is the ~120 DID-keyed call sites** (`identity.md` §10 #3) —
46counted by grep, never audited. And #45's caution applies: *"if the markup is thrown away, the
47rationale must survive it — the comments encode the outages that caused each choice."*
48
2349## 2. The measured baseline
2450
2551What is actually there, at L0–L2 of the layer map (`SOCIAL-MODEL.md` §2.5):