OverviewFilesCommitsIssuesDocsReleasesPeers

favela-android commits / aa3a6c6

README: say at the top that this is the prototype
favela-surface-android is the shipping handset app and this README gave a reader no way to know it. Nothing depends on this package, its last commit is 2026-08-25, and favela-surface-android is at 0.0.42 with an APK, OTA native addons and real releases. Not my inference — hyper-social #64 states it: "favela-android was the prototype, this is the full-stack app." That issue also records why the original boundary reading was wrong: favela-surface-android began as the half of this repo with no atproto dependency and then grew the stack back through favela-host, so it is a superset rather than a sibling. The header also carries the two things a reader of THIS file still needs: lib/host/ was copied out of here rather than extracted, so a Doze or foreground-service fix lands in two places, and the two applicationIds differ on purpose so installing one does not replace the other. Everything below the header is left as it was. Its measurements were true when taken and rewriting them would only make it harder to see what this repo actually was. Glyph count 2 -> 0, per the style favela-markdown 462e960 set. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
aa3a6c66c5071c63a0aaff642dd6404ec4096dbc
by plankatron <fleeky@gmail.com> · 2026-09-20T20:47:33.000Z

Changed files (1) +20 -2

README.md +20 -2
……@@ -1,5 +1,23 @@
11# favela-android
22
3**The prototype. The shipping handset app is [`favela-surface-android`](../favela-surface-android).**
4
5hyper-social #64 settled it in those terms: *"favela-android was the prototype, this is the
6full-stack app."* favela-surface-android started as the half of this repo that carried no atproto
7dependency, then grew the atproto stack back through `favela-host`, so it is now a superset — and it
8is the one with an APK on a handset, native addons over OTA, and releases (0.0.42 at the time of
9writing) against this repo's last commit on 2026-08-25.
10
11Nothing depends on this package. `lib/host/` was copied out of here rather than extracted, which
12favela-surface-android records as a debt with this repo as the other half: the first Doze or
13foreground-service fix has to land in both places.
14
15`applicationId` here is `to.favela.android` and there is `to.favela.surface`, deliberately different
16so installing one does not replace the other — they hold different identities and different storage.
17
18What follows is the record of this repo as it stood, and every measurement in it was true when taken.
19
20
321A **full favela node on a phone** — React Native over a [bare-kit](https://github.com/holepunchto/bare-kit)
422worklet. The phone holds its own DID key, authors and signs its own atproto repo, replicates over
523Hyperswarm and indexes its own appview.
……@@ -8,7 +26,7 @@ It **is** favela-web in a WebView — but not a client of a home server, which i
826matters. The phone runs the server. favela-web is embedded in the worklet, serving its pages to
927loopback from an hpp that holds the DID key on this device; nothing renders from a remote host.
1028
11⚠ This reverses the original design, which rendered a hand-written React Native UI over favela-web's
29This reverses the original design, which rendered a hand-written React Native UI over favela-web's
1230data. That was rebuilt here on 2026-08-11 because the native surface looked nothing like favela and
1331could only be brought closer by rebuilding every screen a second time, by hand, to a lower standard.
1432Rendering the real pages means every screen favela-web gains arrives on the phone for free — the
……@@ -98,6 +116,6 @@ react-native-bare-kit 0.14.5 declares. (Upstream bare-kit has since moved to 0.1
981160.14.5 pin is a deliberate divergence to keep the API-30 handset, not a wait for a fix.) Sideloading
99117needs "install unknown apps" for your browser.
100118
101⛔ The signing key is durable and kept. Android refuses to upgrade an APK signed with a different
119The signing key is durable and kept. Android refuses to upgrade an APK signed with a different
102120key, and the only way out is uninstall — which deletes app-private storage, i.e. the node's identity,
103121its device chain and its repo. A throwaway debug key would make every rebuild a data-loss event.