SDK-interface-focused release notes for the @moonshot-ai/kimi-code mirror tags,
written by the Botiverse maintainer (upstream is private and ships no public release
notes; the upstream app CHANGELOG.md covers the CLI/TUI, not the node-sdk interface).
Diff basis: the public surface of packages/node-sdk (entry src/index.ts) between
consecutive release tags. Bump the Slock pin only after reading the interface delta below.
The repackaged dist-only SDK is published to npm as @botiverse/kimi-code-sdk. Its version aligns with the upstream Kimi Code CLI release tag — when upstream cuts @moonshot-ai/kimi-code@X.Y.Z, we publish @botiverse/kimi-code-sdk@X.Y.Z.
| upstream CLI tag (mirror) | npm @botiverse/kimi-code-sdk@ |
|---|---|
@moonshot-ai/kimi-code@2.2.0 |
2.2.0-botiverse.0 (to publish; patch-branch patch-2.2.0-botiverse; node-sdk source 0.21.0; surface: KimiHarnessOptions.roleAdditional + KimiHarnessOptions.baseEnv, no LocalKaos — kaos is gone in 2.x) |
@moonshot-ai/kimi-code@0.34.0 |
0.34.0-botiverse.0 (current botiverse tag until 2.2.0-botiverse.0 ships; 2026-08-11; surface extension LocalKaos+Kaos + roleAdditional; patch-branch kai/trial-0.34.0-roleadditional; node-sdk source 0.15.3) |
| (rows below are BACKFILLED FROM NPM, dates only) | |
@moonshot-ai/kimi-code@0.33.0 |
0.33.0-botiverse.0 (2026-08-07) |
@moonshot-ai/kimi-code@0.28.1 |
0.28.1-botiverse.0 (2026-07-21) |
@moonshot-ai/kimi-code@0.28.0 |
0.28.0-botiverse.0 (2026-07-20) |
@moonshot-ai/kimi-code@0.26.0 |
0.26.0 (current latest; 2026-07-16; pure mirror) and 0.26.0-botiverse.1 / 0.26.0-botiverse.2 (2026-07-16) |
@moonshot-ai/kimi-code@0.23.5 |
0.23.5-botiverse.1 (2026-07-12) |
@moonshot-ai/kimi-code@0.20.1 |
0.20.1 (2026-06-27; 2026-06-27; pure mirror) and 0.20.1-botiverse.0 (2026-06-27; surface extension — LocalKaos + Kaos) and 0.20.1-botiverse.1 (new botiverse tag; 2026-07-07; surface extension LocalKaos+Kaos + roleAdditional main-agent system-prompt threading — compaction-safe standing prompt; patch-branch kai/0.20.1-botiverse-roleadditional) |
@moonshot-ai/kimi-code@0.20.0 |
0.20.0 (2026-06-26; pure mirror) and 0.20.0-botiverse.0 (2026-06-26; surface extension) |
@moonshot-ai/kimi-code@0.19.2 |
0.19.2 (2026-06-24; pure mirror) and 0.19.2-botiverse.0 (2026-06-24; surface extension — LocalKaos + Kaos) |
@moonshot-ai/kimi-code@0.19.1 |
(mirrored, not separately published — superseded by 0.19.2) |
@moonshot-ai/kimi-code@0.19.0 |
(mirrored, not separately published — superseded by 0.19.2) |
@moonshot-ai/kimi-code@0.18.0 |
0.18.0-botiverse.0 (2026-06-20; surface extension) |
@moonshot-ai/kimi-code@0.18.0 |
0.18.0 (2026-06-19; pre-extension pure) |
@moonshot-ai/kimi-code@0.17.1 |
0.17.1 (published 2026-06-18) |
@moonshot-ai/kimi-code@0.17.0 |
0.17.0 (published 2026-06-18) |
@moonshot-ai/kimi-code@0.16.0 |
0.16.0 (published 2026-06-17) |
@moonshot-ai/kimi-code@0.15.0 |
0.15.0 (published 2026-06-16) |
@moonshot-ai/kimi-code@0.14.3 |
(no separate publish) |
@moonshot-ai/kimi-code@0.14.2 |
0.9.3 (legacy — first npm publish, internal node-sdk version; superseded by 0.15.0) |
| (internal patch-bump experiment) | 0.9.4 (legacy — superseded by 0.15.0) |
Versioning policy (revised 2026-06-20, tygg #proj-runtime:96f626f3 msg=7db90df7): mirror-side changes that extend the published surface beyond what upstream node-sdk/src/index.ts exposes carry a -botiverse.<n> pre-release suffix on top of the upstream tag. Rule:
- Pure repackage (no surface change beyond
node-sdk/src/index.ts): mirror version = upstream CLI tag verbatim. Established in the original 2026-06-16 lock (tygg msgs=cb736b39 / 9cfb4824 / c1f01b13). - Mirror-side surface extension (e.g. re-exporting symbols upstream did not export, like
LocalKaos): mirror version =<upstream-tag>-botiverse.<n>sonpm install @botiverse/kimi-code-sdkdefaults to the pure mirror, and consumers must explicitly pin to the extended version (@0.18.0-botiverse.0) when they need the additional surface. This makes the mirror-side change visible in version metadata rather than silently shipping a different shape under the upstream tag's name. - Upstream doesn't release → we don't publish a pure repackage. We may still publish a
-botiverse.<n>pre-release against the most recent upstream tag if a mirror-side surface extension is needed.
Rationale: 1:1 alignment with the upstream tag is preserved as the default install target so consumers reading the upstream Kimi Code release notes get exactly the upstream-shape mirror. Mirror-side surface additions are deliberate Botiverse-side changes that should not pretend to be upstream — the pre-release suffix surfaces that distinction. Earlier 0.9.3 and 0.9.4 (which followed the internal node-sdk version) are deprecated on npm in favor of 0.15.0. The repackage-sdk.mjs script's npm-version-override arg is the mechanism for the suffix: pass 0.18.0-botiverse.0 when cutting an extended release.
To publish to dist-tag botiverse from patch-2.2.0-botiverse.
This is a breaking jump for consumers (0.34 -> 2.2, node-sdk 0.15.3 -> 0.21.0):
- The v1 engine is gone:
createKimiHarnessis now the agent-core-v2 harness (oldcreateKimiHarnessV2);SDKRpcClient(v1) is no longer exported. kaosis gone: noLocalKaos/Kaos.createSession({ kaos, persistenceKaos })is silently stripped.createSession/resumeSessionsilently ignoremcpServers(attach withsession.addMcpServer(...)after create/resume) and the old session-levelroleAdditional.- A prompt submitted while a turn runs is queued by the engine instead of rejected with
turn.agent_busy;prompt.*events are no longer delivered;task.*events are nowbackground.task.*; new eventsevent.config.warning,event.plugin.changed,event.capability.changed,subagent.cancelled. Events from subagents arrive with theiragentId(the main agent ismain).
Botiverse patch stack (on patch-2.2.0-botiverse): upstream cut 2.2.0 on its release line, which no branch here carries, so the branch starts with an import commit (8725c21c) whose tree is byte-identical to the tag (git diff @moonshot-ai/kimi-code@2.2.0 8725c21c is empty), parented on upstream-main; then 2 patch commits:
KimiHarnessOptions.baseEnv: base environment of every process the engine's host process service spawns (tool execution), in place ofprocess.env; per-call overrides still apply. ReplacesLocalKaos.create().withEnv(...).KimiHarnessOptions.roleAdditional: rendered into the main agent's${role_additional}(upstream renders it empty for the main agent); the system prompt is sent per request outside compressible history, so it survives compaction. On resume the main agent's prompt is re-rendered with the current value (IAgentProfileService.refreshSystemPrompt, no update recorded when unchanged). Subagent profiles keep their own role text (the 0.x patch overrode them).
Gates: repackage-sdk.mjs skips the LocalKaos rewrite for 2.x and fails closed when a -botiverse build has neither LocalKaos nor baseEnv; verify-mirror-surface.mjs / verify-roleadditional.mjs check the 2.x symbols. Negative control: plain upstream 2.2.0 fails all three (repackage refuses; 2/2 and 4/4 checks fail).
Published 2026-08-11 to dist-tag botiverse. latest deliberately unchanged (0.26.0).
shasum a247b30a008af43cd77ea0e4394efb91707d0ffb.
Upstream node-sdk interface delta (0.15.2 -> 0.15.3):
SessionInfo.lastTurnReason?: 'completed' | 'cancelled' | 'failed'— terminal outcome of the session's latest main turn, now persisted across server restarts, so a client can mark a previously-failed session before opening it (upstream PR #2666).export type { AgentCommandInfo }re-exported from@moonshot-ai/agent-core-v2— contributed commands are an agent-core-v2 seam; v1 sessions report an empty command set.- Subagent lifecycle events and background task info now carry the subagent's bound model and thinking effort (upstream PR #2679).
Mirror-side: unchanged patch stack — LocalKaos + Kaos surface extension, plus the
roleAdditional standing-prompt threading, resume re-render fix, and protocol-declaration
bundling, rebased onto 0.34.0. Only conflict when rebasing was the node-sdk version line.
Verification: this is the first release gated by verify-mirror-surface.mjs in CI — the
script existed since 0.18.0 but was invoked nowhere, so the assertions documented below were
never executed. It is now wired into publish-sdk.yml, and the job installs the repackaged
dist's peer deps first so its runtime import checks actually run instead of reporting skip.
Also added verify-roleadditional.mjs, asserting a -botiverse.* build really carries the
patch stack. Note it does not grep for the string roleAdditional: a build from plain
upstream 0.34.0 (no patch at all) still contains that string — 1 occurrence in index.d.mts,
9 in index.mjs — from the bundled dependency closure, and passes verify-mirror-surface
9/9. A presence check would therefore have gone green in exactly the case it exists to catch.
Both gates were proven to fail against a known-unpatched artifact (exit 1) before being
trusted on a good one (exit 0).
e2e (codeword + session.compact() survival): RUN, PASS. Against the published tarball
installed into a clean directory (not the source tree), live inference via a DeepSeek provider:
a sentinel codeword carried in roleAdditional was present both before and after compaction
(reply "ZANZIBAR-7731" on each side).
Compaction was verified to have actually occurred via compaction.started -> compaction.completed
events, not via session.compact()'s return value — that returns undefined here although the
declaration types it as Promise<boolean>. Without the event evidence the post-compaction assertion
would be vacuous: if no compaction ran, "post" is not post.
"Z", "AN", ...), so it never
appears contiguously in the event JSON — an assertion that greps the stream is always false and
reports a healthy artifact as broken. Run a trivial positive control (ask for PONG) first to
separate "the artifact is broken" from "my assertion is broken".
Botiverse-side behavior patch on top of 0.20.1-botiverse.0 (2026-07-07). Patch-branch kai/0.20.1-botiverse-roleadditional (SHA 12b24b09) stacked on the @moonshot-ai/kimi-code@0.20.1 tag; deleted once upstream lands.
Change: adds an optional roleAdditional on CreateSessionOptions / ResumeSessionInput, threaded through the rpc payloads (CreateSessionPayload/ResumeSessionPayload) → core Session (create + resume) → SessionOptions → bootstrapAgentProfile → the main agent's Agent.useProfile render call → {{ ROLE_ADDITIONAL }} in the base system prompt (the renderer already consumed context.roleAdditional; the useProfile call was silently dropping it — the fix wires that last hop). Rendered every request, outside compressible conversation history, so a standing role protocol survives context compaction. Subagent path untouched (they use their own promptVars.roleAdditional). Inherits the 0.20.1-botiverse.0 LocalKaos/Kaos surface extension.
Why: the Slock daemon Kimi-SDK driver injects a Raft standing prompt (CLI transport protocol + per-agent wrapper path). The prior first-turn injection was condensed away by Kimi compaction (agent forgot how to message Raft back). roleAdditional makes it compaction-safe.
Verification (publish-form gate): pnpm build → repackage-sdk.mjs --npm-version-override=0.20.1-botiverse.1 → npm pack → clean-dir npm install the tarball → live Kimi inference: sentinel codeword present pre AND post session.compact() (compactions=1). Confirms the fix is in the packaged artifact and survives compaction — not just in the monorepo source tree (a pnpm-patch-only fix does NOT reach published tarballs; this is why we cut a real -botiverse.1).
Slock consumer impact: additive over 0.20.1-botiverse.0. Daemon Kimi driver bumps its pin to 0.20.1-botiverse.1 and drops the interim root pnpm-patch (daemon 0.70.3).
Published 2026-06-27. Both variants shipped (OIDC pipeline, dry-run then real each):
0.20.1→latest(pure mirror).0.20.1-botiverse.0→botiversetag (addsLocalKaos+Kaosre-export).
node-sdk public interface vs 0.20.0: ADDITIVE — new KimiAuth feedback-upload surface. packages/node-sdk/src/auth.ts (+89) + src/index.ts (+6 re-exports), 0 deletions. New exported types/interfaces: KimiAuthCreateFeedbackUploadUrlInput, KimiAuthCreateFeedbackUploadUrlOk, KimiAuthCreateFeedbackUploadUrlResult, KimiAuthCompleteFeedbackUploadInput, KimiAuthCompleteFeedbackUploadPart, KimiAuthFeedbackUploadPart (+ re-exported FetchCompleteFeedbackUploadResult / FetchFeedbackUploadError); new KimiAuth methods createFeedbackUploadUrl / completeFeedbackUpload. exports / bin / runtime dependencies / types / engines byte-identical to 0.20.0 (only version); existing export shape unchanged. No breaking changes — purely additive. node-sdk internal version 0.10.0 → 0.10.1 (decoupled; published as 0.20.1 per align-with-CLI policy).
Slock consumer impact: drop-in additive. Default pnpm add @botiverse/kimi-code-sdk resolves to 0.20.1. Daemon Kimi-SDK driver currently pins 0.20.0-botiverse.0 (PR #3420); can bump to 0.20.1-botiverse.0 when convenient (additive surface, no code change required). The new feedback-upload surface is opt-in.
Published 2026-06-26. Both variants shipped (manual sync — auto-sync hit the SYNC_PAT workflow-scope gap when upstream changed its own .github/workflows/ci.yml; tygg msg=62c805dc "你先手动处理"). (RELEASES.md / GitHub Release backfilled 2026-06-27 alongside 0.20.1; npm publish itself was 2026-06-26.)
0.20.0→latest(pure mirror);0.20.0-botiverse.0→botiversetag (surface extension).
node-sdk public interface vs 0.19.2: NO detectable surface change. package.json public fields (exports / bin / runtime dependencies / types) + src/index.ts export surface identical to 0.19.2; implementation/bundle refresh only.
Slock consumer impact: drop-in. Daemon driver bumped 0.19.2-botiverse.0 → 0.20.0-botiverse.0 (PR #3420).
Published 2026-06-24. Both variants shipped this release (tygg "Pure mirror版本和repackage版本都发", #proj-runtime:a2c38238):
0.19.2→latest(pure mirror, upstream surface verbatim).0.19.2-botiverse.0→botiversetag (addsLocalKaos+Kaosre-export, identical extension to 0.18.0-botiverse.0).
node-sdk public interface: NO detectable surface change vs 0.18.0. The published package.json public fields (exports / bin / runtime dependencies / types) are byte-identical to 0.18.0 (only version differs); README unchanged; the repackage + LocalKaos surface-extract apply cleanly (no structural drift in the dist bundle's export tail or Kaos/LocalKaos declarations). This is an implementation/bundle refresh (0.18.0 → 0.19.0 → 0.19.1 → 0.19.2); upstream is a minified bundle so per-symbol behavioral diffs aren't enumerable from the tarball, but the exported SDK shape is unchanged. 0.19.0/0.19.1 were mirrored to the repo but not separately published (superseded by 0.19.2).
Slock consumer impact: drop-in. Default pnpm add @botiverse/kimi-code-sdk now resolves to 0.19.2 (was 0.18.0). Daemon Kimi-SDK driver currently pins 0.18.0-botiverse.0; it can bump to 0.19.2-botiverse.0 when convenient (same surface, refreshed bundle) — no code change required by the surface.
Tooling note: scripts/repackage-sdk.mjs gained a pure-mode (commit 419e034): the LocalKaos/Kaos extension is now gated on the -botiverse version suffix, so a pure latest and an extended -botiverse.<n> can be cut from the same source in one release. Before this, the extension was unconditional (PR #2), which had made a pure latest repackage impossible.
@botiverse/kimi-code-sdk@0.18.0-botiverse.0 (mirror-side surface extension on top of upstream @moonshot-ai/kimi-code@0.18.0)
Mirror-side change only — upstream node-sdk surface unchanged. The repackaged dist now re-exports LocalKaos (runtime) and Kaos (TypeScript type). The implementation was already inlined into upstream's dist/index.mjs and dist/index.d.mts but was not in upstream's published export list; the Botiverse repackage script (scripts/repackage-sdk.mjs) extends the trailing export { ... } block in place and appends export { LocalKaos }; + export type { Kaos }; to index.d.mts.
Why: Slock daemon's Kimi-SDK driver (in-process runtime) needs to inject per-agent CLI wrapper PATH into Kimi tool execution without polluting the daemon's own process.env.PATH. The supported path is LocalKaos.create().then(k => k.withCwd(workdir).withEnv({ PATH: <agent-wrapper-dir>:$PATH })), then harness.createSession({ ..., kaos }). Without re-exporting LocalKaos, daemon callers cannot construct that kaos and have to fall back to absolute wrapper paths in the agent prompt, which proved unstable across long Kimi sessions (tygg/Hao #proj-runtime:96f626f3 6/20).
Surface delta vs @botiverse/kimi-code-sdk@0.18.0:
- New runtime export:
LocalKaos(class withcreate()static factory +withCwd/withEnvchainable methods). - New type export:
Kaos(interface from@moonshot-ai/kaos, used asKimiHarnessOptions.kaos/CreateSessionOptions.kaos/ResumeSessionInput.kaos). - Everything else identical to
@botiverse/kimi-code-sdk@0.18.0.
Verification: new scripts/verify-mirror-surface.mjs asserts the published dist (a) has LocalKaos in the trailing JS export list, (b) re-exports LocalKaos + Kaos type in the .d.mts, (c) bundle still contains the LocalKaos implementation, (d) upstream symbols (KimiHarness, Session, createKimiHarness, KimiError) remain exported, and (e) when peer deps are installed, import { LocalKaos } from <dist> resolves to a class whose .create() returns a kaos with .withEnv().
Slock consumer impact: opt-in. Default pnpm add @botiverse/kimi-code-sdk still resolves to the pure-repackage 0.18.0. Daemon Kimi-SDK driver explicitly pins to 0.18.0-botiverse.0 to consume the new surface; older callers are unaffected.
node-sdk public interface: ADDITIVE. node-sdk package.json stays at 0.9.4. New optional sessionStartedProperties?: TelemetryProperties field on three host surfaces:
KimiHarnessOptions.sessionStartedProperties— host-default extra fields merged into everysession_startedtelemetry event for that harness instance.CreateSessionOptions.sessionStartedProperties— per-session extra fields (overrides harness-default for that one session, but is itself overridden by canonical fields).ResumeSessionInput.sessionStartedProperties— same shape, applied on resume.
Merge precedence in KimiHarness.trackSessionStarted is fixed: harness-default → per-session → canonical fields. Canonical fields (client_name, client_version, ui_mode, etc.) always win, so callers cannot accidentally clobber them. Existing imports keep working.
App / CLI features (not consumed by SDK hosts directly, but shipped in same release):
- Web: scroll-up lazy loading for older session messages + new-messages pill fix (
#893). - Web: session search (
#895). - Web: paginated session list on load (
#882). - Web: drop workspace session count after archiving the last session (
#896). - Web: redesigned OAuth login dialog (
#867). - Web: server version shown in settings (
#889). - Web: improved slash menu and skill editing (
#878); highlighted slash command stays visible in long menus (#881). - Goal: guided goal authoring (
#839). - Server: report host kimi-code CLI version in
/meta(#879). - agent-core: cap AgentSwarm concurrency via env var (
#888). - Telemetry: merge duplicate session-start and goal events (
#885).
Slock consumer impact: drop-in additive minor from 0.17.1. Existing daemon code keeps working. The new sessionStartedProperties knob is purely additive — daemon may opt in later if we want host-side telemetry tagging on Kimi-driven sessions, but no change required to ship 0.18.0.
node-sdk public interface: NO change. node-sdk package.json stays at 0.9.4 (bumped in 0.17.0); src/index.ts exports unchanged.
App / CLI patches (not consumed by SDK hosts directly, but shipped in same release):
- Prevent web login dialog from closing when clicking the backdrop (
#861). - Stop the background local server from locking the directory it was started in (
#860). - Fix the local server failing to start in the background on the native binary (
#860). - Group the default model dropdown in web settings by provider (
#861).
Slock consumer impact: drop-in patch from 0.17.0. No daemon code change required.
node-sdk public interface: ADDITIVE. node-sdk package.json bumped 0.9.3 → 0.9.4 (first internal version change since 0.9.3). New public exports from src/index.ts:
loadRuntimeConfigSafe— host-side safe config reader (returns parsedKimiConfig+ diagnostics, doesn't throw on bad config).resolveConfigPath— sync helper that returns the canonical<kimiHome>/config.tomlpath.
Both exposed for hosts (e.g. CLI's server telemetry bootstrap) that need to inspect config without spinning up a full KimiCore / RPC. Existing imports keep working.
Major upstream feature: server-hosted web UI (#625):
- New CLI commands
kimi server(start/stop/manage local server) +kimi web(open server-hosted web UI). - Server REST + WebSocket APIs for the web client.
protocol/src/events.ts+725 lines (new event classes for server↔web wire protocol).protocol/src/ws-control.ts+386 lines (new ws-control surface).- New REST surfaces: snapshot, terminal, skill, modelCatalog, config, connection.
- NOT consumed by Slock daemon's in-process kimi-sdk runtime — we drive the SDK directly via
KimiHarness/Session, the agent face is Slock, not the new bundled web UI.
Other upstream changes:
agent-core@0.13.x → ?: many bundled-impl improvements (see CHANGELOG); upstream-version diffs covered by tsdown bundle indist.kosong / kaos / oauth: bug fixes and protocol additions (see CHANGELOG).
Slock consumer impact:
- Drop-in bump from
0.16.0— public SDK API stays compatible (additive only). - New
loadRuntimeConfigSafe+resolveConfigPathare useful for our daemon'sdetectKimiSdkModels(packages/daemon/src/drivers/kimi-sdk.ts) which currently does a narrow regex scan; a follow-up could replace the scan withloadRuntimeConfigSafe(resolveConfigPath())for cleaner config parsing and richer diagnostics. NOT required for0.17.xadoption — the existing scan still works. - The new server/web feature surface (
kimi server/kimi web/REST/WS) is not on the Slock kimi-sdk runtime path and ships as additional CLI surface only. No daemon driver change required to consume0.17.x. ⚠️ RS-004 closed-mapping note: if a future Slock daemon path ever subscribes toKimiCoreevent surface (the protocol-package event classes that ship with0.17.x), the daemon'sKimiSdkEventtaxonomy inpackages/daemon/src/drivers/kimi-sdk.tswould need extension per RS-004 (closed-mapping: each new event class → explicit map or drop, no wildcard). Current daemon'sKimiHarness/Sessionevent surface (assistant/thinking/tool/turn/compaction/agent.status/...) is unchanged in0.17.x, so RS-004 holds; this is a forward-looking flag for the helper-PR follow-up.
node-sdk public interface: NO change. node-sdk's package.json version stays at 0.9.3; src/index.ts exports unchanged; no diff under packages/node-sdk/ itself.
Bundled-implementation siblings shipped notable runtime changes — tsdown inlines agent-core, kosong, kaos into node-sdk's dist:
agent-core@0.13.1:- fix: handle repeated compaction when context remains over the blocking threshold (
#813). - fix: project session replay ranges over rendered replay records instead of raw persisted records (
#805). - fix: prevent session shutdown from resuming the agent when stopping background tasks (
#804). - chore: remove redundant LLM request logging context plumbing (
#823).
- fix: handle repeated compaction when context remains over the blocking threshold (
kosong@0.4.6fix: stop Anthropic-compatible providers from reading ambient Anthropic shell credentials and custom headers (#790) — host-isolation hardening; prevents a kosong-built daemon from picking up an out-of-bandANTHROPIC_API_KEY/ extra headers from the host shell.kaos@0.1.6fix: close wrapped output streams when buffered readers are destroyed (#807) — resource-leak fix on the IO helper.
Slock consumer impact:
- Public SDK API unchanged; existing imports keep working.
- Update to
@botiverse/kimi-code-sdk@0.16.0to pick up the compaction-loop / replay-range / shutdown-resume fixes (all relevant to long sessions and Slock'sdaemon.runtime.turnlifecycle), the kosong Anthropic-shell-credential isolation fix (relevant if a daemon ever runs alongside anANTHROPIC_API_KEY-set shell), and the kaos stream-close fix. - No breaking change; this is a drop-in bump.
node-sdk public interface: NO change. node-sdk's package.json version stays at 0.9.3; src/index.ts exports unchanged. The single file diff in packages/node-sdk/ is a test (session-skills.test.ts).
But: the bundled-implementation siblings DID change — tsdown inlines agent-core, kosong, kaos, oauth, protocol into node-sdk's dist, and this upstream release ships notable runtime-side improvements in those packages:
agent-core: prompt same-language reasoning (#787); refine + polish system prompt context (#777,#780); decouple agent skill registry (#784); resolve model capabilities via static table lookup (#776).agent-corefix: close interrupted tool calls on resume (#768) — relevant to resume reliability.agent-core/kosong: surface skill directory in loaded-skill context block (#785).kosongfix: repair mismatched schema types from Xcode 26.5 MCP (#343).agent-corefeat: MCP support over SSE (#744).update(CLI-side): rolling automatic updates via CDN manifest (#691) — only affects the kimi CLI, not the SDK.
Slock consumer impact:
- Public SDK API unchanged; existing imports keep working.
- Update to
@botiverse/kimi-code-sdk@0.15.0to pick up the bundled-implementation refresh (improved system-prompt context, MCP-over-SSE, resume-interrupted-toolcalls fix, Xcode 26.5 MCP schema fix, etc.). This is the first npm publish under the new "align to upstream CLI tag" versioning policy — the version jump from0.9.3/0.9.4to0.15.0is intentional, not breaking. - Earlier
0.9.3and0.9.4are deprecated on npm; please migrate.
node-sdk interface: NO change. This upstream release is CLI/TUI-only.
- Diff scope: only
apps/kimi-code/anddocs/changed; zero changes topackages/node-sdk/or any of its bundled siblings (agent-core,kosong,kaos,oauth,protocol,acp-adapter,telemetry). - Single feature commit:
feat(kimi-code): refresh OAuth provider models before opening model picker (#713)— CLI/TUI only. - node-sdk
package.jsonversion unchanged at0.9.3.
Slock consumer impact: no action needed. The mirror tag exists for completeness, but consumers pinning 0.9.3 (npm) or @moonshot-ai/kimi-code@0.14.2 (mirror) can stay — there is no SDK interface delta to react to. No new npm publish: @botiverse/kimi-code-sdk@0.9.3 already covers this upstream release.
node-sdk interface: additive, no breaking change.
- NEW
KimiHarness.getConfigDiagnostics(): Promise<ConfigDiagnostics>— returns warnings from the most recentconfig.tomlload (empty when the config is fully valid). NewConfigDiagnosticstype added to the SDK surface (types.ts→index.ts). - Internal (no API change)
auth.tsconfig read/write hardening: write-path base read is now strict (so a salvaged base can't silently drop fixable sections on rewrite, with an actionable error); read path tolerates a degraded config for token/status resolution. - Public export surface (
src/index.ts) unchanged — no symbols removed/renamed.
Slock consumer impact: safe to bump 0.14.1 → 0.14.2. Interface is additive only.
Upstream app/CLI changes (context, not SDK interface): --auto/--yolo/--plan now
combine with --session/--continue; iTerm2 endless-notification fix; sub-skills exposed as
dotted slash commands; compaction records shown correctly on resume; foreground Bash
stdout/stderr streamed live; plan-mode resume fix; custom registry sync on startup refresh.