OverviewFilesCommitsIssuesDocsReleasesPeers

favela-android commits / 4ef23f4

0.0.7: bare-dns 2.2.0 — upstream fixed it, and it ships as a dependency
A Keet dev pointed us at bare-dns 2.2.0, published today (2026-08-25T06:53Z, the first release since 2.1.4 in September 2025). It fixes the use-after-free we reported: the query struct is now malloc'd (binding.c:932) instead of living in a JS ArrayBuffer nothing referenced, with the answers drained off a uv_idle rather than the callback running inside c-ares with a JS-heap pointer. MEASURED, same machine, same bare v1.28.0, same repro (17 trials each): bare-dns 2.1.4 ok=0 crashed=17 (exit 139, SIGSEGV) bare-dns 2.2.0 ok=17 crashed=0 in THIS tree ok=5 crashed=0 ⛔ #52 §3 WAS WRONG that this "cannot ship as a dependency" and needs a runtime rebuild. It is not a builtin that shadows an installed copy: with nothing installed, `require('bare-dns')` throws MODULE_NOT_FOUND, and so does `require('bare-tcp')` — every bare-* module an app uses comes from the app's own node_modules. The installed copy is what runs, which the numbers above confirm behaviourally rather than by inspection. No runtime rebuild, and the upstream PR in #53's next steps is moot: they fixed it themselves. bare-tcp declares ^2.0.4, so `npm update bare-dns` was the whole change. ALSO: hyper-overlay is now DECLARED (devDependency, file:../hyper-overlay). test/ota.test.mjs:14 imports `hyper-overlay/tree` and this package never declared it — it resolved only because an undeclared top-level symlink happened to be in node_modules, and the update pruned it as extraneous, taking the suite from green to MODULE_NOT_FOUND. The app itself was never affected (pgh-runtime carries its own link), but a tree that only builds because of a stray symlink is not a tree. Suite green (exit 0). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
4ef23f47e2eefbb5e2845a4b905f960cb5a181c6
by plankatron <fleeky@gmail.com> · 2026-08-25T14:39:14.000Z

Changed files (2) +107 -12

