From dad11ed44ee16296d2aff4db20a9eae8ebba1c76 Mon Sep 17 00:00:00 2001 From: liruifengv Date: Fri, 24 Jul 2026 13:17:36 +0800 Subject: [PATCH] chore: prune non-user-facing changesets (#2134) * chore: prune non-user-facing changesets Remove entries covering only agent-core-v2 internals, kap-server protocol/endpoint changes, and experimental-engine behavior; the underlying changes still ship with the next user-facing release. Downgrade the MCP timeout and web service env var additions from minor to patch, as both extend existing configuration surfaces. * chore: document user-facing criteria in gen-changesets skill Add Core Rule 6 to skip changesets for changes users cannot perceive, note pre-release pruning in the workflow, and classify configuration additions to existing features as patch. --- .agents/skills/gen-changesets/SKILL.md | 24 ++++++++++++++----- .changeset/align-v2-print-run-lifecycle.md | 5 ---- .changeset/kosong-persistence-bridge.md | 5 ---- .changeset/mcp-global-timeouts.md | 2 +- .changeset/plan-revision-blobs.md | 5 ---- .../session-work-changed-global-push.md | 5 ---- .changeset/slim-reset-baseline.md | 5 ---- .changeset/transcript-event-dedup.md | 5 ---- .changeset/transcript-filter-decouple.md | 5 ---- .changeset/transcript-plan-endpoint.md | 5 ---- .changeset/transcript-subscribe-v2.md | 5 ---- .changeset/transcript-user-messages.md | 5 ---- .changeset/web-services-env-config.md | 2 +- .changeset/wire-facts-cold-fold.md | 5 ---- 14 files changed, 20 insertions(+), 63 deletions(-) delete mode 100644 .changeset/align-v2-print-run-lifecycle.md delete mode 100644 .changeset/kosong-persistence-bridge.md delete mode 100644 .changeset/plan-revision-blobs.md delete mode 100644 .changeset/session-work-changed-global-push.md delete mode 100644 .changeset/slim-reset-baseline.md delete mode 100644 .changeset/transcript-event-dedup.md delete mode 100644 .changeset/transcript-filter-decouple.md delete mode 100644 .changeset/transcript-plan-endpoint.md delete mode 100644 .changeset/transcript-subscribe-v2.md delete mode 100644 .changeset/transcript-user-messages.md delete mode 100644 .changeset/wire-facts-cold-fold.md diff --git a/.agents/skills/gen-changesets/SKILL.md b/.agents/skills/gen-changesets/SKILL.md index 800d0c3d7..fa225be3f 100644 --- a/.agents/skills/gen-changesets/SKILL.md +++ b/.agents/skills/gen-changesets/SKILL.md @@ -18,18 +18,26 @@ All other `@moonshot-ai/*` packages are treated as internal packages, including 1. **Inspect the actual changes first.** Use `git status` / `git diff --name-only` to identify which packages were actually changed. 2. **List packages that changesets can release.** If a changed package is ignored in `.changeset/config.json`, do not put that ignored package in frontmatter together with a non-ignored package; changesets rejects mixed ignored/non-ignored frontmatter. 3. **Map ignored internal changes to the affected released package.** If an ignored internal package changes CLI output or behavior, list `@moonshot-ai/kimi-code` and describe the actual user-visible or release-artifact change in the changelog text. -4. **Internal package source changes that enter the CLI bundle must manually list the CLI.** `@moonshot-ai/kimi-code` inline-bundles `@moonshot-ai/*` source, but those internal packages are devDependencies from the CLI's perspective, so changesets will not automatically propagate bumps. If a change enters the CLI output, list `@moonshot-ai/kimi-code`. +4. **Internal package source changes that enter the CLI bundle must manually list the CLI — when they get a changeset at all.** `@moonshot-ai/kimi-code` inline-bundles `@moonshot-ai/*` source, but those internal packages are devDependencies from the CLI's perspective, so changesets will not automatically propagate bumps. If a change enters the CLI output and is user-perceivable, list `@moonshot-ai/kimi-code`. See rule 6 for when to skip the changeset entirely. - **Web app (`@moonshot-ai/kimi-web`) changes always enter the CLI bundle.** `@moonshot-ai/kimi-web` is ignored by changesets (see `.changeset/config.json`) and cannot be mixed with `@moonshot-ai/kimi-code` in one changeset frontmatter. Describe the web change in the changelog text, but list `@moonshot-ai/kimi-code` so the CLI release carries the bundled `dist-web` output. 5. **Docs-only and tests-only changes usually do not need a changeset.** README, internal docs, and `test/` changes that do not enter package output do not trigger a CLI bump. -6. `@moonshot-ai/vis` / `vis-server` / `vis-web` are ignored by changesets and should not be handled. `@moonshot-ai/kimi-inspect` (a private dev app that never ships) is likewise ignored and must never appear in a changeset frontmatter. +6. **Skip changes users cannot perceive — write no changeset at all.** The CLI changelog is user-facing; a changeset is a changelog entry, not a shipping gate. Internal changes merged to `main` still ship in the next release triggered by any user-facing changeset, so skipping the changeset loses nothing. Do not write changesets for: + - `agent-core-v2` internal architecture: new services, refactors, config-persistence or journal/wire mechanisms. + - `kap-server` WebSocket / REST protocol changes consumed only by the bundled web UI, kimi-inspect, or other dev tooling (new endpoints, subscribe protocols, stream baselines). A web-facing feature they back gets its own `web:` entry instead. + - Behavior that only takes effect on the experimental engine (e.g. experimental `kimi -p`), unless it exposes documented user configuration such as a `config.toml` section or env vars that also work on a shipped surface (TUI or `kimi web`). + - When unsure whether users can perceive a change, ask before writing. +7. `@moonshot-ai/vis` / `vis-server` / `vis-web` are ignored by changesets and should not be handled. `@moonshot-ai/kimi-inspect` (a private dev app that never ships) is likewise ignored and must never appear in a changeset frontmatter. ## Workflow 1. List the changed packages and check whether each one is ignored by `.changeset/config.json`. -2. Choose a bump level for each package. -3. If an ignored internal package change enters the CLI bundle, put `@moonshot-ai/kimi-code` in frontmatter instead of mixing the ignored package into the same changeset. -4. Create a short kebab-case file under `.changeset/`. -5. Split unrelated changes into separate changesets; keep one logical change in one file. +2. Decide whether the change is user-perceivable (Core Rule 6); if not, stop — no changeset. +3. Choose a bump level for each package. +4. If an ignored internal package change enters the CLI bundle, put `@moonshot-ai/kimi-code` in frontmatter instead of mixing the ignored package into the same changeset. +5. Create a short kebab-case file under `.changeset/`. +6. Split unrelated changes into separate changesets; keep one logical change in one file. + +Before a release, review the accumulated `.changeset/` entries against Core Rule 6 and prune non-user-facing ones; the release PR regenerates from `.changeset/` on `main`, so deleting a changeset removes its changelog entry without affecting the shipped code. Format: @@ -52,6 +60,8 @@ Format: When in doubt between `patch` and `minor`: if the change improves an existing feature and the user-facing impact is small, choose `patch` even when the change is technically "new". Reserve `minor` for a substantial new capability that introduces something users could not do before. +New configuration surface is not automatically `minor`. Additions to an existing feature's configuration — env var overlays, config-file fallbacks, global defaults under per-item settings — are `patch`. Examples: a global default MCP timeout when per-server timeouts already exist; env-based credentials for a service already configurable in `config.toml`. + ### Major Rule Never write `major` on your own. @@ -211,6 +221,8 @@ Fix the transcript jumping to the top when scrolling up through history during s ## Red Flags - You are about to write `major` without asking the user. +- You are writing a changeset for something users cannot perceive — `agent-core-v2` internals, `kap-server` WS/REST protocol plumbing, experimental-engine-only behavior. Skip the changeset instead (Core Rule 6). +- A new env var overlay or config fallback for an existing feature is bumped `minor` — configuration additions to existing features are `patch`. - A new user-facing feature entry has no usage hint, or the hint runs to multiple lines and explains design rationale. - You guessed wording for a change you do not understand instead of asking the user whether you may dig into the repo. - Internal package source enters the CLI bundle, but `@moonshot-ai/kimi-code` is missing. diff --git a/.changeset/align-v2-print-run-lifecycle.md b/.changeset/align-v2-print-run-lifecycle.md deleted file mode 100644 index 647a4ff2a..000000000 --- a/.changeset/align-v2-print-run-lifecycle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": patch ---- - -Align `kimi -p` on the experimental engine with the default engine's run lifecycle: the print background policy now defaults to steer with no practical turn or time cap, background task and per-turn step limits are lifted unless configured, and the run stays alive while cron tasks still have future fires so their steered turns can run. diff --git a/.changeset/kosong-persistence-bridge.md b/.changeset/kosong-persistence-bridge.md deleted file mode 100644 index d6d58e93f..000000000 --- a/.changeset/kosong-persistence-bridge.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": patch ---- - -Decouple provider and model management from config persistence on the experimental engine: the runtime keeps its own provider/model registry, and a dedicated sync layer hydrates it from config.toml at startup and writes runtime changes (added providers, discovered models, default-model selection) back to disk. diff --git a/.changeset/mcp-global-timeouts.md b/.changeset/mcp-global-timeouts.md index 16a9f1b15..b2eb35c9d 100644 --- a/.changeset/mcp-global-timeouts.md +++ b/.changeset/mcp-global-timeouts.md @@ -1,5 +1,5 @@ --- -"@moonshot-ai/kimi-code": minor +"@moonshot-ai/kimi-code": patch --- Add global default MCP server timeouts in `config.toml` and env vars. diff --git a/.changeset/plan-revision-blobs.md b/.changeset/plan-revision-blobs.md deleted file mode 100644 index 2c3b1a3f8..000000000 --- a/.changeset/plan-revision-blobs.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": patch ---- - -Record plan content as versioned facts: each plan review submission offloads the document to a versioned per-agent plan directory and journals a reference record, so the transcript surfaces plan revisions (marker + badge with review path) and rebuilds them after restarts. diff --git a/.changeset/session-work-changed-global-push.md b/.changeset/session-work-changed-global-push.md deleted file mode 100644 index 1717fa9a6..000000000 --- a/.changeset/session-work-changed-global-push.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": patch ---- - -Push every session's work status (busy, pending interaction, last turn outcome) to all connected WebSocket clients without requiring a per-session subscription, and serve the same aggregate on the session list API. diff --git a/.changeset/slim-reset-baseline.md b/.changeset/slim-reset-baseline.md deleted file mode 100644 index 40fdeb059..000000000 --- a/.changeset/slim-reset-baseline.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": patch ---- - -Stop embedding historical turns in the transcript WS baseline reset; it now carries only global state and the stream watermark, and clients page history through the REST transcript API. diff --git a/.changeset/transcript-event-dedup.md b/.changeset/transcript-event-dedup.md deleted file mode 100644 index ee1a23691..000000000 --- a/.changeset/transcript-event-dedup.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": minor ---- - -Extend the transcript protocol with step usage and timing, streamed tool input and progress, subagent outcomes, agent status, and the prompt queue; WebSocket connections subscribed to the transcript protocol no longer receive the equivalent legacy session events. diff --git a/.changeset/transcript-filter-decouple.md b/.changeset/transcript-filter-decouple.md deleted file mode 100644 index 4826ceb66..000000000 --- a/.changeset/transcript-filter-decouple.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": patch ---- - -Decouple the transcript WebSocket stream from the legacy agent filter: transcript frames are now governed by the per-agent transcript grades alone, so a connection no longer silently drops transcript data for agents missing from its event allowlist. diff --git a/.changeset/transcript-plan-endpoint.md b/.changeset/transcript-plan-endpoint.md deleted file mode 100644 index 2cb95f6a7..000000000 --- a/.changeset/transcript-plan-endpoint.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": minor ---- - -Add a server endpoint to look up the plan content and review outcome of ExitPlanMode calls. Query `GET /api/v1/sessions/{session_id}/transcript/plan` with `agent_id`, plus an optional `tool_call_id` to narrow to one call. diff --git a/.changeset/transcript-subscribe-v2.md b/.changeset/transcript-subscribe-v2.md deleted file mode 100644 index 3c76ab50a..000000000 --- a/.changeset/transcript-subscribe-v2.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": minor ---- - -Move transcript stream subscriptions on the server WebSocket protocol to a dedicated `subscribe_v2` control frame paired with an agent-grained `unsubscribe_v2`; the `transcript` and `transcript_since` fields on `client_hello` and `subscribe` are no longer accepted. diff --git a/.changeset/transcript-user-messages.md b/.changeset/transcript-user-messages.md deleted file mode 100644 index 79859ea1c..000000000 --- a/.changeset/transcript-user-messages.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": minor ---- - -Add a session API endpoint that returns all turn-opening user messages of a session, grouped per agent. Query `GET /api/v1/sessions/{session_id}/transcript/user-messages` (optionally with `?agent_id=` for a single agent) to fetch them. diff --git a/.changeset/web-services-env-config.md b/.changeset/web-services-env-config.md index 910966d5b..84e2e5472 100644 --- a/.changeset/web-services-env-config.md +++ b/.changeset/web-services-env-config.md @@ -1,5 +1,5 @@ --- -"@moonshot-ai/kimi-code": minor +"@moonshot-ai/kimi-code": patch --- Add environment variables to configure the web search and web fetch services without OAuth login. diff --git a/.changeset/wire-facts-cold-fold.md b/.changeset/wire-facts-cold-fold.md deleted file mode 100644 index 2b09228cb..000000000 --- a/.changeset/wire-facts-cold-fold.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@moonshot-ai/kimi-code": patch ---- - -Persist task lifecycle and interaction records in session wire journals, and rebuild tasks, interactions, todos, and goal/plan meta when loading a cold transcript, so transcript state survives server restarts (older sessions are unaffected).