Skip to content

chore(release): v0.9.5 — search recall + plugin compatibility#261

Merged
rohitg00 merged 1 commit into
mainfrom
release/0.9.5
May 9, 2026
Merged

chore(release): v0.9.5 — search recall + plugin compatibility#261
rohitg00 merged 1 commit into
mainfrom
release/0.9.5

Conversation

@rohitg00
Copy link
Copy Markdown
Owner

@rohitg00 rohitg00 commented May 9, 2026

Release v0.9.5. Full notes in CHANGELOG.md.

Headlines

Fixed:

Changed:

Per-file version bump (per AGENTS.md)

  • package.json0.9.40.9.5
  • src/version.tsVERSION constant
  • src/types.tsExportData.version union
  • src/functions/export-import.tssupportedVersions Set
  • test/export-import.test.ts — version assertion
  • plugin/.claude-plugin/plugin.json — version
  • CHANGELOG.md — detailed entries + per-contributor shoutouts

Test plan

  • npm test852/852 pass
  • npm run build — clean
  • Tag v0.9.5, GitHub release with CHANGELOG body, npm publish via release workflow

Notes for upgrading users

  • If you've been on iii-engine v0.11.6 and noticed search returning empty after save, this release fixes it by pinning to v0.11.2 in every install path. v0.11.6 brings a new sandbox model that agentmemory hasn't been refactored for yet — pin keeps existing users unblocked while that work happens. Run npx @agentmemory/agentmemory upgrade to pull the pinned engine.
  • If you have an existing vector index on disk, the new dim-guard will refuse to load if your active embedding provider declares a different dimension than what's persisted. Set AGENTMEMORY_DROP_STALE_INDEX=true to discard and rebuild from live observations.

Roadmap follow-up (not in this release)

Refactor agentmemory to register itself via iii worker add agentmemory as a sandboxed worker, replacing the current iii-exec watch shape in iii-config.yaml. Once that lands, the iii-engine pin lifts and agentmemory runs against iii v0.11.6+ natively. This is the path Mike + Rohit aligned on for converting agentmemory's user base into iii users (per the GTM standup) — same work doubles as the v0.11.6 compat fix.

Summary by CodeRabbit

  • New Features

    • BM25 indexing for saved memories with backfill/rebuild support
  • Bug Fixes

    • Hard prevention of embedding-dimension mismatches and recovery guidance for stale vector indexes
    • Hermes plugin fixes: tool-call return handling, environment-based memory status loading, and passthrough hook behavior
    • Demo seeding fix and increased timeouts for compression/summarization
    • Integration/alignment fixes across related components
  • Chores

    • Release v0.9.5, manifest/version bumps, export/import compatibility, and docs clarifying pinned engine v0.11.2 and install guidance

Review Change Stack

@vercel
Copy link
Copy Markdown

vercel Bot commented May 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agentmemory Ready Ready Preview, Comment May 9, 2026 4:39pm

Request Review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 9, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b34c4b01-451b-4358-b371-ea05c96ffd87

📥 Commits

Reviewing files that changed from the base of the PR and between 5d365cf and 878ccf8.

📒 Files selected for processing (12)
  • CHANGELOG.md
  • README.md
  • docker-compose.yml
  • package.json
  • plugin/.claude-plugin/plugin.json
  • plugin/scripts/session-end.mjs
  • plugin/scripts/stop.mjs
  • src/cli.ts
  • src/functions/export-import.ts
  • src/types.ts
  • src/version.ts
  • test/export-import.test.ts

📝 Walkthrough

Walkthrough

This PR bumps the project to 0.9.5, accepts 0.9.5 export files, increases several plugin fetch timeouts, updates tests, and adds a 0.9.5 changelog plus install/docs text clarifying an iii-engine v0.11.2 pin.

Changes

Release 0.9.5 Bump

