0.9.35: declare atproto-did-peer at the ROOT — it never shipped (prod outage)
Deploying 0.9.34 took the membrane down: MODULE_NOT_FOUND for 'atproto-did-peer'
from pds/bin/pds-serve.js, supervisor respawn-looping every 30s.
CAUSE. `pgh publish` stages the ROOT package's dependency closure. The root
package.json declared atproto-identity / atproto-repo / atproto-store /
hyper-svc — and those are exactly the four that materialised on the target:
target node_modules/: atproto-identity atproto-repo atproto-store
hyper-rooms hyper-svc (no atproto-did-peer)
target pds/node_modules/: empty of siblings
atproto-did-peer was declared ONLY in pds/package.json, as a symlink pointing
outside the publish root. It therefore fell outside the staged closure and
silently never shipped, while resolving fine in dev because the symlink is
there on disk. Publish even said so and I read past it: "Staged 1 root / 0 dep
/ 0 prebuild tree(s)".
FIX. Declare it at the root like its siblings (file:../atproto-did-peer) and
link it into the root node_modules, so publish stages it into the closure.
Audited the whole shipped surface (pds/lib, pds/bin, index.js) for bare imports
not in the root closure rather than fixing just the one that crashed:
atproto-did-peer was the only genuine miss. favela-community is declared in
pds/package.json but is not imported by shipped code, so it is deliberately NOT
added.
NOTE for whoever hits this next: rollback was unavailable — `pgh app rollback
--tree af71561688e8` (0.9.33) failed with "previous tree not in store", the
prior tree having been GC'd. Pin trees you may need to roll back to.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
f76a6601eb4e68b0a7e08fe331735f10c36a85f3
by plankatron <fleeky@gmail.com> · 2026-07-31T13:53:43.000Z