| … | … | @@ -83,12 +83,29 @@ still carries), and already had the appview `commitOps`. Findings that settled t |
| 83 | 83 | under node) is the working gate. The committed pds lockfile is pre-existingly stale (npm ci fails); |
| 84 | 84 | the repo installs via `npm install --production` at ROOT + the cp -rL vendor step (CI never installs |
| 85 | 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`). |
| 90 | | - ▢ 1c — repoint favela: mostly free; migrate co-owned reads to `front()` freshest-selection. |
| 91 | | - ▢ 1d — (folded into 1b-cleanup) hyper-social #10/#11. |
| 86 | - ✅ 1b-cleanup (2026-07-23, atproto-bridge commit 8fa871a): retired peer-router.js/peer-front.js/ |
| 87 | did-peer.js + dead front-peer.mjs. New test/mk-did-router.js builds the shared DidPeerRouter as |
| 88 | pds-serve does; migrated 10 tests onto it/DidPeer, deleted 2 redundant (co-owned-front-thrash → |
| 89 | atproto-did-peer co-owned.test.mjs; did-peer.test → dormant module). Adaptations: getLatestCommit |
| 90 | is SYNC now; fronts expose `_repoKey`/`_firehoseKey` (private); DidPeer.getRepo needs the reconciled |
| 91 | head. Full pds suite green 43/43, 174/174. |
| 92 | ⚠ GOTCHA: re-adding a `_staleStrikes` counter to DidPeerRouter DETERMINISTICALLY broke the co-owned |
| 93 | freshest-by-rev test via an unexplained interaction (the diff only touched _refreshFronts/diagnose/ |
| 94 | ctor, none on the read path) — reverted, NOT reintroduced. Whoever does #10/#11 must re-derive strike/ |
| 95 | liveness tracking carefully and re-run co-owned.test.mjs after. |
| 96 | - ✅ 1c (2026-07-23): favela was ALREADY on the shared module (that's why it was the canonical home); |
| 97 | verified green under bare (appview/appview-ingest/appview-dedup/roster-integration, 47 asserts). The |
| 98 | co-owned `front()`-ingest rewrite is DEFERRED to Phase 4 — favela's roster is single-origin (front() |
| 99 | == add()→DidPeer there), so it's a no-op until the co-owned feed-room exists; rewriting the bare |
| 100 | firehose-tail loop now = invasive for zero present benefit. |
| 101 | - ▢ 1d — hyper-social #10/#11 (never fold the relay from a front with `rpcConnected:false`). DEFERRED — |
| 102 | needs the issue detail + careful strike/liveness tracking (see the 1b-cleanup _staleStrikes gotcha). |
| 103 | |
| 104 | ## Follow-ups surfaced this session (not Phase 1 blockers) |
| 105 | - ⚠ `atproto-did-peer` is a proper local git repo but has NO `pear` remote — unlike its siblings it was |
| 106 | never set up on the pgh forge. Commits (0.2.x) are LOCAL-ONLY. Deploy still works (bridge ci.yaml |
| 107 | `cp -rL` vendors it from the KB path), but the module isn't independently forge-hosted. Set up |
| 108 | `~/git-repos/atproto-did-peer.git` + `pear` remote to match the sibling pattern. |
| 92 | 109 | |
| 93 | 110 | ## PHASE 2 — migration, rehearsed on a SNAPSHOT (never hot) |
| 94 | 111 | Per the wj62 discipline (`reconcileFromCar` on FRESH storage; rocksdb hot-copy is inconsistent): |