Layer / File(s) Summary
Version Constants and Type Definitions
src/version.ts, src/types.ts
VERSION constant and ExportData.version union updated to include "0.9.5".
Package and Plugin Manifests
package.json, plugin/.claude-plugin/plugin.json
npm package and Claude plugin version fields bumped to 0.9.5.
Request Timeout Increases
plugin/scripts/session-end.mjs, plugin/scripts/stop.mjs
AbortSignal timeouts increased across session-end, crystals/auto, consolidate-pipeline, claude-bridge/sync, and summarize endpoints (e.g., session-end 5e3→3e4, crystals 15e3→6e4, consolidate 15e3→12e4, summarize 3e4→12e4).
Export-Import Compatibility
src/functions/export-import.ts
supportedVersions allowlist extended to accept "0.9.5".
Test Assertions
test/export-import.test.ts
Export test updated to expect result.version === "0.9.5".
Release Documentation
CHANGELOG.md
Added 0.9.5 entry documenting BM25 indexing/backfill, embedding-dimension safety, Hermes plugin fixes, demo seeding fix, increased LLM timeouts, iii-engine v0.11.2 pin, and upgrade notes.
Docs / Install Messaging
README.md, docker-compose.yml, src/cli.ts
Clarified rationale for pinning iii-engine to v0.11.2, documented AGENTMEMORY_III_VERSION override, and added Windows installer note regarding iii v0.11.6 sandbox-worker model change.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 A patch, a hop, a version new,
Timeouts lengthened, exports too,
Changelog written, installs aligned,
Nine-point-five hops into the mind,
Small fixes snug — the rabbit’s due.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: version bump to v0.9.5 with focus on search recall improvements (BM25 indexing, embedding-dimension guard) and plugin compatibility fixes, matching the substantial changes across version files and functional fixes documented in the PR objectives.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/0.9.5

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/types.ts (1)

282-282: 💤 Low value

LGTM! Version discriminator updated consistently.

The ExportData.version union now includes "0.9.5", aligning with the runtime version in src/version.ts and the import validation in src/functions/export-import.ts.

Note: The version union has grown to 30+ literal types. Consider deriving this programmatically (e.g., from a version range or shared constant array) in a future refactor to reduce maintenance burden.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/types.ts` at line 282, The ExportData.version union in types (symbol:
ExportData.version in src/types.ts) has been updated to include "0.9.5" to match
runtime and import validation, so no functional change is required; keep the
literal added but for future maintenance replace the long union with a single
shared constant or derived type (e.g., export a versions array and derive the
union via typeof V[number]) so you maintain a single source of truth for
versions across ExportData.version, src/version.ts, and
src/functions/export-import.ts.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/functions/export-import.ts`:
- Line 179: supportedVersions contains "0.7.7" but the TypeScript union type
ExportData.version does not, causing a type/runtime mismatch; update one side to
keep them consistent: either add "0.7.7" to the ExportData.version union in
src/types.ts (so the type includes "0.7.7") or remove "0.7.7" from the
supportedVersions Set in export-import.ts; locate the supportedVersions constant
and the ExportData.version union and make the change so both lists match
exactly.

---

Nitpick comments:
In `@src/types.ts`:
- Line 282: The ExportData.version union in types (symbol: ExportData.version in
src/types.ts) has been updated to include "0.9.5" to match runtime and import
validation, so no functional change is required; keep the literal added but for
future maintenance replace the long union with a single shared constant or
derived type (e.g., export a versions array and derive the union via typeof
V[number]) so you maintain a single source of truth for versions across
ExportData.version, src/version.ts, and src/functions/export-import.ts.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 591c2d1d-d67e-4b47-aa66-81dd4923373b

📥 Commits

Reviewing files that changed from the base of the PR and between 3b10330 and 421c62c.

📒 Files selected for processing (9)
  • CHANGELOG.md
  • package.json
  • plugin/.claude-plugin/plugin.json
  • plugin/scripts/session-end.mjs
  • plugin/scripts/stop.mjs
  • src/functions/export-import.ts
  • src/types.ts
  • src/version.ts
  • test/export-import.test.ts

