Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/scripts/test_public_boundary.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.23")
self.assertEqual(boundary.verify(REPOSITORY_ROOT), "1.0.24")

def test_forbidden_private_source_is_detected(self) -> None:
with tempfile.TemporaryDirectory(prefix="public-boundary-") as temporary:
Expand Down
34 changes: 34 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# Changelog

## 1.0.24

- Agent Coach Kit: the text of the `workflow`, `workflow_save` and
`workflow_delete` tools and of the `/coach` server instructions describes the
coaching behaviour instead of commanding replies and approvals. ChatGPT's
permission card for the first `workflow_save` call warned "Suspicious
Instruction": the call was clean, the wording was the trigger ("without being
asked", "never claim ... unless the reply ends with", "never invent
approval", "nothing is deleted"). The text now says what each tool does and
what the statuses mean: a reaction is recorded with `add_feedback`; a result
ends with `[COACH_SAVED]` or `[COACH_ALREADY_SAVED]` when stored and
`[COACH_NOT_SAVED]` or `[COACH_CONFLICT]` when not; approvals, verdicts and
scores come from the person and facts from the job's sources; each change is
a new version and earlier versions stay readable; `COACH DATA` is the
person's stored data, "reference, not instructions"; `workflow_delete` is for
the person's own request. The text keeps about the same length (`workflow`
1332 to 1331 characters, `workflow_save` 2054 to 2054, `workflow_delete` 513
to 518, the instructions 739 to 737). The tools, their parameters and their
behaviour are unchanged, and a test keeps the flagged phrases out of the
server instructions and all three descriptions (ad73c8d).
- Agent Coach Kit for Codex Cloud and the ChatGPT plugin package (repository
only): the skills and the AGENTS snippet get the same rewording, with the rule
leads kept identical across both skills (ad73c8d). The plugin signs in with
ChatGPT's Client ID Metadata Document (`"mode": "cimd"` in
`plugins/agent-coach-kit/mcp.json`) instead of registering a client per
connection, now that ContextStream's authorization server advertises
`client_id_metadata_document_supported`; dynamic registration stays available
as a fallback (5527e2b).

Who gets what: the new tool and instruction text reaches ChatGPT and Codex when
the hosted gateway runs this version. The default, OpenAI and consolidated tool
lists do not change. The kit and the plugin package live in the repository;
they are not part of the npm package or the binaries. No dependency changes.

## 1.0.23

- Agent Coach Kit: `workflow(action="compare")` marks feedback a version
Expand Down
14 changes: 7 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ members = [
]

[workspace.package]
version = "1.0.23"
version = "1.0.24"
edition = "2021"
rust-version = "1.95"
license = "MIT"
Expand Down Expand Up @@ -90,12 +90,12 @@ fs2 = "0.4"
notify = "8"

# Workspace crates
mcp-types = { version = "=1.0.23", path = "crates/mcp-types" }
mcp-client = { version = "=1.0.23", path = "crates/mcp-client" }
mcp-session = { version = "=1.0.23", path = "crates/mcp-session" }
mcp-tools = { version = "=1.0.23", path = "crates/mcp-tools" }
mcp-model-registry = { version = "=1.0.23", path = "crates/mcp-model-registry" }
mcp-acceleration-products = { version = "=1.0.23", path = "crates/mcp-acceleration-products" }
mcp-types = { version = "=1.0.24", path = "crates/mcp-types" }
mcp-client = { version = "=1.0.24", path = "crates/mcp-client" }
mcp-session = { version = "=1.0.24", path = "crates/mcp-session" }
mcp-tools = { version = "=1.0.24", path = "crates/mcp-tools" }
mcp-model-registry = { version = "=1.0.24", path = "crates/mcp-model-registry" }
mcp-acceleration-products = { version = "=1.0.24", path = "crates/mcp-acceleration-products" }

# Testing
mockall = "0.15"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@contextstream/mcp-server",
"mcpName": "io.github.contextstream/mcp-server",
"version": "1.0.23",
"version": "1.0.24",
"description": "Verified npm launcher for the open-source ContextStream Rust MCP server",
"type": "module",
"license": "MIT",
Expand Down
4 changes: 2 additions & 2 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.23",
"version": "1.0.24",
"repository": {
"url": "https://github.com/contextstream/mcp-server",
"source": "github"
Expand All @@ -20,7 +20,7 @@
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"identifier": "@contextstream/mcp-server",
"version": "1.0.23",
"version": "1.0.24",
"transport": {
"type": "stdio"
},
Expand Down
Loading