Skip to content

v0.10.0 — memd-wiki v2 (LLM-authored concept / entity pages)

Choose a tag to compare

@fmschulz fmschulz released this 21 Apr 03:06
· 218 commits to main since this release

memd-wiki v2 ships LLM-authored concept and entity pages alongside the
deterministic v1 compiler-owned surface. Six phases (0-5) shipped as discrete
commits, each with its own test gate. The rollout is opt-in: a fresh install
with no wiki_page artifacts behaves identically to v0.9.0.

Highlights

  • ArtifactKind::WikiPage + TaskArtifact::content. New canonical
    artifact kind for LLM-authored knowledge pages. Trust model is
    explicit — a fresh WikiPage sits at TrustTier::CanonicalRecord
    forever; verification is signaled by children (distinct-writer
    Verification artifacts replying to the page) via the existing
    promote_if_countersigned path.
  • artifact.create boundary validator. Phase 1 enforces:
    non-empty grounding refs, summary ≤ 500 bytes, role allowlist
    (concept | entity), content ≤ 256KB.
  • Python compiler reads wiki_page artifacts. Phase 2 renders
    one markdown page per WikiPage under concepts/<id>.md or
    entities/<id>.md. Stable sort
    (role, entity_name or summary[:50], artifact_id) for byte-
    identical output under any backend permutation.
  • Manifest schema v2 with three ownership lanes
    (compiler / llm / human), concept_pages index, and forward-
    compat error (WikiManifestTooNewError) when a future version
    reader hits a too-new manifest.
  • Four new lint checks scoped to manifest.concept_pages:
    concept-missing-grounding (ERROR), concept-stale (WARN),
    concept-contradicts-canonical (ERROR scaffold for v3),
    concept-trust-tier-ungrounded (ERROR — blocks the
    self-labelling laundering vector codex caught during plan review).
  • memd-wiki migrate subcommand upgrades v1 manifests to v2 in
    place; idempotent on v2; refuses future versions; --dry-run
    previews without writing.
  • Bonus: advisory single-writer lockfile for HF model downloads
    that landed pre-release on 3edb0ce (was sitting under
    [Unreleased] on v0.9.0).

MCP wire-format change

artifact_kind enum on artifact.create, task.search, and
artifact.search adds "wiki_page". Closed-enum JSON validators
on the consumer side need updating; the wire format is otherwise
additive.

Migration

# Bump the local install
git pull origin main
cargo build --release -p memd
cp target/release/memd ~/.local/bin/memd
cp target/release/memd memd-skill/bin/linux-x64/memd

# Restart the local daemon
pkill -f '/.local/bin/memd' && sleep 1
nohup ~/.local/bin/memd --mode mcp --transport http \
  --http-bind 127.0.0.1:8787 --data-dir ~/.memd/data \
  > /tmp/memd-daemon.log 2>&1 & disown $!

# Upgrade an existing v1 wiki manifest
memd-wiki migrate --output-dir <wiki_dir>

The next memd-wiki build overwrites the manifest with the canonical
v2 shape regardless, so the explicit migrate is only needed if you
want to read the wiki with v0.10.0 lint before recompiling.

Test counts

  • cargo test -p memd --tests → 910 passed / 4 ignored.
  • cd tools/wiki && python -m unittest discover -s tests → 174 passed.

See CHANGELOG.md for the full per-phase breakdown.