From 5e68ecad73f20beb51517146d4503e6663816106 Mon Sep 17 00:00:00 2001 From: Inderjeet Singh Date: Thu, 24 Sep 2026 15:44:41 +0530 Subject: [PATCH 1/2] Release 0.3.0 This release ships the skill and hooks from memvara core v0.15.0, which were vendored in #50. Until the version number changes, the plugin update command tells an existing install that it is already current, so none of this reaches anyone who installed 0.2.4. It is a minor release because it adds features. The hooks here were last vendored before core v0.10.0, so this brings six core releases of hook changes. The daily recall allowance is named. On a paid hosted plan, when the day's recalls are used up the recall hook now reports that allowance and when it resets, instead of "recall failed". The hooks also send each hosted recall once, and never resend a refused one. Project scoping and counts. The hooks send the git project with every hosted call, in a `Memvara-Project` header, so memories are kept per repository. They keep per-session counts in `~/.memvara/.hooks/counts/`, and every recalled memory line starts with a mark so capture does not store it a second time. The switches `project_scope`, `status_line` and `recall_mark` in `~/.memvara/settings.json` turn each one off. Agentic capture is in the vendored hooks but does not run on this host, because it needs a different first extractor from the one this host uses. Capture still reads each turn with one model call, and `capture.log` records that agentic capture was skipped. Setting `"agentic_capture": false` in `~/.memvara/settings.json` stops that line. Skill. The vendored skill covers the tools the hosted endpoint now serves, twenty-two in all: `memory_profile`, ending or retiring memories by query with a preview, `memory_link`, the document tools, metadata filters on search and recall, `valid_at` on recall, and `merge_predicate`. It also says the OAuth grant lasts until it is revoked, or ten years. The version is bumped in `plugin.json`, the only tracked file that declares one, and in `VERSION` in `test/test_plugin.py`. --- plugin.json | 2 +- test/test_plugin.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.json b/plugin.json index d6e18dd..5954ef7 100644 --- a/plugin.json +++ b/plugin.json @@ -1,5 +1,5 @@ { "name": "memvara", - "version": "0.2.4", + "version": "0.3.0", "description": "Hosted Memvara MCP for OpenCode, plus the skill and a JavaScript plugin that recalls on every message and captures when a session goes idle." } diff --git a/test/test_plugin.py b/test/test_plugin.py index cfe40a6..cfc1ff8 100644 --- a/test/test_plugin.py +++ b/test/test_plugin.py @@ -853,7 +853,7 @@ class Version(unittest.TestCase): stopped guarding. """ - VERSION = "0.2.4" + VERSION = "0.3.0" DECLARED = { 'plugin.json', } From d873679c75dd0865c13846361aa619acecab7e95 Mon Sep 17 00:00:00 2001 From: Inderjeet Singh Date: Thu, 24 Sep 2026 15:48:21 +0530 Subject: [PATCH 2/2] Say the hooks arrived in 0.2.4, not 0.2.5 The README, the installer's header comment and the Installer test's docstring each said "Until 0.2.5". The hooks and the installer change they describe shipped in 0.2.4, and there has never been an opencode 0.2.5 release, so all three now say "Until 0.2.4". --- README.md | 2 +- bin/install.mjs | 2 +- test/test_plugin.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 86e1ec2..2cc8f12 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ in this repo. ## What runs on your machine -Until 0.2.5 this page said nothing ran in the background and told you not to +Until 0.2.4 this page said nothing ran in the background and told you not to add this repo to OpenCode's `"plugin": [...]` array. Both were true then and neither is true now, so both are gone rather than softened. diff --git a/bin/install.mjs b/bin/install.mjs index 1b7c3e3..e78d9b2 100644 --- a/bin/install.mjs +++ b/bin/install.mjs @@ -7,7 +7,7 @@ * node bin/install.mjs --mcp-only # the endpoint alone, no local process * node bin/install.mjs # ~/.config/opencode/opencode.json * - * Until 0.2.5 this file REFUSED to register a plugin -- it threw on finding one, and said + * Until 0.2.4 this file REFUSED to register a plugin -- it threw on finding one, and said * "Memvara is remote MCP, not a session hook." That was true of every version that * shipped before this one. It is not true now: `hooks/` runs `python3` on this machine on * every message and when a session goes idle, and the README says so in the same commit diff --git a/test/test_plugin.py b/test/test_plugin.py index cfc1ff8..7551619 100644 --- a/test/test_plugin.py +++ b/test/test_plugin.py @@ -235,7 +235,7 @@ def test_no_npx_in_json(self) -> None: class Installer(unittest.TestCase): """It writes both halves now, and it used to refuse the second one. - Until 0.2.5 `test_refuses_js_plugin_array` asserted the installer THREW on a config + Until 0.2.4 `test_refuses_js_plugin_array` asserted the installer THREW on a config that named this repo as a JS plugin, because Memvara shipped no hooks and a config that said otherwise was a mistake. This repository ships them now, so that assertion is replaced rather than deleted: the refusal below is the one that still matters --