From f39cfb7afe90b8fe6a3fceec075d9e3328729b4f Mon Sep 17 00:00:00 2001 From: escott- Date: Wed, 7 Oct 2026 08:05:47 -0700 Subject: [PATCH] chore(release): prepare MCP 1.0.18 Bumps the workspace, npm package, MCP Registry metadata, and the boundary self-test to 1.0.18, and adds the 1.0.18 changelog covering the three commits on main since v1.0.17: the resume guidance in the session tool text, the rules and the prompt hook (29a1bbd), the pre-push hook naming the commits a push carries (63cfbf1), and git events tagged with the session id init returned for Claude Code, Codex and Cursor (8f637f6). No dependency changes: none of the three commits touches Cargo.toml or Cargo.lock. The two open dependabot PRs (#155, #156) are not part of this release. Checked on ovh-desktop against main 8f637f6 plus this change: cargo fmt --check, clippy --workspace --all-targets -D warnings, cargo test --locked --workspace --all-targets (3059 passed, 0 failed, 21 ignored), account_connection_smoke (9 tests), cargo audit and cargo deny (clean), plus the public-boundary, release-contract, DCO, workflow, adoption and grounding script tests and npm test (6 passed). Co-Authored-By: Claude Sonnet 5.5 Signed-off-by: escott- --- .github/scripts/test_public_boundary.py | 2 +- CHANGELOG.md | 37 +++++++++++++++++++++++++ Cargo.lock | 14 +++++----- Cargo.toml | 14 +++++----- package.json | 2 +- server.json | 4 +-- 6 files changed, 55 insertions(+), 18 deletions(-) diff --git a/.github/scripts/test_public_boundary.py b/.github/scripts/test_public_boundary.py index 9fec16e..dad0dd8 100644 --- a/.github/scripts/test_public_boundary.py +++ b/.github/scripts/test_public_boundary.py @@ -26,7 +26,7 @@ def test_private_search_names_are_rejected_in_public_comments_and_copy(self) -> boundary.verify_paths_and_source(root) def test_repository_satisfies_public_boundary(self) -> None: - self.assertEqual(boundary.verify(REPOSITORY_ROOT), "1.0.17") + self.assertEqual(boundary.verify(REPOSITORY_ROOT), "1.0.18") def test_forbidden_private_source_is_detected(self) -> None: with tempfile.TemporaryDirectory(prefix="public-boundary-") as temporary: diff --git a/CHANGELOG.md b/CHANGELOG.md index a50c361..4b0be49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog +## 1.0.18 + +- Resume: agents are now told how to resume, with their own session id. A + resume that is given the id `init` returned skips the caller's own session, but + nothing told an agent to pass it. The `session` tool's description now says to + use `resume` or `resume_list` with the id `init` returned, its action reference + documents both actions, `session_id` says it is that id for `resume` and + `resume_list`, and the unknown-action error lists them. The rules every editor's + file carries map "resume", "resume recent work", "pick up where we left off" + and "continue my last session" to `session(action="resume" | "resume_list", + session_id=)`, no longer to `recall`; the rules reach a machine + with `contextstream-mcp update`. The tool text reaches users when the hosted + gateway runs this version (29a1bbd). +- Hooks: in Claude Code and Codex, a prompt that asks to resume earlier work + gets the exact call, the latest session or `resume_list` when the user wants to + choose. Only specific phrases count, prompts over 600 characters are ignored, + and "update my resume", "resume.pdf" and "resume the download" do nothing. + PostToolUse records the session id an `init` result names, per host session + (the host id is hashed, kept for 24 hours), so the hook still names the right id + after a long conversation or a compaction. Cursor and Windsurf get the guidance + from the tool text and the rules only (29a1bbd). +- Git events: the pre-push hook also sends the commits a push carries, as + `pushed_commits` (newest first, at most 50, shas only), so every commit in a + pushed range shows as pushed and not only its tip. It claims nothing when git + cannot name the range, and the hosted API ignores the field if it does not know + it (63cfbf1). +- Git events are tagged with the session id `init` returned, for Claude Code, + Codex and Cursor. They were tagged with the host's own session id, which no + transcript or resume card uses, so a push shortly after a commit was dropped from + its card. With no `init` on record nothing is tagged, and the host id is never + sent. After a commit the hook sends a copy of the event that names the session + and agent, and the backend keeps one row. Cursor's `afterShellExecution` also + runs `git-bash-observed` (refresh Cursor's hooks to get it), and Codex events say + `codex` or `cursor` instead of always `claude_code`. Codex gets this only where it + already runs the ContextStream Bash hook, because setup installs no Codex hooks + (8f637f6). + ## 1.0.17 - Claude Code auto memory: setup now turns Claude's auto memory off when it diff --git a/Cargo.lock b/Cargo.lock index 175122c..75b029e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1624,7 +1624,7 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "mcp-acceleration-products" -version = "1.0.17" +version = "1.0.18" dependencies = [ "async-trait", "chrono", @@ -1642,7 +1642,7 @@ dependencies = [ [[package]] name = "mcp-client" -version = "1.0.17" +version = "1.0.18" dependencies = [ "anyhow", "base64 0.23.1", @@ -1670,7 +1670,7 @@ dependencies = [ [[package]] name = "mcp-model-registry" -version = "1.0.17" +version = "1.0.18" dependencies = [ "mcp-types", "serde", @@ -1679,7 +1679,7 @@ dependencies = [ [[package]] name = "mcp-server" -version = "1.0.17" +version = "1.0.18" dependencies = [ "anyhow", "async-trait", @@ -1736,7 +1736,7 @@ dependencies = [ [[package]] name = "mcp-session" -version = "1.0.17" +version = "1.0.18" dependencies = [ "chrono", "dashmap", @@ -1756,7 +1756,7 @@ dependencies = [ [[package]] name = "mcp-tools" -version = "1.0.17" +version = "1.0.18" dependencies = [ "anyhow", "async-trait", @@ -1792,7 +1792,7 @@ dependencies = [ [[package]] name = "mcp-types" -version = "1.0.17" +version = "1.0.18" dependencies = [ "async-trait", "chrono", diff --git a/Cargo.toml b/Cargo.toml index f5bfe37..2a2ee13 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ members = [ ] [workspace.package] -version = "1.0.17" +version = "1.0.18" edition = "2021" rust-version = "1.95" license = "MIT" @@ -90,12 +90,12 @@ fs2 = "0.4" notify = "8" # Workspace crates -mcp-types = { version = "=1.0.17", path = "crates/mcp-types" } -mcp-client = { version = "=1.0.17", path = "crates/mcp-client" } -mcp-session = { version = "=1.0.17", path = "crates/mcp-session" } -mcp-tools = { version = "=1.0.17", path = "crates/mcp-tools" } -mcp-model-registry = { version = "=1.0.17", path = "crates/mcp-model-registry" } -mcp-acceleration-products = { version = "=1.0.17", path = "crates/mcp-acceleration-products" } +mcp-types = { version = "=1.0.18", path = "crates/mcp-types" } +mcp-client = { version = "=1.0.18", path = "crates/mcp-client" } +mcp-session = { version = "=1.0.18", path = "crates/mcp-session" } +mcp-tools = { version = "=1.0.18", path = "crates/mcp-tools" } +mcp-model-registry = { version = "=1.0.18", path = "crates/mcp-model-registry" } +mcp-acceleration-products = { version = "=1.0.18", path = "crates/mcp-acceleration-products" } # Testing mockall = "0.15" diff --git a/package.json b/package.json index 73bfbd7..3d0cfc7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@contextstream/mcp-server", "mcpName": "io.github.contextstream/mcp-server", - "version": "1.0.17", + "version": "1.0.18", "description": "Verified npm launcher for the open-source ContextStream Rust MCP server", "type": "module", "license": "MIT", diff --git a/server.json b/server.json index 2faa6d0..70f8a7e 100644 --- a/server.json +++ b/server.json @@ -3,7 +3,7 @@ "name": "io.github.contextstream/mcp-server", "title": "ContextStream MCP Server", "description": "Project memory, semantic code search, and grounded agent context.", - "version": "1.0.17", + "version": "1.0.18", "repository": { "url": "https://github.com/contextstream/mcp-server", "source": "github" @@ -20,7 +20,7 @@ "registryType": "npm", "registryBaseUrl": "https://registry.npmjs.org", "identifier": "@contextstream/mcp-server", - "version": "1.0.17", + "version": "1.0.18", "transport": { "type": "stdio" },