Verbunccio, the built-in Bun.serve() registry, has replaced Verdaccio. This handoff is historical.
Read these files for full context:
- docs/plans/2026-02-15-verbunccio-design.md (full design, Codex-reviewed, all decisions finalized)
- CLAUDE.md (project conventions, commands, structure)
Done:
- Research phase: 3 sonnet agents surveyed all registry alternatives, confirmed no viable replacement exists
- Design phase: opus agent + Codex 5.3 MCP produced the design doc
- Codex review: identified critical issues (upstream proxy needed, don't strip non-pkglab versions, audit stubs, server-owned cleanup), all incorporated into design doc
- Design doc updated with: upstream proxy section, compatibility stubs, full packuments only in v1, monorepo benchmark plan, memory tracking
Continue from: Implementation (parallel opus agents)
Split into 3 parallel opus agents:
-
Storage + Worker agent (new files):
src/lib/verbunccio-storage.ts: in-memory index, write-through persistence, per-package mutex, atomic writessrc/lib/verbunccio-worker.ts: Bun.serve() entry point, request routing, upstream proxy, ready signal
-
Routes agent (new file):
src/lib/verbunccio-routes.ts: all HTTP handlers (publish, packument, tarball, delete, update, dist-tags, index, stubs)proxyToUpstream(): transparent proxy for unknown packages
-
Integration agent (modified files):
src/index.ts: add--__workerenv var check for verbunccio-workersrc/lib/paths.ts: addregistryStoragealiassrc/lib/registry.ts: switch to HTTP index reads, remove client-side rm -rf, add 409 retry, check resp.ok on setDistTagsrc/lib/daemon.ts: backend field in PID file, update validatePid, generic error messagessrc/lib/prune.ts: use HTTP index when available
After implementation:
- Run
bun run test:e2eto verify all 131 tests pass - Codex review via /lcodex
- Write benchmark script (
benchmarks/registry-benchmark.ts) - Update README.md with Verbunccio/PKGLAB_VERBUNCCIO docs
Verify with: bun run test:e2e
Env var: PKGLAB_VERBUNCCIO=1 enables the new backend
Invoke these skills first: /lsuperpowers
Workflow: parallel opus agents for implementation, I review each agent's output, /lcodex for final review. User prefers direct execution over plan mode. Never enter plan mode unprompted. Always update README.md for public-facing changes. Never use em dashes.