3.9 KiB
REVIEW-bsky.md — Adversary verdicts for the bsky sub-phase
Phase SSOT: /srv/cc-ci/cc-ci-plan/plan-phase-bsky-fix.md.
Gates: M1 (root cause + green fix PR), M2 (operator handoff complete → ## DONE).
This file is append-only; the Builder reads it, never writes it.
Baseline recon @2026-06-11 (cold, pre-claim — NOT a verdict)
Established independently from the live recipe checkout on cc-ci
(~/.abra/recipes/bluesky-pds, HEAD b2d86ef, tag 0.2.0+v0.4-4-gb2d86ef) so I am
ready to verify the Builder's root-cause claim without anchoring:
compose.yml: appimage: ghcr.io/bluesky-social/pds:0.4— a moving minor tag. Version labelcoop-cloud.${STACK_NAME}.version=0.2.0+v0.4.- Recipe overrides the image entrypoint via
entrypoint.sh.tmpl(mounted as a config at/entrypoint.sh,entrypoint: dumb-init --,command: /entrypoint.sh). That script ends withexec node --enable-source-maps index.js— a relativeindex.js, resolved against the image's WORKDIR. - Known symptom (rcust/shot evidence, DEFERRED.md): app crash-loops
Cannot find module '/app/index.js'(MODULE_NOT_FOUND) under Node v24.15.0. Consistent with: image WORKDIR/app, butindex.jsno longer present there → upstream restructured/rebuilt whatever:0.4now resolves to.
Verification angles I will hold the Builder's M1/M2 to (per phase plan §3 gates):
- Root-cause evidence reproduces — I independently inspect the live image
(
docker run --entrypoint sh ... -c 'ls; node --version'/ crane/skopeo) and confirmindex.jsis absent from the assumed WORKDIR at the OLD pin, and present/working at the NEW pin. - The fix is in the recipe mirror PR, not the harness; diff minimal + each line justified against upstream bluesky-social/pds changelog; version label bumped per recipe convention; no test/gate weakening anywhere in cc-ci.
- The green run is genuinely the PR head via the drone
!testmepath (not a local hand-run) — full lifecycle incl. lint, level recorded under de-capped semantics. - Screenshot real + credential-free (I Read the PNG myself); never shows generated creds.
- DEFERRED entries closed with pointers; operator handoff in STATUS-bsky.md.
No gate CLAIMED yet — awaiting Builder's first claim(...) on a bsky gate.
Pre-claim recon update @2026-06-11T11:45Z (cold image probe — NOT a verdict)
Independently reproduced BOTH halves of the root cause via docker run on cc-ci:
ghcr.io/bluesky-social/pds:0.4(current moving tag, digest …2324702f): Node v24.15.0, WORKDIR/app, shipsindex.tsonly — noindex.js. The recipe's entrypointexec node --enable-source-maps index.jstherefore fails with exactlyCannot find module '/app/index.js'. Symptom reproduced. ✔ghcr.io/bluesky-social/pds:0.4.219(Builder's proposed pin): Node v20.20.2, WORKDIR/app, shipsindex.js(package.jsonmain: index.js). The recipe's existing entrypoint resolves the file → addresses the crash at the image level. ✔
Open scrutiny points I will hold the M1 claim to (NOT yet judged — no gate CLAIMED):
- §2.2 upgrade-preference:
0.4.219is the latest patch of the previous 0.4 line, not an upgrade to current stable (:0.4now = 0.5.1). The plan prefers upgrading unless research justifies otherwise. Need: a genuine DECISIONS.md justification (e.g. 0.5.x moved to a TS entrypoint requiring an entrypoint rewrite / larger blast radius) — I'll read it only AFTER my own verdict, and check it against upstream changelog. - Pin should be exact/immutable (0.4.219 looks like a full patch tag — verify it's not itself moving; digest-pin would be strongest).
- Fix must land on the recipe MIRROR PR and be proven green via the drone
!testmepath at PR head — not a local hand-run; no cc-ci harness/gate weakening.
Still no gate CLAIMED (STATUS-bsky: "none claimed yet — working M1"). Idling for the claim.