package-lock.json +104 -10
……@@ -1,12 +1,12 @@
11{
22 "name": "favela-android",
3 "version": "0.0.1",
3 "version": "0.0.6",
44 "lockfileVersion": 3,
55 "requires": true,
66 "packages": {
77 "": {
88 "name": "favela-android",
9 "version": "0.0.1",
9 "version": "0.0.6",
1010 "dependencies": {
1111 "atproto-identity": "file:../atproto-identity",
1212 "atproto-store": "file:../atproto-store",
……@@ -19,15 +19,18 @@
1919 "corestore": "7.11.0",
2020 "favela-web": "file:../favela-web",
2121 "hyper-proto-peer": "file:../hyper-proto-peer",
22 "hyper-svc": "file:../hyper-svc",
2223 "hyperbee": "2.27.3",
2324 "hyperswarm": "4.17.0",
24 "keet-identity-key": "3.2.0"
25 "keet-identity-key": "3.2.0",
26 "pgh-runtime": "file:../pgh-runtime"
2527 },
2628 "devDependencies": {
2729 "@hyperswarm/testnet": "^3.1.4",
2830 "@react-native-community/cli": "^20.2.0",
2931 "@react-native/babel-preset": "^0.86.2",
30 "@react-native/metro-config": "^0.86.2"
32 "@react-native/metro-config": "^0.86.2",
33 "hyper-overlay": "file:../hyper-overlay"
3134 },
3235 "peerDependencies": {
3336 "react": "^19.2.8",
……@@ -71,7 +74,7 @@
7174 }
7275 },
7376 "../favela-web": {
74 "version": "0.3.55",
77 "version": "0.3.80",
7578 "dependencies": {
7679 "@atcute/client": "^5.1.1",
7780 "@ipld/dag-cbor": "^9.2.7",
……@@ -81,9 +84,9 @@
8184 "atproto-room": "file:../atproto-room",
8285 "atproto-store": "file:../atproto-store",
8386 "b4a": "^1.8.1",
84 "bare-dns": "^2.1.4",
8587 "bare-fetch": "^3.0.1",
8688 "bare-http1": "^4.0.0",
89 "bare-net": "^2.3.2",
8790 "bare-process": "^4.0.0",
8891 "bare-ws": "^3.0.0",
8992 "blind-pairing": "^2.3.1",
……@@ -102,8 +105,36 @@
102105 "favela-web": "bin/favela-web.js"
103106 }
104107 },
108 "../hyper-overlay": {
109 "version": "0.3.12",
110 "dev": true,
111 "license": "AGPL-3.0",
112 "dependencies": {
113 "b4a": "^1.0.0",
114 "bare-fs": "^4.7.2",
115 "bare-os": "^3.8.7",
116 "bare-path": "^3.0.0",
117 "bare-zlib": "^1.3.3",
118 "compact-encoding": "^3.2.0",
119 "corestore": "^7.0.0",
120 "hyperbee": "^2.0.0",
121 "hypercore-crypto": "^3.0.0",
122 "protomux": "^3.0.0",
123 "ready-resource": "^1.0.0",
124 "sodium-universal": "^5.0.1",
125 "streamx": "^2.0.0"
126 },
127 "devDependencies": {
128 "@hyperswarm/testnet": "^3.1.4",
129 "brittle": "^3.0.0",
130 "hyperswarm": "^4.0.0"
131 },
132 "engines": {
133 "bare": ">=1.16.0"
134 }
135 },
105136 "../hyper-proto-peer": {
106 "version": "0.3.112",
137 "version": "0.3.119",
107138 "hasInstallScript": true,
108139 "dependencies": {
109140 "@ipld/dag-cbor": "^9.2.1",
……@@ -143,6 +174,49 @@
143174 "brittle": "^4.0.2"
144175 }
145176 },
177 "../hyper-svc": {
178 "version": "0.1.9",
179 "dependencies": {
180 "b4a": "^1.6.0",
181 "bare-abstract-socket": "^1.0.0",
182 "bare-events": "^2.0.0",
183 "bare-fs": "^4.7.2",
184 "bare-http1": "^4.0.0",
185 "bare-net": "^1.0.0",
186 "bare-os": "^3.0.0",
187 "bare-path": "^3.0.0",
188 "bare-process": "^4.0.0",
189 "bare-stream": "^2.0.0",
190 "bare-url": "^2.0.0",
191 "compact-encoding": "^3.2.0",
192 "hypercore-crypto": "^3.0.0",
193 "hyperswarm": "^4.0.0",
194 "protomux": "^3.0.0",
195 "ready-resource": "^1.0.0"
196 },
197 "devDependencies": {
198 "@hyperswarm/testnet": "^3.0.0",
199 "brittle": "^3.0.0",
200 "corestore": "^7.0.0",
201 "hyper-rooms": "file:../hyper-rooms"
202 },
203 "engines": {
204 "bare": ">=1.0",
205 "node": ">=18"
206 }
207 },
208 "../pgh-runtime": {
209 "version": "0.1.4",
210 "license": "AGPL-3.0",
211 "dependencies": {
212 "bare-events": "^2.0.0",
213 "hyper-overlay": "file:../hyper-overlay"
214 },
215 "devDependencies": {
216 "brittle": "^3.0.0",
217 "hypercore-crypto": "^3.0.0"
218 }
219 },
146220 "node_modules/@babel/code-frame": {
147221 "version": "7.29.7",
148222 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
……@@ -2228,12 +2302,20 @@
22282302 }
22292303 },
22302304 "node_modules/bare-dns": {
2231 "version": "2.1.4",
2232 "resolved": "https://registry.npmjs.org/bare-dns/-/bare-dns-2.1.4.tgz",
2233 "integrity": "sha512-abwjHmpWqSRNB7V5615QxPH92L71AVzFm/kKTs8VYiNTAi2xVdonpv0BjJ0hwXLwomoW+xsSOPjW6PZPO14asg==",
2305 "version": "2.2.0",
2306 "resolved": "https://registry.npmjs.org/bare-dns/-/bare-dns-2.2.0.tgz",
2307 "integrity": "sha512-iEqjj122eXdbDP5gXwk/NG/XVI5xoGjQA24UlGBPafUeMIGesxUZ5rxDvjNXPBHDyTkO+H3IsV5izZ8T5IGAXA==",
22342308 "license": "Apache-2.0",
22352309 "engines": {
22362310 "bare": ">=1.7.0"
2311 },
2312 "peerDependencies": {
2313 "bare-buffer": "*"
2314 },
2315 "peerDependenciesMeta": {
2316 "bare-buffer": {
2317 "optional": true
2318 }
22372319 }
22382320 },
22392321 "node_modules/bare-env": {
……@@ -4228,10 +4310,18 @@
42284310 "node": ">=10.17.0"
42294311 }
42304312 },
4313 "node_modules/hyper-overlay": {
4314 "resolved": "../hyper-overlay",
4315 "link": true
4316 },
42314317 "node_modules/hyper-proto-peer": {
42324318 "resolved": "../hyper-proto-peer",
42334319 "link": true
42344320 },
4321 "node_modules/hyper-svc": {
4322 "resolved": "../hyper-svc",
4323 "link": true
4324 },
42354325 "node_modules/hyperbee": {
42364326 "version": "2.27.3",
42374327 "resolved": "https://registry.npmjs.org/hyperbee/-/hyperbee-2.27.3.tgz",
……@@ -5902,6 +5992,10 @@
59025992 "devOptional": true,
59035993 "license": "MIT"
59045994 },
5995 "node_modules/pgh-runtime": {
5996 "resolved": "../pgh-runtime",
5997 "link": true
5998 },
59055999 "node_modules/picocolors": {
59066000 "version": "1.1.1",
59076001 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
package.json +3 -2
……@@ -1,6 +1,6 @@
11{
22 "name": "favela-android",
3 "version": "0.0.6",
3 "version": "0.0.7",
44 "description": "favela-android — a React Native client over a bare-kit worklet running a FULL favela node (hyper-proto-peer + appview + hyperswarm) on the phone. favela-web is reference for the logic, NOT the rendering: this is a different rendering surface. See spec/architecture.md.",
55 "private": true,
66 "type": "module",
……@@ -43,7 +43,8 @@
4343 "@hyperswarm/testnet": "^3.1.4",
4444 "@react-native-community/cli": "^20.2.0",
4545 "@react-native/babel-preset": "^0.86.2",
46 "@react-native/metro-config": "^0.86.2"
46 "@react-native/metro-config": "^0.86.2",
47 "hyper-overlay": "file:../hyper-overlay"
4748 },
4849 "peerDependencies": {
4950 "react": "^19.2.8",