diff --git a/apps/desktop/runtimes/claude/README.md b/apps/desktop/runtimes/claude/README.md index 8d374142..f7d7de79 100644 --- a/apps/desktop/runtimes/claude/README.md +++ b/apps/desktop/runtimes/claude/README.md @@ -1,7 +1,7 @@ # Claude runtime This private installation manifest pins the published Claude ACP adapter to -`0.88.0`, using its official Claude Agent SDK dependency `0.3.293`. All eight +`0.89.1`, using its official Claude Agent SDK dependency `0.3.293`. All eight SDK native packages are locked to `0.3.293` too. `baseline.json` records the complete production graph and published runtime hashes. There is no SDK override or local runtime patch; `patches.json` is empty. @@ -36,7 +36,7 @@ https://github.com/agentclientprotocol/claude-agent-acp/pull/1006, so the runtim no longer carries a TaskList patch. The TaskList contracts remain as regression coverage for the published implementation. -ACP `0.88.0` supplies Claude Code `2.1.293`. Its model catalog exposes Sonnet 5.5 +ACP `0.89.1` supplies Claude Code `2.1.293`. Its model catalog exposes Sonnet 5.5 and Haiku 5.5 under the official `sonnet` and `haiku` aliases. NeverWrite's chat selector uses the model options returned by ACP; the native CLI resolves these aliases to `claude-sonnet-5-5` and `claude-haiku-5-5` on provider requests. @@ -80,11 +80,11 @@ The `0.81.2` update keeps the same production dependency graph. Its published JavaScript changes the ACP agent, exit-plan handling, and native subagent runtime; the runtime baseline records those three new file hashes. -The `0.88.0` baseline comes from published tag commit -`d43fec3fa3118e88ff8a8ed99b85d2a5f444e538`. It includes ACP SDK `1.7.0`, +The `0.89.1` baseline comes from published tag commit +`4e1fc1e8df2b9af3b1b2d6880ba90c5862283ba8`. It includes ACP SDK `1.8.0`, Claude Agent SDK `0.3.293`, the resolved Anthropic SDK peer `0.132.1`, `diff` -`9.0.0` and `zod` `4.6.5`. It records all 72 published JavaScript modules, -including the MCP command, turn events and expanded draft ACP v2 surface, +`9.0.0` and `zod` `4.6.5`. It records all 86 published JavaScript modules, +including the MCP command, turn events, AIR session index and draft ACP v2 surface, and the complete locked production dependency graph. ### Updating the runtime @@ -161,6 +161,16 @@ sessions. The runtime remains unmodified, with no local patches or SDK overrides In `0.88.0`, the adapter updates Claude Agent SDK and all eight native packages to `0.3.293`. ACP SDK stays at `1.7.0`; NeverWrite continues using ACP v1 and the published Sonnet model alias without enabling additional client capabilities. +In `0.89.0`, ACP SDK moves to `1.8.0`, and logout recreates live sessions when +it clears provider or gateway routing. Message forwarding yields to the event +loop under load, and repeated file diffs reuse a bounded cache. AIR custom +instructions and the session index are opt-in; NeverWrite sends no AIR custom +instructions metadata, does not negotiate the index and continues using its own +history. The experimental ACP v2 error, cancelled-tool and setup-command changes +remain outside its ACP v1 integration. +The `0.89.1` fixes for renamed-session subscriptions and session-list pagination +apply to that opt-in AIR index. Claude Agent SDK and all native packages remain +at `0.3.293`, with no local patches or SDK overrides. The push-only authStatus, goal, AIR session-failure and JetBrains file-audit extensions remain outside the current client integration. NeverWrite's own diff --git a/apps/desktop/runtimes/claude/baseline.json b/apps/desktop/runtimes/claude/baseline.json index 1eea6333..8cf953ab 100644 --- a/apps/desktop/runtimes/claude/baseline.json +++ b/apps/desktop/runtimes/claude/baseline.json @@ -1,27 +1,27 @@ { - "version": "0.88.0", - "upstreamCommit": "d43fec3fa3118e88ff8a8ed99b85d2a5f444e538", + "version": "0.89.1", + "upstreamCommit": "4e1fc1e8df2b9af3b1b2d6880ba90c5862283ba8", "normalization": "Trim trailing whitespace on each line and terminate with one newline.", "runtimeFiles": { - "dist/acp-agent.js": "24ba34df4e0e7970320372c2172c706ab2f7ff8ec3c3943c0dc67e87973530e3", + "dist/acp-agent.js": "4c2ad5288f484b70a901ec6954d93eff3abc4d4cc95507f97c37bc9f96549e67", "dist/acp-subagents.js": "aeb9fca26d4118bd20bb4661fb8311259b62ce332b131fa47e54f745cab09156", - "dist/air-extension.js": "13a10873bc6e3750fcd6aa9cd633cded65b38a1209719d0aa0272c0ce2215d2e", + "dist/air-extension.js": "69875f9340c9a7b2547c4200eee8b36eb5362877706dece4b6b786a6635e21dc", "dist/async-tasks.js": "e459b0b24d6cd6a17ab2c289a37c1e6ed634d43c7e840919c5efb52cfc96891a", "dist/auth-status.js": "0cc5054336b3849cf5987f01e296dece1ecaeb023f236d6698780f6a42cbb24a", "dist/clear-context-coordinator.js": "c388c199e2a04591bb54a6df7018861b52ef9fea222768cf07f6e6b7b11735e0", "dist/context-compaction-meta.js": "072320ff55f285e36ddef677ba6328835c34ef9c5ed2afcd648cf066d3fbdae6", "dist/context-compaction.js": "345fe4cd3970bd7acddb6156b384310c82144c07209866c306802bb7f27368ab", - "dist/diff.js": "2ed5f1e2e0da1736deb7b6a041899672c951ee924a0a716794ba27c9c13424f9", + "dist/diff.js": "ef49f95a49cb2d45dac67984408850ed56dcd659c47149299f0221c7c5401cfb", "dist/elicitation.js": "5bf7ad25cd4e70090ef8cb3186ca17028b7ee5213f16d05122446882df420a36", "dist/exit-plan.js": "87c78428f2bd3ce73e7f6c8b0476a4b46984db8b43580393124807b219c7122b", "dist/file-change-audit.js": "716c24e6b6fb289dfc3ecf98c2d9832ecaafe7c3e24b169d44ef4148aaae9527", "dist/fork-session.js": "70da6567b5d9f76dedef4aa02dc1c53e4bdb5e7f4bc28e374d1ad680e6287c2a", "dist/goal-extension.js": "822a8e90ac4eaf4b7ffb866abd3de531498e9c9a5ad72ec582dc232e814cbb1a", - "dist/hide-claude-auth.js": "6fcd554c58bc380efe11896337cd8c104ecd7f072111d82daf46941160cfb827", + "dist/hide-claude-auth.js": "f40b3bb1ddf782f81b485cf1b199a64a1cdc23d6099ca44569b3db9ef3081edd", "dist/index.js": "4a1f0fff5cdd26b8c9adb5f9b3d314640e06f876cfff97cac437159b4551ec27", "dist/lib.js": "a39ff2411f35100442ba9092fe9628ab551f470bfa5d672969d349e376a85e02", "dist/managed-policy.js": "7371dcd3aa94c29b72061521269b5cbe3473ca8e838dc32e303bc2b7f22d5756", - "dist/mcp-command.js": "f6b751f317a34aaba07fa6639ca0c33f1cf38c51b29e48c7e963e9267bf9855a", + "dist/mcp-command.js": "0e7d482e38c95621da65ffcb16cb183867c799f3443d9bab82f74f556f788042", "dist/native-subagents.js": "b4e65a57eacd03509f49fb91fe3b27f132fa6e2509e3ecb91d84e22e62eed306", "dist/paths.js": "bfb69caad5d450788eba632e0046cfdd66c2f8b2631286c9457e20844886c879", "dist/permissions/effects.js": "f2d2ce76f2012b6062ad565b079c2078ae4dbf9282f505876ff38313c521745b", @@ -39,11 +39,25 @@ "dist/session-config-ids.js": "24148e79435afabd7e3c6cf4f8bf5d3c16c7887b97f172cd507de60f19ec551d", "dist/session-effort.js": "73b21951b7e1dc3baa9aa6861221d7e136bebb4efc8133941d97bd004f9069fc", "dist/session-failure-extension.js": "79661ca0cbd893849d0610e5ed730c903117139d319ee010a4a851844028a068", + "dist/session-index/activity.js": "58ce567131b85e0749dbf23fd99c47ce895f92f90859dd08307eafe07a4d0cd2", + "dist/session-index/archive-title.js": "048af1cf5985f69780931715a8301f4180a3de3eef6b3584b674d08f9daca6f3", + "dist/session-index/connection.js": "fdf8f844ec41fbef7b00ebfa794a23784fb7e0e569edd53f24290fdadf637ab6", + "dist/session-index/dir-listing.js": "754505218d82676aa85bac20daf9eb4b3726540a65b91fd5c9911fd9d85587f0", + "dist/session-index/explicit-title.js": "9c82645871dbcfa1f95ba5e477a8ce332b10277138c6c4444bfa9c41598e247a", + "dist/session-index/first-prompt.js": "fd36ea4e9616eb9594d4864dece0fc0acb701c10eb25049b39aafb04415d5078", + "dist/session-index/list-subscriptions.js": "bd76ce014c20a0bf612b0af97ae580196020cf8bf2ecaddb668dada900ee682f", + "dist/session-index/live-registry.js": "e4c72794ed6b007932ca9a51957517004ec1695b356363406d2baf8d816b7452", + "dist/session-index/project-dirs.js": "48e4190cbd2d4b42d4da06dc0082801efc35bb537b7fe7e838c89b4fdcec65f4", + "dist/session-index/service.js": "5e95f39d64b29744a71ea94ffd203d33e3eacd61ac2e85fddcb6e7b665fec034", + "dist/session-index/session-index.js": "339a97d180a7d1f1eb7df2fb346396e5702480dd9c994e7845943b783098772d", + "dist/session-index/session-info.js": "09f3580bfb722d83d7e7d61bea04ddf2255bcf70bcccd7cc48cd116740950a40", + "dist/session-index/transcript-scan.js": "eee6c8808fffd9df8c6389b85c68f458449aa8f6cd77b82ad9f9c92a2a473664", + "dist/session-index/worktrees.js": "8b662c574081e3e288bfd3850f3bf322daffb8dc08391062095c74664da268eb", "dist/session-mode.js": "169095da66c8ce7e00d1975830c158acf3f1ffba267c20027d374c74b2df5614", "dist/session-model.js": "b54f68d0a26e279729bc7761c8fa4ac21bb918f9d3a4e865e48f8d101b01f310", "dist/session-notices.js": "e538588d8a0b0cf09e3d411348c5a488663c3b2eedc1a936eb485e08fc62c5d4", "dist/session-timing.js": "7bf1567850d05094c1313295efd404b5cceb90d4251c5357387b8841bca4819f", - "dist/session-titles.js": "a78f6ed7e85193fbb0ebc97b37c0adde70d1000eac94e70e310e75dd580e079a", + "dist/session-titles.js": "f240005fcf400e167ecf3c043d055c6bf48f2855a0d3704d08cd30ac8fd10771", "dist/settings.js": "24781de56455b0dbff4c142a951d2c91b0f57b142870b48e0022f494444c273e", "dist/subagent-history.js": "5f1156fbf6a2bb24fe3ef5a70ab46827e748aaf8e8cbd505494ac8d937bc36ba", "dist/tool-calls/background.js": "2d48c89c864fa5f460094055aca0a18e4539bc5337c45a7546721132c9f2e283", @@ -52,7 +66,7 @@ "dist/tool-calls/content.js": "51a91f15420e50de2a380f4c6fd966e8f5f3c11f6a30ae1ed84e682a806c4ca4", "dist/tool-calls/facts.js": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881", "dist/tool-calls/field-tracker.js": "d39ff27d4d3594b187ff37a3f69c6d2955da2c766962dc81b5755fb5681e8132", - "dist/tool-calls/renderer.js": "e04395108a8a36afba1306d38ade2446ca9e5e01a8b3c560b42f17e8d36078b1", + "dist/tool-calls/renderer.js": "8e1982fa052f1f76fe0f29249ed20ba0a18711df3d926e1f8e72408e031668b1", "dist/tool-calls/reporters/agent.js": "7d63619e553778984d57e348fbecd9a261030d3db029856b81d1eca1f8a7089f", "dist/tool-calls/reporters/bash.js": "11a563127796ccf37db1aa01088b029fe54eacb109f89fd98a06f24d7b2518b5", "dist/tool-calls/reporters/compaction.js": "6724c5b0ac51ea929f19dc61645a0433fb5b90ced5e45ea4a676ad4986a26454", @@ -62,15 +76,15 @@ "dist/tool-calls/reporters/read.js": "441c25e731108a1d2acf8f18f11ee4eee25762068053094c2f35cd0426be6972", "dist/tool-calls/reporters/search.js": "71589da441e4f469dd5dc8f5d38fda6a46eccd2114193604de804803f7621f16", "dist/tool-calls/reporters/web.js": "fee06cbd0d4e0d6dcc6a6b68d723d497f92069aed9f4f932b963d5f661b41525", - "dist/tool-result-meta.js": "2c3301104d4b4066244631a0c52cdd0f7e99b5d3189d2318762ee88110f6c0a9", + "dist/tool-result-meta.js": "61478ed639594bfa147b7d5641e79bca114f3d0f7e75629ffd0575994c7e7199", "dist/tools.js": "d8c51a3f0cff5086cb6ee2c2caafe8d23bf263b33eb817847621369c5b7842d9", "dist/turn-events.js": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881", "dist/usage-markdown.js": "3ba0b12c5232321876bf7757ef6c733538b373ef50d2bd905aa5b88b30af545e", - "dist/utils.js": "e31dbf52fff4a8eae598e4ad554f6ca8429264730cf6bb9eefb07291497f42bb", - "dist/v2/agent.js": "9f0d2361eedc08547bde6d75653871da6031374347d95cbe7a3b7a6f8b1f4c2e", + "dist/utils.js": "98a27da0e933c49006025a6f60723ecaaf4db5137106b18c74a0c7204ea49bfa", + "dist/v2/agent.js": "8d8987707969977942bf79e367842d15c9cc3b48c7dd63e019ab171c8b304881", "dist/v2/initialize.js": "ee2ebe4771d76764fae6f99805665715a3ad20f1867fda0259d031145e9e74cf", "dist/v2/permission.js": "46d72c21a5ea84277a3812039300561d4c4aeb90fa44222e370e9f77a08ead52", - "dist/v2/prompt.js": "a83e2160f505a14647bdd4ecc92e9891ac840c48dab5e633c5a88dbfe3b8e2d3", + "dist/v2/prompt.js": "7908b6464dc8d09a00be26411f9a8133a51473ef64d077280c6eecdcde2f2a0b", "dist/v2/session-update.js": "8c3bc6eb39f33a42a20b8fa67ec1a743bf2fc72c66bb823d9a9cde7e8990fbd0", "dist/v2/session.js": "3778b11b4c699441bf28472e6134ae0ad99a5955a68adbdcd99d67788803742d", "dist/v2/terminal.js": "d5b9fbc8e8cad4d8e48cc13c9c53c801b546f26036043bde0ce44c8841c22fd9", @@ -78,8 +92,8 @@ }, "productionPackages": { "node_modules/@agentclientprotocol/sdk": { - "version": "1.7.0", - "integrity": "sha512-ZORuxsuEnLjRly7t6Ad7zAsWitjWsyprswyPUHz/yycPb+tTm3DGa8XheaHhRXqX8LS9snuxaYavXSRA50TlHw==" + "version": "1.8.0", + "integrity": "sha512-fbP7qHZsFyTJVT0/RPrcWJ8An26qLXHEuGCHHEKDyxD1xpXV+Ejyh2LAE6vBAFePkpVjZeeohnbgvuEhZ7wLMg==" }, "node_modules/@anthropic-ai/claude-agent-sdk": { "version": "0.3.293", diff --git a/apps/desktop/runtimes/claude/package-lock.json b/apps/desktop/runtimes/claude/package-lock.json index 1a313852..5d6f6c0e 100644 --- a/apps/desktop/runtimes/claude/package-lock.json +++ b/apps/desktop/runtimes/claude/package-lock.json @@ -6,16 +6,16 @@ "": { "name": "neverwrite-claude-runtime", "dependencies": { - "@agentclientprotocol/claude-agent-acp": "0.88.0" + "@agentclientprotocol/claude-agent-acp": "0.89.1" } }, "node_modules/@agentclientprotocol/claude-agent-acp": { - "version": "0.88.0", - "resolved": "https://registry.npmjs.org/@agentclientprotocol/claude-agent-acp/-/claude-agent-acp-0.88.0.tgz", - "integrity": "sha512-o2bfN6S47wHTV7US/0SrDguCQVs7RhgSwA5CzC37oeDvcXTfHJFTlAquglEybIMQXwSk1zYda5Wxa0F17pOlnA==", + "version": "0.89.1", + "resolved": "https://registry.npmjs.org/@agentclientprotocol/claude-agent-acp/-/claude-agent-acp-0.89.1.tgz", + "integrity": "sha512-t1k8YPDvo/zUghL3x2pFs40tWfYTLhYmK8jt37CVBpY7eq1Ztj2hLZBAmy9ZX++tUyJaGfuuMrzvJGvU9tjBsg==", "license": "Apache-2.0", "dependencies": { - "@agentclientprotocol/sdk": "1.7.0", + "@agentclientprotocol/sdk": "1.8.0", "@anthropic-ai/claude-agent-sdk": "0.3.293", "diff": "9.0.0", "zod": "4.6.5" @@ -28,9 +28,9 @@ } }, "node_modules/@agentclientprotocol/sdk": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.7.0.tgz", - "integrity": "sha512-ZORuxsuEnLjRly7t6Ad7zAsWitjWsyprswyPUHz/yycPb+tTm3DGa8XheaHhRXqX8LS9snuxaYavXSRA50TlHw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@agentclientprotocol/sdk/-/sdk-1.8.0.tgz", + "integrity": "sha512-fbP7qHZsFyTJVT0/RPrcWJ8An26qLXHEuGCHHEKDyxD1xpXV+Ejyh2LAE6vBAFePkpVjZeeohnbgvuEhZ7wLMg==", "license": "Apache-2.0", "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" diff --git a/apps/desktop/runtimes/claude/package.json b/apps/desktop/runtimes/claude/package.json index 64d83ef8..ed5fe770 100644 --- a/apps/desktop/runtimes/claude/package.json +++ b/apps/desktop/runtimes/claude/package.json @@ -2,6 +2,6 @@ "name": "neverwrite-claude-runtime", "private": true, "dependencies": { - "@agentclientprotocol/claude-agent-acp": "0.88.0" + "@agentclientprotocol/claude-agent-acp": "0.89.1" } } diff --git a/apps/desktop/scripts/claude-upstream-watch.test.mjs b/apps/desktop/scripts/claude-upstream-watch.test.mjs index 3d68b974..f73fbed5 100644 --- a/apps/desktop/scripts/claude-upstream-watch.test.mjs +++ b/apps/desktop/scripts/claude-upstream-watch.test.mjs @@ -5,9 +5,9 @@ import { readPinnedClaudeVersion, parseSemver, compareSemver } from "../../../sc test("watcher reads the dependency version, not the private package version", async () => { const manifest = JSON.parse(await fs.readFile(new URL("../runtimes/claude/package.json", import.meta.url), "utf8")); - assert.equal(readPinnedClaudeVersion({ ...manifest, version: "9.0.0" }), "0.88.0"); - assert.equal(compareSemver(parseSemver("v0.88.0"), parseSemver(readPinnedClaudeVersion(manifest))), 0); - assert.equal(compareSemver(parseSemver("v0.88.1"), parseSemver(readPinnedClaudeVersion(manifest))), 1); + assert.equal(readPinnedClaudeVersion({ ...manifest, version: "9.0.0" }), "0.89.1"); + assert.equal(compareSemver(parseSemver("v0.89.1"), parseSemver(readPinnedClaudeVersion(manifest))), 0); + assert.equal(compareSemver(parseSemver("v0.89.2"), parseSemver(readPinnedClaudeVersion(manifest))), 1); }); test("watcher rejects floating, preview and missing runtime pins", () => {