OverviewFilesCommitsIssuesDocsReleasesPeers

ap-bridge commits / fecc462

declare keet-identity-key; install every registry devDependency for the CI test run
Three suites (admission, collect, reclaim-and-pending) import keet-identity-key. ap-bridge never declared it: locally it resolved through the workspace, and in CI's export it was MODULE_NOT_FOUND. Declared as a devDependency at 3.2.0, the exact pin favela-peer uses. `npm install --production` never installs devDependencies, so the CI tests step now installs EVERY registry devDependency at its declared range into its side prefix (it installed only brittle before), and overlays and removes them the same way. file: devDependencies are siblings the vendor step already copied in. A static scan of every package test/*.js imports, against the vendored export, now finds nothing undeclared and nothing missing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fecc46265f2cd074c0358f8ddb7e5e8db9da1b75
by plankatron <fleeky@gmail.com> · 2026-10-12T20:50:35.000Z

Changed files (2) +10 -4

.pear-git/ci.yaml +8 -3
……@@ -90,12 +90,17 @@ steps:
9090 # SEPARATE prefix, only the packages this tree lacks are copied in, the suite runs with the TREE'S
9191 # copy of brittle (brittle-bare runs tests in-process, so runner and tests must share one instance),
9292 # and exactly those added packages are removed again. The published closure is byte-for-byte what
93 # it was before this step. The version is the devDependency's range, not whatever is latest.
93 # it was before this step.
94 #
95 # Every REGISTRY devDependency is installed this way at its declared range, not just brittle: the
96 # suites also import keet-identity-key, which `npm install --production` never installs. (file:
97 # devDependencies are siblings, and the vendor step has already copied those in.)
9498 - name: tests (offline, against the vendored closure)
9599 run: |
96100 B=$(mktemp -d)
97 RANGE=$(node -p 'require("./package.json").devDependencies.brittle')
98 npm install --prefix "$B" --no-audit --no-fund --no-save "brittle@$RANGE" >/dev/null 2>&1 || { echo "could not install brittle@$RANGE"; exit 1; }
101 SPECS=$(node -p 'Object.entries(require("./package.json").devDependencies||{}).filter(([,v])=>!String(v).startsWith("file:")).map(([k,v])=>k+"@"+v).join(" ")')
102 echo "test-only devDependencies: $SPECS"
103 npm install --prefix "$B" --no-audit --no-fund --no-save $SPECS >/dev/null 2>&1 || { echo "could not install: $SPECS"; exit 1; }
99104 ADDED=""
100105 for p in $(cd "$B/node_modules" && ls -A | grep -v -E '^\.'); do
101106 case "$p" in
package.json +2 -1
……@@ -37,7 +37,8 @@
3737 },
3838 "devDependencies": {
3939 "anproto": "file:../anproto",
40 "brittle": "^3.0.0"
40 "brittle": "^3.0.0",
41 "keet-identity-key": "3.2.0"
4142 },
4243 "license": "MIT",
4344 "pgh": {