v2.6.2
v2.6.2 — fix npm wrapper optionalDependencies (v2.6.1 patch)
⚠️ Why v2.6.2 exists
v2.6.1's npm wrapper was tagged with a package.json whose
optionalDependencies block still referenced
@opitacode/dark-memory-mcp-{darwin,linux,win32}-{x64,arm64}@2.6.0 (the
previous release). When a user ran
npx -y @opitacode/dark-memory-mcp@2.6.1, npm pulled the v2.6.0
platform packages, so the user effectively got v2.6.0 binaries from
a v2.6.1 install.
Functional impact was limited: the GitHub Release binaries
and MCPB bundles for v2.6.1 were correct (self-bootstrapping,
reproducible builds). Only the npm install path was broken.
v2.6.2 is a patch release that re-bumps the npm wrapper with
correct optionalDependencies for v2.6.2 platform packages.
🎯 For users
Use v2.6.2. The v2.6.1 release notes have been updated with a
warning pointing here.
# upgrade
npm install -g @opitacode/dark-memory-mcp@2.6.2
# or use npx
npx -y @opitacode/dark-memory-mcp@2.6.2🔧 What's actually new in v2.6.2
npm/wrapper/package.json:
optionalDependenciesnow references v2.6.2 platform packages
(matching the wrapper version).- All other v2.6.1 → v2.6.2 changes are version bumps only.
🆕 v2.6.1 highlights (carried into v2.6.2)
v2.6.1 was the first follow-up to v2.6.0 (the self-bootstrapping
release) and shipped 3 real changes plus a version-bump. The npm
wrapper bug masked them in v2.6.1; v2.6.2 re-publishes the same
binaries with a correct npm wrapper.
1. migrate.CurrentSchemaVersion() — exported helper
internal/tools/agent_bootstrap.go's
detect_environment tool previously hardcoded SchemaVersion: 20.
Now reads from sqlite.CurrentVersion() which iterates the
compiled-in Migrations slice. Adding a new migration now
automatically updates the tool's reported schema version — no
manual sync needed.
internal/migrate.CurrentSchemaVersion(migs []Migration) int
internal/migrate/sqlite.CurrentVersion() int # convenience
7 new tests in 2 new test files (5 logic tests + 2 integration
tests).
2. publish-mcp-registry.yml race condition fix
publish-npm.yml and publish-mcp-registry.yml triggered in
parallel on the same tag push. mcp-publisher's publish step
validates against the npm registry, which has a 5-30s CDN
propagation delay. Race window: registry workflow reaches publish
before npm's CDN has indexed the new version, so mcp-publisher
returned a 404. v2.6.0 hit this once (manual recovery).
Fix: wrap ./mcp-publisher publish in a retry loop (up to 3
attempts with 30s sleeps). Common case (npm propagates <30s):
succeeds on first retry. Worst case: ~90s of retries.
MAX_ATTEMPTS=3
RETRY_DELAY=30
Test: tests/distribution/mcpb_v2_6_1_test.go::TestV261_RegistryPublishRetryLoop.
⚠️ Note: v2.6.2's own registry publish ran into a slower npm
CDN propagation than the 90s retry budget. The retry loop
exhausted and required manualworkflow_dispatchrecovery
(same pattern as v2.6.0). The retry loop is in place for the
common case; for the slow case, manual rerun remains the
fallback. Future enhancement: bump to 5 attempts × 60s.
3. docs/agent-bootstrap.md + README update
New operator-facing doc explains the self-bootstrapping architecture
(5 layers, decision tree, DARK_AGENT_BOOTSTRAP_DIR override).
README updated with the new "🪜 Self-Bootstrapping (AGENT_BOOTSTRAP
— 3 tools, v2.6.0)" section. Tool count: 35 → 38 across 12 namespaces.
📦 Distribution
All channels live for v2.6.2:
- npm wrapper: 6 platform packages + wrapper (correct
optionalDependencies this time). - Official MCP Registry: published via manual
workflow_dispatch
after retry exhaustion (see note above). - GitHub Releases: 9 assets.
🔮 Follow-ups
- Bump publish-mcp-registry retry budget to 5 × 60s (~5 min
worst case). Today's 3 × 30s budget (~90s) is sometimes too
short for slow npm CDN propagation. - Move to
workflow_runtrigger forpublish-mcp-registry.yml
so it waits forpublish-npm.ymlcompletion before starting.
Trade-off: more complex trigger config vs simpler inline retry. - Consider
--forcefor npm publish to allow v2.6.1 hotfix
(today, broken versions can't be re-published — must bump
to next version, which is what v2.6.2 does).
📝 Commits since v2.6.0
021e04c fix(dist): v2.6.2 - bump wrapper optionalDependencies to 2.6.2
b869923 fix(dist): v2.6.1 - bump wrapper optionalDependencies to 2.6.1
a824984 chore(release): bump versions 2.6.0 -> 2.6.1
d14c16e docs(v2.6.1): agent-bootstrap.md + README Self-Bootstrapping section
49c8126 fix(ci): v2.6.1 publish-mcp-registry npm propagation race (retry loop)
84d92fa feat(migrate): export CurrentSchemaVersion helper
5e410f6 ci: re-trigger CI to verify v2.6.0 drift fix
Full Changelog: v2.6.0...v2.6.2