Skip to content

feat: seed the guide on first read, kmp-mcp demo, examples, tagline parity and storefront checks - #917

Merged
tgarciai merged 2 commits into
mainfrom
claude/dazzling-sagan-s367vl
Oct 7, 2026
Merged

tgarciai merged 2 commits into
mainfrom
claude/dazzling-sagan-s367vl

Conversation

@tgarciai

@tgarciai tgarciai commented Oct 6, 2026

Copy link
Copy Markdown
Member

Summary

Eight of the community-adoption actions, in one integration branch:

  • Guide seeded on first read (4). kmp_guide, and an inspect of a guide node, seed both installed guides into a fresh embedded store from the assets that match the engine (KMP_PLUGIN_ROOT from the launchers, the bundled engine's plugin, or the Claude/Codex plugin cache for this version), once per session, through the ordinary kmp_ingest. Setup still writes no memory; gRPC keeps the explicit sync. GUIDE_UNAVAILABLE now carries searched. Installing is install, setup, one restart.
  • kmp-mcp demo (5). Writes a worked example under example:kmp-demo into the store that resolves here, opens ChronoLoom on it and prints four questions. Idempotent; excluded from the project bundle like the guides.
  • README first screen (2). New canonical overview block and a README that opens with the problem, the two-minute demo and a shorter install; the language section moved to docs/embedded/languages.md. Synced to the crate and plugin READMEs.
  • One tagline everywhere (3). kmp-mcp crate, Codex plugin interface and the ChatGPT submission now open with the workspace description; release.sh preflight gets a tagline sources check. The GitHub repository description itself has to be changed by hand (see below).
  • Storefronts (8). The crate chain waits for crates.io index visibility before publishing dependents (root cause of the 0.25.0 failure, run 37224430411), publish-distribution.yml can resume a half-published chain with resume_crates, scripts/release/storefronts.sh compares GitHub, crates.io, the MCP Registry and the marketplace branch, and storefronts.yml runs it after each release and daily.
  • Examples (15) and KMP's own memory (16). examples/ with the retry-budget demo and examples/kmp-project, whose packets regenerate .kmp/memory.jsonl. The committed bundle was format 2, unreadable by every shipped binary since 0.6; it is now format 3 with seventeen sourced memories. example_bundles imports each shipped bundle.
  • Distribution channels (17). docs/development/distribution-channels.md: every channel, what it reads, how it updates, and the submissions still done by hand, with one blurb.

Why This Belongs In The Kernel

The seeding, the demo and the bundle exclusion live where the store is opened and written (kmp-mcp), under the same kmp_ingest boundary and idempotency rules an agent uses. Nothing here adds product nouns to the kernel crates; kmp-domain and the application layer are untouched.

Checks

  • cargo fmt --all
  • cargo clippy -p kmp-mcp -p kmp-release --all-targets --locked -- -D warnings
  • cargo test --locked -p kmp-release; focused kmp-mcp tests (guide_seed, guide_repair, guide_sync, demo_cli, example_bundles); the full kmp-mcp suite is running locally and the draft dev-loop runs it too
  • python3 scripts/ci/kmp-capability-contract.py, bash scripts/ci/mcp-registry.sh, bash scripts/ci/check-publish-chain.sh, python3 scripts/ci/publish-workflow-contract.py, python3 scripts/ci/github-actions-contract.py, bash scripts/ci/kmp-mcp-architecture-gate.sh
  • kmp-release guide assets write, readme sync, scripts/examples/refresh.sh
  • bash scripts/ci/quality-gate.sh (the full gate runs when this leaves draft)

Contract Impact

  • No public contract changes to tools/list
  • gRPC contract changed
  • async contract changed
  • runtime integration docs or examples changed (GUIDE_UNAVAILABLE feedback gains searched; new CLI verb demo; launchers export KMP_PLUGIN_ROOT)

Architecture Review

  • No god object introduced
  • No god file introduced
  • DDD and hexagonal boundaries preserved
  • No integrating-product nouns added to the kernel boundary
  • Docs updated where needed

Still by hand after merge

  1. Set the GitHub repository description to Local-first agent memory that preserves what happened, when and why (it currently says "KMP (Kernel Memory Protocol) …", and Glama shows that text).
  2. Resume the 0.25.0 crates.io publication: dispatch publish-distribution.yml on v0.25.0 with resume_crates=0.25.0, then mcp-registry.yml on the tag.
  3. The one-time submissions listed in docs/development/distribution-channels.md (official Claude plugin directory, mcp.so, PulseMCP, Smithery, awesome-mcp-servers, ChatGPT apps).

🤖 Generated with Claude Code

https://claude.ai/code/session_01KgKH6YvGnt1aT5Y6c5j3F6


Generated by Claude Code

tgarciai and others added 2 commits October 6, 2026 23:35
…orefront checks

Eight community-adoption actions in one integration branch.

The first guide read on a fresh embedded store seeds both installed guides
from the assets that match the engine (KMP_PLUGIN_ROOT from the launchers,
the bundled engine's plugin, or the Claude/Codex plugin cache for this
version), once per session, through the ordinary kmp_ingest. Setup still
writes no memory; a gRPC kernel keeps the explicit sync; GUIDE_UNAVAILABLE
names where the session looked. Installing is install, setup, one restart.

`kmp-mcp demo` writes a worked example under example:kmp-demo into the store
that resolves here, opens ChronoLoom on it and prints four questions. The
demo, like the guides, never enters a project's committed bundle.

The README opens with the problem, the two-minute demo and a shorter
install; the canonical overview block is rewritten for a newcomer and synced
to the crate and plugin READMEs; the language section moves to docs.

Every storefront opens with the workspace tagline, and release preflight
fails when a manifest drifts. The crate publish chain waits for crates.io
index visibility before publishing dependents (the 0.25.0 failure), the
chain can be resumed by dispatch, scripts/release/storefronts.sh compares
GitHub, crates.io, the MCP Registry and the marketplace branch, and
storefronts.yml runs it after each release and daily.

examples/ ships the retry-budget demo and KMP's own decision log, whose
packets regenerate .kmp/memory.jsonl as a format-3 bundle this engine
reads; the previous bundle was format 2. docs/development/distribution-
channels.md lists every channel and the submissions still done by hand.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KgKH6YvGnt1aT5Y6c5j3F6
The top-level help gained the demo line, and the demo verb gets its own
reviewed help fixture like every other advertised verb.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KgKH6YvGnt1aT5Y6c5j3F6
@tgarciai
tgarciai marked this pull request as ready for review October 6, 2026 23:51
@tgarciai
tgarciai merged commit a911043 into main Oct 7, 2026
62 of 63 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant