diff --git a/.github/scripts/test_public_boundary.py b/.github/scripts/test_public_boundary.py index c09818f..2e2e62a 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.22") + self.assertEqual(boundary.verify(REPOSITORY_ROOT), "1.0.23") 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 791177b..0e29701 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog +## 1.0.23 + +- Agent Coach Kit: `workflow(action="compare")` marks feedback a version + carried that its own job kept for that job only. A later job's agent could + read such feedback in "what changed" as something to apply; it now reads + "(this job only; not for later jobs)" in the text and `job_only` on the card. + The compare reads back each carried item's scope (at most 12 reads, shared by + both sides); one it could not read is marked "(scope not checked; ask the + person before reusing it)", never guessed (22be1ee). +- Agent Coach Kit card (`ui://widget/coach.html`) meets WCAG 2.1 AA: one + persistent `aria-live` region announces saves, the focus ring has at least + 3:1 contrast in light and dark, the base size is relative, the card declares + `lang="en"` and honors `prefers-reduced-motion`, nothing scrolls sideways at + 320 px, scrolling text panels take keyboard focus as named regions, and the + compare sides and button rows are labelled groups (22be1ee). +- Agent Coach Kit for Codex Cloud (repository only): `save-output --carried + REF:HOW` records what each version carried, a new `verdict` command records + the person's verdict on an open or closed job, `metrics` shows how the + coaching is going from real jobs only (no quality score), and the skill asks + only about what is missing or changed (5a383d4, cd77a8f). +- Agent Coach Kit package for the ChatGPT and Codex plugin directory + (`plugins/agent-coach-kit`, repository only): the plugin listing, the one + remote server `https://mcp.contextstream.io/coach` with OAuth (`read:coach`, + `write:coach`), the coaching skill, and `plugins/build_agent_coach_kit.py`, + which refuses a package that breaks a submission rule it can check. Nothing + has been submitted (e0bfb25). + +Who gets what: the compare label and the card reach ChatGPT and Codex when the +hosted gateway runs this version. 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.22 - Agent Coach Kit: a new `/coach` endpoint lets a person coach an agent on diff --git a/Cargo.lock b/Cargo.lock index 2a73f24..a3720ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1624,7 +1624,7 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "mcp-acceleration-products" -version = "1.0.22" +version = "1.0.23" dependencies = [ "async-trait", "chrono", @@ -1642,7 +1642,7 @@ dependencies = [ [[package]] name = "mcp-client" -version = "1.0.22" +version = "1.0.23" dependencies = [ "anyhow", "base64 0.23.1", @@ -1670,7 +1670,7 @@ dependencies = [ [[package]] name = "mcp-model-registry" -version = "1.0.22" +version = "1.0.23" dependencies = [ "mcp-types", "serde", @@ -1679,7 +1679,7 @@ dependencies = [ [[package]] name = "mcp-server" -version = "1.0.22" +version = "1.0.23" dependencies = [ "anyhow", "async-trait", @@ -1736,7 +1736,7 @@ dependencies = [ [[package]] name = "mcp-session" -version = "1.0.22" +version = "1.0.23" dependencies = [ "chrono", "dashmap", @@ -1756,7 +1756,7 @@ dependencies = [ [[package]] name = "mcp-tools" -version = "1.0.22" +version = "1.0.23" dependencies = [ "anyhow", "async-trait", @@ -1792,7 +1792,7 @@ dependencies = [ [[package]] name = "mcp-types" -version = "1.0.22" +version = "1.0.23" dependencies = [ "async-trait", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 53424ba..8e65db0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ members = [ ] [workspace.package] -version = "1.0.22" +version = "1.0.23" edition = "2021" rust-version = "1.95" license = "MIT" @@ -90,12 +90,12 @@ fs2 = "0.4" notify = "8" # Workspace crates -mcp-types = { version = "=1.0.22", path = "crates/mcp-types" } -mcp-client = { version = "=1.0.22", path = "crates/mcp-client" } -mcp-session = { version = "=1.0.22", path = "crates/mcp-session" } -mcp-tools = { version = "=1.0.22", path = "crates/mcp-tools" } -mcp-model-registry = { version = "=1.0.22", path = "crates/mcp-model-registry" } -mcp-acceleration-products = { version = "=1.0.22", path = "crates/mcp-acceleration-products" } +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" } # Testing mockall = "0.15" diff --git a/package.json b/package.json index bd72c67..9c3f1a9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@contextstream/mcp-server", "mcpName": "io.github.contextstream/mcp-server", - "version": "1.0.22", + "version": "1.0.23", "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 344b324..0902bf7 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.22", + "version": "1.0.23", "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.22", + "version": "1.0.23", "transport": { "type": "stdio" },