Skip to content
Open
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
56 changes: 49 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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)
Expand Down
24 changes: 12 additions & 12 deletions bun.lock

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

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/browser-devtools/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/chat/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/coding/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/version.ts
Original file line number Diff line number Diff line change
@@ -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";
2 changes: 1 addition & 1 deletion packages/desktop/package.json
Original file line number Diff line number Diff line change
@@ -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.",
Expand Down
3 changes: 2 additions & 1 deletion packages/desktop/scripts/windows-nsis-acceptance.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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, {
Expand Down
10 changes: 10 additions & 0 deletions packages/desktop/scripts/windows-nsis-acceptance.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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", () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/host/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/link/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/optimization-lab/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/pet/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/server/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion packages/tui/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
2 changes: 1 addition & 1 deletion packages/web/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
Loading