From 6d2cc32025fc6bdf0913bce95f99783aa4f86c89 Mon Sep 17 00:00:00 2001 From: maki maki Date: Thu, 12 Nov 2026 14:14:53 +0800 Subject: [PATCH 1/3] docs(changelog): 0.11.0-rc.1 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 56 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93f38c54c..252644440 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,55 @@ breaking. ## [Unreleased] -## [0.10.1] - Unreleased +## [0.11.0-rc.1] - 2026-11-12 + +Release candidate. Mimi's notice system phase 2 and the settings rework have not +been verified on a real device yet. + +### Changed (breaking) + +- Mimi follow-ups are now schedule rules in the notice rule table. On first + start the old `follow-ups.json` store and its scheduled jobs are removed; + existing follow-ups are not migrated. + +### Added + +- Mimi notices for Codex / Claude Code sessions run by the desktop and for + sub-agents: `NotifyMe`, `ReportToMimi`, completion outcomes, and approvals and + questions answerable over IM. Codex permission approvals now grant the + requested permissions for the turn (previously "allow" granted nothing). +- Owners answer IM prompts in their own words: replies are interpreted by a + model, checked by the host, and never parsed with fixed commands. Goal pauses, + limit stops and failures can be continued, stopped, retried or handed to Mimi + from IM, and finished results can be opened on the desktop. +- Recurring follow-ups, morning and evening briefs, a heartbeat, fixed digest + slots and "not now" deferral, all as rules on one scheduler (briefs and + heartbeat off by default). +- Mimi settings page with sections; IM channel binding moved into Mimi settings; + one trigger list to pause, resume or delete every rule. +- Mimi tools `Notices`, `Triggers`, `ManageTrigger` and `NotificationSettings` + (including a temporary snooze), available only in the owner's own turns. +- External providers as defaults for new chats and WeChat; local usage provider + discovery with independent quota queries; bounded Anthropic native tool + discovery. + +### Changed + +- Follow-up reminders, `ReportToMimi` replies and `WatchSession` go through the + notice router, so quiet hours and rate limits apply. +- Tool schemas are frozen per session and discovery results are appended; + unified usage reporting; a more stable question composer. +- Faster cron next-occurrence search; at the DST fall-back, fixed-time + expressions fire once. + +### Fixed + +- Goal lifecycle authority and remote Goal controls; Goal tool eligibility and + session routing; Claude tool caching through OpenRouter; mixed native + references in complex schemas; external runtime workspace switching; removed + synchronous history scans from send and maintenance. + +## [0.10.1] - 2026-11-11 ### Fixed @@ -19,12 +67,6 @@ breaking. files cannot invalidate a previously signed target. Preserve the signing order and Node integrity checks, and strictly verify the helper executable. -### Release status - -- This patch is prepared but has not been published. The failed `v0.10.0` release - attempt did not create a GitHub Release and skipped npm publishing; its existing - tag remains unchanged. - ## [0.10.0] - 2026-11-11 ### Changed (breaking) From 3e1399cabcca0cca2dd6f499714b2016bc04e37f Mon Sep 17 00:00:00 2001 From: maki maki Date: Thu, 12 Nov 2026 14:14:56 +0800 Subject: [PATCH 2/3] chore: release 0.11.0-rc.1 --- bun.lock | 24 ++++++++++++------------ package.json | 2 +- packages/browser-devtools/package.json | 2 +- packages/chat/package.json | 2 +- packages/coding/package.json | 2 +- packages/core/package.json | 2 +- packages/core/src/version.ts | 2 +- packages/desktop/package.json | 2 +- packages/host/package.json | 2 +- packages/link/package.json | 2 +- packages/optimization-lab/package.json | 2 +- packages/pet/package.json | 2 +- packages/server/package.json | 2 +- packages/tui/package.json | 2 +- packages/web/package.json | 2 +- 15 files changed, 26 insertions(+), 26 deletions(-) diff --git a/bun.lock b/bun.lock index 8154a2f03..44c020a15 100644 --- a/bun.lock +++ b/bun.lock @@ -27,11 +27,11 @@ }, "packages/browser-devtools": { "name": "@cjhyy/code-shell-browser-devtools", - "version": "0.10.1", + "version": "0.11.0-rc.1", }, "packages/chat": { "name": "@cjhyy/code-shell-chat", - "version": "0.10.1", + "version": "0.11.0-rc.1", "bin": { "code-shell-chat": "./dist/cli.js", }, @@ -54,14 +54,14 @@ }, "packages/coding": { "name": "@cjhyy/code-shell-capability-coding", - "version": "0.10.1", + "version": "0.11.0-rc.1", "dependencies": { "@cjhyy/code-shell-core": "workspace:*", }, }, "packages/core": { "name": "@cjhyy/code-shell-core", - "version": "0.10.1", + "version": "0.11.0-rc.1", "bin": { "code-shell-output-journal": "./dist/cli/output-journal-repair.js", }, @@ -94,7 +94,7 @@ }, "packages/desktop": { "name": "@cjhyy/code-shell-desktop", - "version": "0.10.1", + "version": "0.11.0-rc.1", "dependencies": { "@cjhyy/code-shell-capability-coding": "workspace:*", "@cjhyy/code-shell-capability-optimization-lab": "workspace:*", @@ -161,18 +161,18 @@ }, "packages/host": { "name": "@cjhyy/code-shell-host", - "version": "0.10.1", + "version": "0.11.0-rc.1", "dependencies": { "@cjhyy/code-shell-core": "workspace:*", }, }, "packages/link": { "name": "@cjhyy/code-shell-link", - "version": "0.10.1", + "version": "0.11.0-rc.1", }, "packages/optimization-lab": { "name": "@cjhyy/code-shell-capability-optimization-lab", - "version": "0.10.1", + "version": "0.11.0-rc.1", "dependencies": { "@cjhyy/code-shell-core": "workspace:*", "zod": "^3.24.2", @@ -180,14 +180,14 @@ }, "packages/pet": { "name": "@cjhyy/code-shell-pet", - "version": "0.10.1", + "version": "0.11.0-rc.1", "dependencies": { "@cjhyy/code-shell-core": "workspace:*", }, }, "packages/server": { "name": "@cjhyy/code-shell-server", - "version": "0.10.1", + "version": "0.11.0-rc.1", "bin": { "code-shell-serve": "./dist/bin/code-shell-serve.js", "code-shell-settings-recovery": "./dist/bin/code-shell-settings-recovery.js", @@ -207,7 +207,7 @@ }, "packages/tui": { "name": "@cjhyy/code-shell-tui", - "version": "0.10.1", + "version": "0.11.0-rc.1", "bin": { "code-shell": "./dist/cli/main.js", }, @@ -244,7 +244,7 @@ }, "packages/web": { "name": "@cjhyy/code-shell-web", - "version": "0.10.1", + "version": "0.11.0-rc.1", "dependencies": { "@cjhyy/code-shell-core": "workspace:*", "@cjhyy/code-shell-link": "workspace:*", diff --git a/package.json b/package.json index 8d55c3a93..e4fdb756d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "Code Shell — meta package. Installs @cjhyy/code-shell-core and @cjhyy/code-shell-tui.", "type": "module", "packageManager": "bun@1.3.11", diff --git a/packages/browser-devtools/package.json b/packages/browser-devtools/package.json index 0757cc3dc..b5a3e1835 100644 --- a/packages/browser-devtools/package.json +++ b/packages/browser-devtools/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-browser-devtools", - "version": "0.10.1", + "version": "0.11.0-rc.1", "private": true, "description": "Host-independent bounded browser diagnostics through an injected page surface.", "type": "module", diff --git a/packages/chat/package.json b/packages/chat/package.json index 57ecf0937..38df62e2a 100644 --- a/packages/chat/package.json +++ b/packages/chat/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-chat", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "A standalone, transport-agnostic multi-channel chat gateway for Node.js and Bun.", "type": "module", "main": "./dist/index.js", diff --git a/packages/coding/package.json b/packages/coding/package.json index 3f2f0fe04..4bb524208 100644 --- a/packages/coding/package.json +++ b/packages/coding/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-capability-coding", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "Coding capability pack for the generic code-shell agent core.", "type": "module", "main": "./dist/index.js", diff --git a/packages/core/package.json b/packages/core/package.json index 227ec3ffb..db634dd44 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-core", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "Core engine for code-shell — agent orchestration, tool execution, hooks, protocol. UI-agnostic.", "type": "module", "main": "./dist/index.js", diff --git a/packages/core/src/version.ts b/packages/core/src/version.ts index 3030a5160..245e0fbda 100644 --- a/packages/core/src/version.ts +++ b/packages/core/src/version.ts @@ -1,2 +1,2 @@ /** Release-managed runtime version; safe to import without loading public SDK exports. */ -export const VERSION = "0.10.1"; +export const VERSION = "0.11.0-rc.1"; diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 8a2f65bd8..f80a78bb8 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-desktop", - "version": "0.10.1", + "version": "0.11.0-rc.1", "private": true, "license": "MIT", "description": "Electron desktop client for CodeShell — the full desktop agent app.", diff --git a/packages/host/package.json b/packages/host/package.json index 594c5d2eb..dae5a4c21 100644 --- a/packages/host/package.json +++ b/packages/host/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-host", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "Host-neutral capability registry and worker request dispatch for CodeShell hosts.", "type": "module", "main": "./dist/index.js", diff --git a/packages/link/package.json b/packages/link/package.json index 6cabcef08..65d341957 100644 --- a/packages/link/package.json +++ b/packages/link/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-link", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "Framework-independent provider manifests and authorization guides for CodeShell Link.", "type": "module", "main": "./dist/index.js", diff --git a/packages/optimization-lab/package.json b/packages/optimization-lab/package.json index 80c65ff98..cb178fb8e 100644 --- a/packages/optimization-lab/package.json +++ b/packages/optimization-lab/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-capability-optimization-lab", - "version": "0.10.1", + "version": "0.11.0-rc.1", "private": true, "description": "Optimization Lab capability for CodeShell — budgeted, reviewable Skill optimization experiments.", "type": "module", diff --git a/packages/pet/package.json b/packages/pet/package.json index bcf9fdd0d..fd0e87df4 100644 --- a/packages/pet/package.json +++ b/packages/pet/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-pet", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "Pet (top-level personal assistant) capability for CodeShell — projection state machine, DelegateWork contract, Mimi behavior profile.", "type": "module", "main": "./dist/index.js", diff --git a/packages/server/package.json b/packages/server/package.json index 95f0e6a7f..40da31ab4 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-server", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "CodeShell server transport layer — mobile remote HTTP/WS host, pairing, passcode gate, tunnel, rooms, uploads, and session/attachment services. Electron-free; precursor of the auth gateway.", "type": "module", "main": "./dist/index.js", diff --git a/packages/tui/package.json b/packages/tui/package.json index 631cf0dbc..b4c906fa0 100644 --- a/packages/tui/package.json +++ b/packages/tui/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-tui", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "Terminal UI for code-shell — Ink-based REPL on top of @cjhyy/code-shell-core.", "license": "MIT", "repository": { diff --git a/packages/web/package.json b/packages/web/package.json index 3c6ac4445..f40f6f2a6 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@cjhyy/code-shell-web", - "version": "0.10.1", + "version": "0.11.0-rc.1", "description": "CodeShell browser client — reusable state, stream reducers, reconnecting WebSocket and authorization helpers, plus the full web/app SPA built to dist-app for Server hosting and reused by Desktop mobile. Browser-only; no Electron or Node runtime.", "type": "module", "main": "./dist/index.js", From c9469de18dad30aed06e8b86fcee6f92649c5b67 Mon Sep 17 00:00:00 2001 From: maki maki Date: Thu, 12 Nov 2026 15:09:43 +0800 Subject: [PATCH 3/3] fix(desktop): NSIS acceptance accepts rc and beta release versions The production NSIS check only allowed X.Y.Z, so a release candidate (0.11.0-rc.1) failed the desktop native smoke. Accept the same grammar scripts/release.ts produces: X.Y.Z, X.Y.Z-rc.N, X.Y.Z-beta.N. Co-Authored-By: Claude Opus 5.5 --- packages/desktop/scripts/windows-nsis-acceptance.mjs | 3 ++- .../desktop/scripts/windows-nsis-acceptance.test.mjs | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/desktop/scripts/windows-nsis-acceptance.mjs b/packages/desktop/scripts/windows-nsis-acceptance.mjs index d1590a2b4..275fcae85 100644 --- a/packages/desktop/scripts/windows-nsis-acceptance.mjs +++ b/packages/desktop/scripts/windows-nsis-acceptance.mjs @@ -58,7 +58,8 @@ export function assertProductionNsis(pkg) { assert.equal(pkg.build.appId, NSIS_IDENTITY.appId); assert.equal(pkg.build.productName, NSIS_IDENTITY.product); assert.equal(pkg.name, "@cjhyy/code-shell-desktop"); - assert.match(pkg.version, /^\d+\.\d+\.\d+$/); + // Same grammar as scripts/release.ts: X.Y.Z, X.Y.Z-rc.N or X.Y.Z-beta.N. + assert.match(pkg.version, /^\d+\.\d+\.\d+(?:-(?:rc|beta)\.\d+)?$/); assert.deepEqual(pkg.build.win.target, ["nsis"]); assert.equal(pkg.build.directories.buildResources, "build"); assert.deepEqual(pkg.build.nsis, { diff --git a/packages/desktop/scripts/windows-nsis-acceptance.test.mjs b/packages/desktop/scripts/windows-nsis-acceptance.test.mjs index 44eb02693..5b23be3a4 100644 --- a/packages/desktop/scripts/windows-nsis-acceptance.test.mjs +++ b/packages/desktop/scripts/windows-nsis-acceptance.test.mjs @@ -337,6 +337,16 @@ test("the committed production NSIS settings remain intact and reject unreviewed const associations = clone(pkg); associations.build.fileAssociations = [{ ext: "owned" }]; assert.throws(() => assertProductionNsis(associations)); + for (const version of ["1.2.3", "1.2.3-rc.4", "1.2.3-beta.1"]) { + const copy = clone(pkg); + copy.version = version; + assert.equal(assertProductionNsis(copy), `code-shell-Setup-${version}.exe`); + } + for (const version of ["1.2", "1.2.3-alpha.1", "1.2.3-rc", "1.2.3 ", "1.2.3-rc.1;x"]) { + const copy = clone(pkg); + copy.version = version; + assert.throws(() => assertProductionNsis(copy)); + } }); test("direct Node vectors preserve silent current-user/raw final tails without a shell", () => {