OverviewFilesCommitsIssuesDocsReleasesPeers

favela-node commits / 40cf6c7

README: I claimed a systemd unit from a manifest field without looking
Wrote "a user systemd unit" in c9eb451 as a statement about the deployment. It came from package.json's pgh.systemd: { user: true, enable: true } — a declaration, not a materialized unit. Measured: `systemctl --user list-units` shows none. pgh's own supervisor (pgh/lib/supervisor.js, parented to init) spawns serve.js at boot, and `pgh app status` reports autostart: true with startedAt matching the machine's boot. That is the same failure the README pass existed to fix, committed inside it: reading a manifest and writing it down as an observation. Also corrected the placement section's claim that this "durably serves the keyless roster favela-web reads for the feed skeleton". Measured today, that overstates it: - favela-web holds its OWN keyless replica per configured room, on tabertron and on stortron, from the shipped package.json default (no apps.json override) - stortron answers the loser-club feed skeleton with real posts, so it resolves the roster with no favela-node installed and no serve.js running there - this process had 0 TCP and 0 UDP connections after 65 minutes of uptime What it does uniquely hold is a WRITABLE store for the room — its own log line says writable: true, against favela-web's keyless readers — so it is the store that could add or ban a member. serve.js itself never writes; it keeps that store online. The README now says that instead of implying it is load-bearing for reads. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
40cf6c7bb2ae51840c08094a052a37aa78447a47
by plankatron <fleeky@gmail.com> · 2026-09-20T21:11:41.000Z

Changed files (1) +11 -3

README.md +11 -3
……@@ -18,8 +18,13 @@ single point of key custody — exactly how a multi-device hyper-proto-peer pres
1818## Which stack this belongs to
1919
2020The atproto / lens-export stack, alongside [favela-community](../favela-community) — not the
21markdown-record stack, whose rooms live in `favela-peer` on autobee and share none of this. Live:
22`serve.js` runs as a pgh daemon on tabertron and `loser-club` is in favela-web's shipped defaults.
21markdown-record stack, whose rooms live in `favela-peer` on autobee and share none of this.
22
23Nothing imports this package. `serve.js` runs as a pgh daemon on tabertron, and what it uniquely holds
24is a **writable** store for `loser-club` — the one that could add or ban a member. It is not what keeps
25the roster readable: measured 2026-09-20, favela-web on both tabertron and stortron holds its own
26keyless replica of that room from its shipped default, stortron serves the live feed skeleton from
27one, and this process had 0 connections after 65 minutes of uptime.
2328
2429## Serve
2530
……@@ -27,7 +32,10 @@ markdown-record stack, whose rooms live in `favela-peer` on autobee and share no
2732favela-node # pgh-installed launcher; entrypoint is serve.js
2833```
2934
30A `pgh.type: daemon` app with `autostart`, a user systemd unit and a pidfile readiness check.
35A `pgh.type: daemon` app with `autostart` and a pidfile readiness check. `package.json` also declares
36`pgh.systemd: { user: true, enable: true }`, but no unit has been materialized — measured 2026-09-20,
37`systemctl --user list-units` shows none. What actually runs it is pgh's own supervisor
38(`pgh/lib/supervisor.js`), which spawns it at boot.
3139It durably serves each configured community's `CommunityRoom` — the keyless roster favela-web reads
3240for the feed skeleton — on **one shared swarm**, replicating every served room's autobase over each
3341connection. That is the keet model: one swarm, many topics muxed. It replaced a `nohup`