OverviewFilesCommitsIssuesDocsReleasesPeers

atproto-base commits / 8c3b54e

EXTRACTION-PLAN: Phase 1b-now done (membrane repointed onto shared DidPeerRouter)
Record the verified prod repoint, the front()-wait fix (0.2.1), the canonical sibling-symlink / no-npm-install lesson, and the pre-existing env findings (smoke blocked by bare 1.26<1.27; stale pds lockfile; CI installs at root + vendors). 1b-cleanup (migrate remaining 12 tests + delete old files + hyper-social #10/#11) and 1c pending. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8c3b54e72d33c200ef9667f91a30694a64595e0a
by plankatron <fleeky@gmail.com> · 2026-07-23T23:01:11.000Z

Changed files (1) +21 -5

EXTRACTION-PLAN.md +21 -5
……@@ -67,12 +67,28 @@ still carries), and already had the appview `commitOps`. Findings that settled t
6767 layers; `DidPeer` gained the optional write/session/blob relay + getRepoStatus/describeRepo/handle.
6868 ALL existing contracts preserved (add/onconnection/get/ready — router+commitops green; favela loads
6969 clean + appview-ingest green under bare). Ported co-owned-front-thrash → test/co-owned.test.mjs.
70- ▢ 1b — repoint the bridge: `server-bare.js`/`server.js`/`pds-serve.js` import the shared
71 `DidPeerRouter` (owns-swarm + join + relay + rpc). Bridge suite + `npm run smoke` green, THEN delete
72 `pds/lib/peer-front.js`, `peer-router.js`, `did-peer.js` (+ their tests). ⚠ verify the front's write
73 RPC + FleetRelay wiring end-to-end here (1a added them but only the read/freshest path is unit-tested).
70- ◑ 1b — repoint the bridge. Split into 1b-now (done) + 1b-cleanup (pending):
71 - ✅ 1b-now (2026-07-23, atproto-bridge commit c96e0ce, atproto-did-peer 0.2.1 commit 2702b56):
72 `pds-serve.js` now constructs the shared `DidPeerRouter` (owns-swarm + injectable `join` + relay +
73 `rpc:true` + `resolveVerifyKey`). `resolvePlcVerifyKey` moved to `pds/lib/verify-key.js` (keeps
74 atproto-identity out of the shared module's runtime deps). ci.yaml vendors atproto-did-peer; declared
75 in pds/package.json; linked by SIBLING SYMLINK (canonical — NOT `npm install`, which drifts the
76 ^-ranged deps). VERIFIED: migrated `membrane.test.js` + `membrane-only.test.js` construct the shared
77 router EXACTLY as pds-serve does and drive the full HTTP membrane (reads + createSession-over-rpc +
78 describeServer/listRepos/resolveHandle + 404s + UDS status). Full pds suite green 46/46, 188/188.
79 Bug found + fixed here: `DidPeerRouter.front()` must WAIT for a verified head (freshest-of-ready) — a
80 single front() call (no retry) was resolving to a head-less front (0.2.1).
81 ⚠ ENV NOTE: `npm run smoke` is blocked LOCALLY by a pre-existing bare 1.26 < 1.27 mismatch
82 (bare-fetch@3.2.0 → bare-performance@2.1.1 engine). Not our regression; the test suite (brittle-node,
83 under node) is the working gate. The committed pds lockfile is pre-existingly stale (npm ci fails);
84 the repo installs via `npm install --production` at ROOT + the cp -rL vendor step (CI never installs
85 in pds/). Siblings are symlinks — never `npm install` a sibling (it drifts bare-fetch).
86 - ▢ 1b-cleanup — migrate the remaining 12 bridge tests off peer-router.js/peer-front.js/did-peer.js
87 (some now redundant with atproto-did-peer's own suite), then DELETE those 3 lib files + the dead
88 `front-peer.mjs` (uses the removed PeerFront.discover). Also fold in hyper-social #10/#11 here
89 (never fold the relay from a front with `rpcConnected:false`).
7490- ▢ 1c — repoint favela: mostly free; migrate co-owned reads to `front()` freshest-selection.
75- ▢ 1d — fold in hyper-social #10/#11 (never fold the relay from a front with `rpcConnected:false`).
91- ▢ 1d — (folded into 1b-cleanup) hyper-social #10/#11.
7692
7793## PHASE 2 — migration, rehearsed on a SNAPSHOT (never hot)
7894Per the wj62 discipline (`reconcileFromCar` on FRESH storage; rocksdb hot-copy is inconsistent):