chore(v3.1): release prep — version 3.1.0, changelog, working release archives - #37
Merged
Merged
Conversation
… archives Phase 58 launch prep. The version had been stuck at 2.7.0 through the whole v3.0 and v3.1 line, and the release it would have cut was missing the CLI its own quickstart depends on. Version - workspace 2.7.0 -> 3.1.0 - memory-adapters pinned its own 2.7.0; now uses version.workspace so there is one source of truth Release archives actually usable - ship all four binaries (memory-daemon, memory-ingest, memory, memory-installer). memory and memory-installer were never in the archive, so a user on prebuilt binaries could not run the README quickstart at all - a missing binary now fails the release job instead of producing a silently partial archive - assets renamed agent-memory-<version>-<platform>: the archive stopped being just the daemon - docs/setup/quickstart.md rewritten to match: the old commands fetched per-binary tarballs that do not exist, with no version in the name, and untarred into ~/.local/bin where the tarball's own directory prefix would have broken the chmod that followed Documentation - CHANGELOG.md with an honest v3.1.0 entry, retractions included - docs/UPGRADING.md v3.1 section: the breaking OpenCode removal, rebuild-toc now exiting non-zero, and the index-directory behaviour change - docs/launch/ drafts: Substack post and Show HN / r/rust / r/LocalLLaMA copy Correction to a claim this milestone made - README and the draft upgrade notes said a rebuild would backfill event text into BM25. It will not. `admin rebuild-bm25` is a prune -- it removes documents below --min-level (default `day`, which would delete segment and grip docs) and re-indexes nothing; `rebuild-indexes` covers TOC nodes and grips, not events; clearing the index leaves the RocksDB checkpoint intact. There is no backfill path, so both documents now say so, and the command's help text and banner no longer call a prune a rebuild. Local: fmt, clippy -D warnings, 1205 workspace tests, 60 e2e tests, and doc all green on a clean target dir. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014nSJ2c7F9mpmRCxfTAi214
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 58 launch prep. Everything here is the code-and-docs half; the tag, the repo settings, the demo, and the public posts are yours.
The version now matches
workspace.package.versionwas still2.7.0— it never moved through v3.0 or v3.1, and the repo has no tags at all. Now3.1.0.memory-adapterswas pinning its own literal2.7.0instead of inheriting; it now usesversion.workspace = true, so there is one source of truth for the next bump.The release it would have cut was broken
Two things, both found by reading
release.ymlagainst the README rather than assuming:memory-daemonandmemory-ingestonly.memory— the CLI the quickstart uses formemory addandmemory search— andmemory-installerwere never in it. A user who took the "prefer not to compile?" path could not follow the quickstart at all. All four binaries now ship, and a missing one fails the release job instead of producing a quietly partial archive.agent-memory-<version>-<platform>. The archive stopped being just the daemon. No releases exist yet, so nothing breaks.docs/setup/quickstart.mdwas rewritten to match reality. The old instructions were wrong three ways: they fetched per-binary tarballs that the workflow never produced, omitted the version from the asset name, and untarred into~/.local/binwhen the tarball carries its own directory prefix — so thechmod +x ~/.local/bin/memory-daemonon the next line would have failed even if the download had worked.A correction to something this milestone shipped
Phase 57's README said BM25 indexes built before v3.1 could be rebuilt to get event previews. That is not true, and I wrote it. Verified against the code this time:
admin rebuild-bm25is a prune, not a rebuild — it removes documents below--min-level(defaultday, which would delete your segment and grip documents) and re-indexes nothingadmin rebuild-indexesre-indexes TOC nodes and grips from storage, not raw eventsadmin clear-index --index bm25deletes the index directory but leaves the indexing checkpoint in RocksDB, so the outbox drain will not revisit processed eventsThere is no backfill path. README and UPGRADING now say that plainly, and
rebuild-bm25's help text and banner stop calling a prune a rebuild — the misleading name was one default flag away from deleting a user's segment documents.Documentation
CHANGELOG.md— new. Honest v3.1.0 entry: what was added, what was fixed, what now fails loudly instead of silently, what was removed (breaking), the retracted 64.6s benchmark, and a known-gaps section.docs/UPGRADING.md— v2.7.0 → v3.1.0 section covering the breaking OpenCode removal,rebuild-tocnow exiting non-zero, the index-directory behaviour change, and the backfill gap above.docs/launch/v3.1-blog-post.md— Substack draft. The harness-engineering story: verification by existence vs. by execution, the four rules that replaced it, and what four phases of enforcement actually turned up — ending on the Phase 57 quickstart that returned zero results with exit code 0.docs/launch/launch-copy.md— Show HN, r/rust and r/LocalLLaMA drafts, plus a pre-post checklist. Nothing has been posted.Planning
.planning/MILESTONES.mdgets the v3.1 shipped entry (including the known gaps and the defects found by executing docs rather than reading them), ROADMAP marks v3.1 shipped with Phase 58 broken into done vs. maintainer-only, and STATE moves to Phase 58.Validation
Run on a cleared
target/, since the version bump invalidates the cache anyway:cargo fmt --all -- --checkcargo clippy --workspace --all-targets --all-features -- -D warningscargo test --workspace --all-features --exclude e2e-testscargo test -p e2e-tests --all-featuresRUSTDOCFLAGS="-D warnings" cargo docWhat's left for you after this merges
v3.1.0— publishes public binaries, so I've left it to youai-agents,memory,rust,claude-code,local-first), Discussionsdocs/launch/launch-copy.md🤖 Generated with Claude Code
https://claude.ai/code/session_014nSJ2c7F9mpmRCxfTAi214
Generated by Claude Code