Comment thread src/functions/export-import.ts
Bug-fix patch focused on search recall correctness and plugin
compatibility. Pins iii-engine to v0.11.2 because v0.11.6 introduces
a new sandbox-everything-via-`iii worker add` model that agentmemory
hasn't been refactored for yet — pin lifts once that refactor lands.
Adds a hard guard against silent vector-index corruption, fixes BM25
indexing for memories saved via memory_save, and lands four Hermes
plugin fixes.

Per AGENTS.md release checklist:
- package.json version 0.9.4 -> 0.9.5
- src/version.ts VERSION constant
- src/types.ts ExportData version union
- src/functions/export-import.ts supportedVersions Set
- test/export-import.test.ts assertion
- plugin/.claude-plugin/plugin.json version
- CHANGELOG.md detailed entries with contributor shoutouts

Headlines (full detail in CHANGELOG):

Fixed:
- BM25 search now indexes memories saved via memory_save (#258, #257)
  Thanks @Nizar-BenHamida for the precise repro.
- Embedding providers no longer silently corrupt the vector index when
  an API returns wrong-dimension vectors (#248, #247, #256)
  Thanks @AmmarSaleh50 for issue + fix + tests.
- Hermes handle_tool_call returns JSON strings, not raw dicts (#255, #254)
  Thanks @KyoMio for the Anthropic-protocol repro.
- Hermes status reflects real service state on systemd installs (#253, #250)
  Thanks @OptionalCoin for tracing it to env-source divergence.
- Hermes hooks accept passthrough kwargs (#252, #249)
  Thanks @OptionalCoin again for the log analysis.
- agentmemory demo now seeds observations correctly (#251, #229)
  Thanks @seishonagon for root-cause analysis.
- LLM compression / summarization timeouts increased (#213)
  Thanks @xuli500177.
- Pi / OpenClaw / Hermes integration plugin fixes (#230)
  Thanks @deepmroot.

Changed:
- iii-engine pinned to v0.11.2 across every install path (#260).
  v0.11.6 introduces a new `iii worker add` sandbox model that
  agentmemory still pre-dates; pin lifts when we refactor agentmemory
  to register as a sandboxed worker. Override with
  AGENTMEMORY_III_VERSION=<version> for users who've migrated manually.
- README documents iii worker add extension surface (#242).
- README iii Console install/launch commands corrected (#243).

Validated: 852/852 tests pass, npm run build clean.
@rohitg00 rohitg00 merged commit 0c73d86 into main May 9, 2026
3 of 5 checks passed
@rohitg00
Copy link
Copy Markdown
Owner Author

rohitg00 commented May 9, 2026

Pushed 878ccf8 — also flipped the release framing per Rohit's correction:

Reframing: not a regression, a sandbox-model arch shift

iii-engine v0.11.6 isn't a regression — it's a new architecture where every worker registers via iii worker add and runs inside a sandboxed microVM. agentmemory still uses the older iii-exec watch + node dist/index.mjs model from iii-config.yaml and predates the new model. The architectural mismatch surfaces as EPIPE reconnect loops and empty search results.

Pin lifts when agentmemory refactors to register as a sandboxed worker via iii worker add agentmemory — that work is tracked separately and lines up with the GTM plan to convert agentmemory's user base into iii users (Mike + Rohit alignment).

Updated:

  • CHANGELOG.md "Changed" entry — drops "regression" framing, calls out the sandbox-model shift + tracked refactor follow-up.
  • src/cli.ts IIPINNED_VERSION comment + install instructions hint.
  • docker-compose.yml comment.
  • README.md install section + Windows setup note.

Review-feedback fix on top of the reframing

Finding Verdict Fix
0.7.7 in supportedVersions Set but missing from ExportData.version union Valid Added "0.7.7" to the union in src/types.ts. v0.7.7 is a real shipped release (git tag confirms), so the union was the side missing the value.

Out of scope for this finding (skipped per minimal-changes rule): 0.7.1 and 0.7.8 are also real tags missing from both the Set and the union — pre-existing wider gap, separate cleanup.

Validation: npm test 852/852 pass, npm run build clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant