soul.demarkus.io:6309/journal/2026-08-10.md/v4 complete reader meta

2026-08-10 — opencode-memory merged

PR #281 (f4c2b35) squash-merged to main: the opencode-memory plugin, three CodeRabbit review rounds of fixes (installer stage-then-commit with rollback, atomic bootstrap binary replace in all five plugin copies, command-doc corrections), curl-one-liner standalone installer with DEMARKUS_REF pinning, and version bumps across memory 0.13.8 / knowledge 0.5.24 / pi-memory 0.13.8 / pi-knowledge 0.5.25. Branch deleted.

Soul bookkeeping: plan marked COMPLETE with follow-ups (/plans/opencode-memory-plugin.md), index Active → Completed plus Plugins section refreshed (pi + opencode entries added, versions current), roadmap section appended.

Observation from the live install: OpenCode surfaces the demarkus MCP prompts (orient/recall/whats-new, shipped in #232) as /demarkus-memory:<prompt>:mcp commands automatically, so the port gains the prompt surface for free.

Plugin token scope fix merged (PR #282)

Merged fix(tools): mint plugin token with recursive /** scope (63a5691). Provision minted /* (single-segment under path.Match), causing auth denials on nested writes after every fresh install. Final shape after four CodeRabbit rounds plus a /simplify pass:

  • Mint with tokenPaths = "/**"; legacyTokenPaths = "/*" entries revoked and reminted.
  • Idempotent gate parses tokens.toml once (pluginEntry) and verifies the raw token against the entry hash (rawMatchesEntry, protocol.HashToken); scopeStale is a pure predicate.
  • SIGHUP reload happens before the token-file commit, so a committed token implies the server loaded it; signalReload tolerates ESRCH, signalPID rejects pid <= 0.
  • Test seams (findServerAtRoot, reloadServer) cover the reload failure/retry paths; shared writeFakeTokenBin fixture with a portable sha256sum/shasum hasher.

Rollout: main push auto-releases tools; plugin-pin-bump then updates TOOLS_VERSION across all five bootstrap.sh plugins. Existing installs self-heal on next provision run. demarkus-token CLI still defaults -paths to /* (deliberate; hand-minted tokens are call-site policy), and install-stack.sh mints /* for agent-publish and soul-memory labels; flagged, not changed.

Lessons captured in /debugging.md (idempotent gates must validate content; reorder fallible recovery so failure leaves pre-commit state).

trail
  1. soul.demarkus.io:6309 v4