diff --git a/.agents/skills/changelog-authoring/SKILL.md b/.agents/skills/changelog-authoring/SKILL.md index a3c04ad0..ff1f6d24 100644 --- a/.agents/skills/changelog-authoring/SKILL.md +++ b/.agents/skills/changelog-authoring/SKILL.md @@ -11,7 +11,7 @@ The changelog is written once per release, by the maintainer, as one story. Both Write `changelog/unreleased.md` and nothing else. `CHANGELOG.md`, `packages/vscode/CHANGELOG.md`, and `changelog/index.json` are generated from `changelog/*.md`; after editing run `bun run changelog:build` and commit the source with the regenerated files (`changelog/README.md` describes the file format, `bun run changelog:check` verifies the outputs). The version header, date, and file promotion happen at release time through `oc-dev create-release`, never by hand. -`unreleased.md` holds two sections: +`unreleased.md` opens with a `title:` front matter line (see The title) and holds two sections: - `## App` — Web, Desktop, Mobile/PWA, shared UI. - `## VS Code` — the extension only, written separately (see below). @@ -44,6 +44,25 @@ Where a change goes: The generator emits the groups in this order whatever order the source lists them, drops empty ones, and writes the `## [x.y.z] - YYYY-MM-DD` header that the update dialog, the release workflow, and the website match by regex. +## The title + +Every release carries a one-line `title:` in its front matter. The website lists it beside the version and uses it as the heading of the release page, so it is the one line most people read. It answers "what would a user remember this release for": + +- **Two to six words** naming the change most users will notice. For a fix-only patch, name what works again: `Terminal works again on Windows`, `Faster session switching`. +- **Plain words, sentence case**; product names keep their casing. No area prefix with a colon, no trailing period, no version number, no credit. +- **Never a category alone** (`Fixes`, `Stability`, `Improvements`, `Polish`) and **never a bare area** (`Git`, `Chat`): the title has to teach the reader something. +- Two headliners at most, joined with `and`, and only when the release really has two. + +The generator refuses a release without a title. In `unreleased.md` it sits at the top: + +```markdown +--- +title: Comments on code in VS Code +--- + +## App +``` + ## The bullet The reader is a user of the app. They never opened the code, they will not open the PR, and they give a bullet about five seconds. Write for that reader: @@ -106,4 +125,5 @@ Read each finished section top to bottom and check every bullet: - Empty groups are absent; present groups appear in the order New, Improvements, Fixes, Misc. - It appears only in the section whose runtime receives it. - Its contributor is credited. +- The `title:` line names the release's headline change in two to six plain words. - `bun run changelog:build` ran and the regenerated files are staged with the source. diff --git a/changelog/1.0.1.md b/changelog/1.0.1.md index f44b103a..4da7f4f6 100644 --- a/changelog/1.0.1.md +++ b/changelog/1.0.1.md @@ -1,6 +1,7 @@ --- version: 1.0.1 date: 2025-12-07 +title: OpenChamber public release --- ## App diff --git a/changelog/1.0.2.md b/changelog/1.0.2.md index 1a68e458..61b5fd5e 100644 --- a/changelog/1.0.2.md +++ b/changelog/1.0.2.md @@ -1,6 +1,7 @@ --- version: 1.0.2 date: 2025-12-07 +title: Refined macOS window design --- ## App diff --git a/changelog/1.0.3.md b/changelog/1.0.3.md index 6b05302a..a3b1c9c3 100644 --- a/changelog/1.0.3.md +++ b/changelog/1.0.3.md @@ -1,6 +1,7 @@ --- version: 1.0.3 date: 2025-12-07 +title: Refreshed onboarding and sidebar --- ## App diff --git a/changelog/1.0.4.md b/changelog/1.0.4.md index ed8fc451..3433cb73 100644 --- a/changelog/1.0.4.md +++ b/changelog/1.0.4.md @@ -1,6 +1,7 @@ --- version: 1.0.4 date: 2025-12-07 +title: Faster desktop app startup --- ## App diff --git a/changelog/1.0.5.md b/changelog/1.0.5.md index 9743380c..fc711240 100644 --- a/changelog/1.0.5.md +++ b/changelog/1.0.5.md @@ -1,6 +1,7 @@ --- version: 1.0.5 date: 2025-12-07 +title: Older messages load without jumping --- ## App diff --git a/changelog/1.0.6.md b/changelog/1.0.6.md index 4ba05235..938b4908 100644 --- a/changelog/1.0.6.md +++ b/changelog/1.0.6.md @@ -1,6 +1,7 @@ --- version: 1.0.6 date: 2025-12-08 +title: Better shell environment detection --- ## App diff --git a/changelog/1.0.7.md b/changelog/1.0.7.md index c70a26d9..2a0d73ae 100644 --- a/changelog/1.0.7.md +++ b/changelog/1.0.7.md @@ -1,6 +1,7 @@ --- version: 1.0.7 date: 2025-12-08 +title: Smoother app updates --- ## App diff --git a/changelog/1.0.8.md b/changelog/1.0.8.md index 528bc1c7..10cec1fd 100644 --- a/changelog/1.0.8.md +++ b/changelog/1.0.8.md @@ -1,6 +1,7 @@ --- version: 1.0.8 date: 2025-12-08 +title: More reliable OpenCode CLI detection --- ## App diff --git a/changelog/1.0.9.md b/changelog/1.0.9.md index 120ac0f1..94e87dbc 100644 --- a/changelog/1.0.9.md +++ b/changelog/1.0.9.md @@ -1,6 +1,7 @@ --- version: 1.0.9 date: 2025-12-08 +title: Changelog shown in update dialog --- ## App diff --git a/changelog/1.1.0.md b/changelog/1.1.0.md index 0902cf6f..2318a888 100644 --- a/changelog/1.1.0.md +++ b/changelog/1.1.0.md @@ -1,6 +1,7 @@ --- version: 1.1.0 date: 2025-12-13 +title: VS Code extension and answer forking --- ## App diff --git a/changelog/1.1.1.md b/changelog/1.1.1.md index 223b07da..8e89567b 100644 --- a/changelog/1.1.1.md +++ b/changelog/1.1.1.md @@ -1,6 +1,7 @@ --- version: 1.1.1 date: 2025-12-13 +title: User messages render correctly again --- ## App diff --git a/changelog/1.1.2.md b/changelog/1.1.2.md index 0166c7b3..b66e7913 100644 --- a/changelog/1.1.2.md +++ b/changelog/1.1.2.md @@ -1,6 +1,7 @@ --- version: 1.1.2 date: 2025-12-13 +title: VS Code extension moves to the activity bar --- ## App diff --git a/changelog/1.1.3.md b/changelog/1.1.3.md index 20942e4d..22cdc586 100644 --- a/changelog/1.1.3.md +++ b/changelog/1.1.3.md @@ -1,6 +1,7 @@ --- version: 1.1.3 date: 2025-12-14 +title: Line wrap toggle in diff view --- ## App diff --git a/changelog/1.1.4.md b/changelog/1.1.4.md index 91f9f033..277b313b 100644 --- a/changelog/1.1.4.md +++ b/changelog/1.1.4.md @@ -1,6 +1,7 @@ --- version: 1.1.4 date: 2025-12-15 +title: Flexoki syntax highlighting --- ## App diff --git a/changelog/1.1.5.md b/changelog/1.1.5.md index 4009c9fe..0f84950d 100644 --- a/changelog/1.1.5.md +++ b/changelog/1.1.5.md @@ -1,6 +1,7 @@ --- version: 1.1.5 date: 2025-12-15 +title: Fuzzy search for file mentions --- ## App diff --git a/changelog/1.1.6.md b/changelog/1.1.6.md index de6a1f99..97842070 100644 --- a/changelog/1.1.6.md +++ b/changelog/1.1.6.md @@ -1,6 +1,7 @@ --- version: 1.1.6 date: 2025-12-15 +title: Redesigned session unlock screen --- ## App diff --git a/changelog/1.10.0.md b/changelog/1.10.0.md index 93b9c86b..faf27d67 100644 --- a/changelog/1.10.0.md +++ b/changelog/1.10.0.md @@ -1,6 +1,7 @@ --- version: 1.10.0 date: 2026-05-05 +title: Embedded preview for dev servers --- ## App diff --git a/changelog/1.10.1.md b/changelog/1.10.1.md index 599eae29..97a66b15 100644 --- a/changelog/1.10.1.md +++ b/changelog/1.10.1.md @@ -1,6 +1,7 @@ --- version: 1.10.1 date: 2026-05-06 +title: Git sync and stash management --- ## App diff --git a/changelog/1.10.2.md b/changelog/1.10.2.md index 07a0c179..0e9ac74a 100644 --- a/changelog/1.10.2.md +++ b/changelog/1.10.2.md @@ -1,6 +1,7 @@ --- version: 1.10.2 date: 2026-05-07 +title: Clone repositories when adding a project --- ## App diff --git a/changelog/1.10.3.md b/changelog/1.10.3.md index dd9848c8..a84793a4 100644 --- a/changelog/1.10.3.md +++ b/changelog/1.10.3.md @@ -1,6 +1,7 @@ --- version: 1.10.3 date: 2026-05-08 +title: Mini Chat windows --- ## App diff --git a/changelog/1.10.4.md b/changelog/1.10.4.md index 78d004e2..7d44ad03 100644 --- a/changelog/1.10.4.md +++ b/changelog/1.10.4.md @@ -1,6 +1,7 @@ --- version: 1.10.4 date: 2026-05-09 +title: Reuse local branches for PR worktrees --- ## App diff --git a/changelog/1.11.0.md b/changelog/1.11.0.md index 3950222c..dacc9064 100644 --- a/changelog/1.11.0.md +++ b/changelog/1.11.0.md @@ -1,6 +1,7 @@ --- version: 1.11.0 date: 2026-05-14 +title: In-app OpenCode updates and offline dictation --- ## App diff --git a/changelog/1.11.1.md b/changelog/1.11.1.md index c346de9c..a7f968cd 100644 --- a/changelog/1.11.1.md +++ b/changelog/1.11.1.md @@ -1,6 +1,7 @@ --- version: 1.11.1 date: 2026-05-15 +title: Session switcher in the chat header --- ## App diff --git a/changelog/1.11.2.md b/changelog/1.11.2.md index 62ae1265..1a9cc0e9 100644 --- a/changelog/1.11.2.md +++ b/changelog/1.11.2.md @@ -1,6 +1,7 @@ --- version: 1.11.2 date: 2026-05-18 +title: Collapsible thinking and inline commit diffs --- ## App diff --git a/changelog/1.11.3.md b/changelog/1.11.3.md index e209c479..30e95115 100644 --- a/changelog/1.11.3.md +++ b/changelog/1.11.3.md @@ -1,6 +1,7 @@ --- version: 1.11.3 date: 2026-05-19 +title: Skills in slash command autocomplete --- ## App diff --git a/changelog/1.11.4.md b/changelog/1.11.4.md index 935008ce..a82cc4fa 100644 --- a/changelog/1.11.4.md +++ b/changelog/1.11.4.md @@ -1,6 +1,7 @@ --- version: 1.11.4 date: 2026-05-22 +title: Composer snippets and Electron by default --- ## App diff --git a/changelog/1.11.5.md b/changelog/1.11.5.md index 5a7194e9..014a6125 100644 --- a/changelog/1.11.5.md +++ b/changelog/1.11.5.md @@ -1,6 +1,7 @@ --- version: 1.11.5 date: 2026-05-25 +title: Rename sessions inline --- ## App diff --git a/changelog/1.11.6.md b/changelog/1.11.6.md index 8d8fe307..949ddd40 100644 --- a/changelog/1.11.6.md +++ b/changelog/1.11.6.md @@ -1,6 +1,7 @@ --- version: 1.11.6 date: 2026-05-25 +title: Manage OpenCode plugins from settings --- ## App diff --git a/changelog/1.11.7.md b/changelog/1.11.7.md index be848d91..82c7116a 100644 --- a/changelog/1.11.7.md +++ b/changelog/1.11.7.md @@ -1,6 +1,7 @@ --- version: 1.11.7 date: 2026-05-27 +title: Commit branch graphs and restored streaming --- ## App diff --git a/changelog/1.12.0.md b/changelog/1.12.0.md index a69b2367..d8bc4410 100644 --- a/changelog/1.12.0.md +++ b/changelog/1.12.0.md @@ -1,6 +1,7 @@ --- version: 1.12.0 date: 2026-06-03 +title: A new default mobile app --- ## App diff --git a/changelog/1.12.1.md b/changelog/1.12.1.md index 006d6052..c9409859 100644 --- a/changelog/1.12.1.md +++ b/changelog/1.12.1.md @@ -1,6 +1,7 @@ --- version: 1.12.1 date: 2026-06-03 +title: Changed-file chips in chat --- ## App diff --git a/changelog/1.12.2.md b/changelog/1.12.2.md index 299fdd79..b40d007d 100644 --- a/changelog/1.12.2.md +++ b/changelog/1.12.2.md @@ -1,6 +1,7 @@ --- version: 1.12.2 date: 2026-06-05 +title: Windows app now available --- ## App diff --git a/changelog/1.12.3.md b/changelog/1.12.3.md index 7f54dc77..e7ed7766 100644 --- a/changelog/1.12.3.md +++ b/changelog/1.12.3.md @@ -1,6 +1,7 @@ --- version: 1.12.3 date: 2026-06-05 +title: Works with OpenCode 1.15 again --- ## App diff --git a/changelog/1.12.4.md b/changelog/1.12.4.md index c86a21db..3f3bd5f2 100644 --- a/changelog/1.12.4.md +++ b/changelog/1.12.4.md @@ -1,6 +1,7 @@ --- version: 1.12.4 date: 2026-06-11 +title: Menu bar tray and review sessions --- ## App diff --git a/changelog/1.13.0.md b/changelog/1.13.0.md index 48170396..b99d6a76 100644 --- a/changelog/1.13.0.md +++ b/changelog/1.13.0.md @@ -1,6 +1,7 @@ --- version: 1.13.0 date: 2026-06-15 +title: Remote access password and diff staging --- ## App diff --git a/changelog/1.13.1.md b/changelog/1.13.1.md index 00b5fb0b..39354547 100644 --- a/changelog/1.13.1.md +++ b/changelog/1.13.1.md @@ -1,6 +1,7 @@ --- version: 1.13.1 date: 2026-06-17 +title: Cron expressions for scheduled tasks --- ## App diff --git a/changelog/1.13.2.md b/changelog/1.13.2.md index 6b50e8b0..78150add 100644 --- a/changelog/1.13.2.md +++ b/changelog/1.13.2.md @@ -1,6 +1,7 @@ --- version: 1.13.2 date: 2026-06-18 +title: Smoother streaming in long chats --- ## App diff --git a/changelog/1.13.3.md b/changelog/1.13.3.md index 281a7c78..908f1bfb 100644 --- a/changelog/1.13.3.md +++ b/changelog/1.13.3.md @@ -1,6 +1,7 @@ --- version: 1.13.3 date: 2026-06-24 +title: Sign commits with SSH --- ## App diff --git a/changelog/1.13.4.md b/changelog/1.13.4.md index 623e1486..95fc8d12 100644 --- a/changelog/1.13.4.md +++ b/changelog/1.13.4.md @@ -1,6 +1,7 @@ --- version: 1.13.4 date: 2026-06-27 +title: Automatic review loops --- ## App diff --git a/changelog/1.13.5.md b/changelog/1.13.5.md index 3670982d..7af89138 100644 --- a/changelog/1.13.5.md +++ b/changelog/1.13.5.md @@ -1,6 +1,7 @@ --- version: 1.13.5 date: 2026-06-27 +title: The CLI and tunnels work again --- ## App diff --git a/changelog/1.13.6.md b/changelog/1.13.6.md index f19c1118..df22751a 100644 --- a/changelog/1.13.6.md +++ b/changelog/1.13.6.md @@ -1,6 +1,7 @@ --- version: 1.13.6 date: 2026-06-28 +title: A Dock badge for unseen chats --- ## App diff --git a/changelog/1.13.7.md b/changelog/1.13.7.md index 25367508..3050dcf5 100644 --- a/changelog/1.13.7.md +++ b/changelog/1.13.7.md @@ -1,6 +1,7 @@ --- version: 1.13.7 date: 2026-06-28 +title: The update command works again --- ## App diff --git a/changelog/1.13.8.md b/changelog/1.13.8.md index 0daa9e3e..b9ddc552 100644 --- a/changelog/1.13.8.md +++ b/changelog/1.13.8.md @@ -1,6 +1,7 @@ --- version: 1.13.8 date: 2026-06-29 +title: Faster startup and safer OpenCode detection --- ## App diff --git a/changelog/1.13.9.md b/changelog/1.13.9.md index 4f2eaa0e..07ab2fdd 100644 --- a/changelog/1.13.9.md +++ b/changelog/1.13.9.md @@ -1,6 +1,7 @@ --- version: 1.13.9 date: 2026-07-02 +title: Native iOS and Android apps arrive --- ## App diff --git a/changelog/1.14.0.md b/changelog/1.14.0.md index bfcdb491..6d8bd140 100644 --- a/changelog/1.14.0.md +++ b/changelog/1.14.0.md @@ -1,6 +1,7 @@ --- version: 1.14.0 date: 2026-07-05 +title: Voice dictation and a compact mobile composer --- ## App diff --git a/changelog/1.14.1.md b/changelog/1.14.1.md index 2a8ab553..2e04434e 100644 --- a/changelog/1.14.1.md +++ b/changelog/1.14.1.md @@ -1,6 +1,7 @@ --- version: 1.14.1 date: 2026-07-07 +title: Recaps and suggested replies in chat --- ## App diff --git a/changelog/1.15.0.md b/changelog/1.15.0.md index 7df7fd17..90998c31 100644 --- a/changelog/1.15.0.md +++ b/changelog/1.15.0.md @@ -1,6 +1,7 @@ --- version: 1.15.0 date: 2026-07-10 +title: Private relay and a public mobile beta --- ## App diff --git a/changelog/1.16.0.md b/changelog/1.16.0.md index 99d08d4e..cf6ac97d 100644 --- a/changelog/1.16.0.md +++ b/changelog/1.16.0.md @@ -1,6 +1,7 @@ --- version: 1.16.0 date: 2026-07-13 +title: Session goals and faster remote access --- ## App diff --git a/changelog/1.16.1.md b/changelog/1.16.1.md index 20a8385e..b0cb65f3 100644 --- a/changelog/1.16.1.md +++ b/changelog/1.16.1.md @@ -1,6 +1,7 @@ --- version: 1.16.1 date: 2026-07-14 +title: Prompt Navigator and a faster sidebar --- ## App diff --git a/changelog/1.16.2.md b/changelog/1.16.2.md index 0efc24a6..6858004f 100644 --- a/changelog/1.16.2.md +++ b/changelog/1.16.2.md @@ -1,6 +1,7 @@ --- version: 1.16.2 date: 2026-07-18 +title: A rebuilt terminal and pinned messages --- ## App diff --git a/changelog/1.16.3.md b/changelog/1.16.3.md index 15ec7e9b..81293378 100644 --- a/changelog/1.16.3.md +++ b/changelog/1.16.3.md @@ -1,6 +1,7 @@ --- version: 1.16.3 date: 2026-07-22 +title: Office attachments and faster session switching --- ## App diff --git a/changelog/1.17.0.md b/changelog/1.17.0.md index b0e11b55..858c8f6a 100644 --- a/changelog/1.17.0.md +++ b/changelog/1.17.0.md @@ -1,6 +1,7 @@ --- version: 1.17.0 date: 2026-07-28 +title: Context panel and redesigned sidebar --- ## App diff --git a/changelog/1.17.1.md b/changelog/1.17.1.md index ff49a9bf..b4bb28ba 100644 --- a/changelog/1.17.1.md +++ b/changelog/1.17.1.md @@ -1,6 +1,7 @@ --- version: 1.17.1 date: 2026-07-29 +title: Live output in Bash tool cards --- ## App diff --git a/changelog/1.17.2.md b/changelog/1.17.2.md index 0c6ae4c1..cd432129 100644 --- a/changelog/1.17.2.md +++ b/changelog/1.17.2.md @@ -1,6 +1,7 @@ --- version: 1.17.2 date: 2026-08-01 +title: OpenChamber theme by default --- ## App diff --git a/changelog/1.18.0.md b/changelog/1.18.0.md index 78cc9f1f..6c2179f2 100644 --- a/changelog/1.18.0.md +++ b/changelog/1.18.0.md @@ -1,6 +1,7 @@ --- version: 1.18.0 date: 2026-08-04 +title: Guided diff walkthroughs --- ## App diff --git a/changelog/1.18.1.md b/changelog/1.18.1.md index ca3bff0d..4a41d3f4 100644 --- a/changelog/1.18.1.md +++ b/changelog/1.18.1.md @@ -1,6 +1,7 @@ --- version: 1.18.1 date: 2026-08-04 +title: OAuth provider sign-in works again --- ## App diff --git a/changelog/1.18.2.md b/changelog/1.18.2.md index 1051aec6..fdd9f563 100644 --- a/changelog/1.18.2.md +++ b/changelog/1.18.2.md @@ -1,6 +1,7 @@ --- version: 1.18.2 date: 2026-08-10 +title: Observability panel and scheduled tasks --- ## App diff --git a/changelog/1.18.3.md b/changelog/1.18.3.md index 3ab15633..74c5640d 100644 --- a/changelog/1.18.3.md +++ b/changelog/1.18.3.md @@ -1,6 +1,7 @@ --- version: 1.18.3 date: 2026-08-14 +title: Agents can browse the web --- ## App diff --git a/changelog/1.18.4.md b/changelog/1.18.4.md index 241e80d6..0185090a 100644 --- a/changelog/1.18.4.md +++ b/changelog/1.18.4.md @@ -1,6 +1,7 @@ --- version: 1.18.4 date: 2026-08-14 +title: More stable server and correct message order --- ## App diff --git a/changelog/1.19.0.md b/changelog/1.19.0.md index ed7e85d7..1d805342 100644 --- a/changelog/1.19.0.md +++ b/changelog/1.19.0.md @@ -1,6 +1,7 @@ --- version: 1.19.0 date: 2026-08-19 +title: Claude usage limits and project knowledge --- ## App diff --git a/changelog/1.2.0.md b/changelog/1.2.0.md index c63fafd4..fdfef678 100644 --- a/changelog/1.2.0.md +++ b/changelog/1.2.0.md @@ -1,6 +1,7 @@ --- version: 1.2.0 date: 2025-12-15 +title: Favorite models and adjustable font size --- ## App diff --git a/changelog/1.2.1.md b/changelog/1.2.1.md index 907a1a40..eef83656 100644 --- a/changelog/1.2.1.md +++ b/changelog/1.2.1.md @@ -1,6 +1,7 @@ --- version: 1.2.1 date: 2025-12-16 +title: Todo tracking row in chat --- ## App diff --git a/changelog/1.2.2.md b/changelog/1.2.2.md index 0b9e7b06..b258a0ac 100644 --- a/changelog/1.2.2.md +++ b/changelog/1.2.2.md @@ -1,6 +1,7 @@ --- version: 1.2.2 date: 2025-12-17 +title: Live progress for agent tasks --- ## App diff --git a/changelog/1.2.3.md b/changelog/1.2.3.md index 63db0321..0077a074 100644 --- a/changelog/1.2.3.md +++ b/changelog/1.2.3.md @@ -1,6 +1,7 @@ --- version: 1.2.3 date: 2025-12-17 +title: Image previews in the Diff tab --- ## App diff --git a/changelog/1.2.4.md b/changelog/1.2.4.md index 7e9813df..21b32be3 100644 --- a/changelog/1.2.4.md +++ b/changelog/1.2.4.md @@ -1,6 +1,7 @@ --- version: 1.2.4 date: 2025-12-18 +title: Smoother mobile terminal scrolling --- ## App diff --git a/changelog/1.2.5.md b/changelog/1.2.5.md index 8006533c..cfe36898 100644 --- a/changelog/1.2.5.md +++ b/changelog/1.2.5.md @@ -1,6 +1,7 @@ --- version: 1.2.5 date: 2025-12-19 +title: Redesigned Git tab layout --- ## App diff --git a/changelog/1.2.6.md b/changelog/1.2.6.md index ea750364..8abec044 100644 --- a/changelog/1.2.6.md +++ b/changelog/1.2.6.md @@ -1,6 +1,7 @@ --- version: 1.2.6 date: 2025-12-19 +title: File previews in permission cards --- ## App diff --git a/changelog/1.2.7.md b/changelog/1.2.7.md index f209ed44..4795ccc7 100644 --- a/changelog/1.2.7.md +++ b/changelog/1.2.7.md @@ -1,6 +1,7 @@ --- version: 1.2.7 date: 2025-12-19 +title: Keyboard shortcuts help menu --- ## App diff --git a/changelog/1.2.8.md b/changelog/1.2.8.md index ea03c573..05044e12 100644 --- a/changelog/1.2.8.md +++ b/changelog/1.2.8.md @@ -1,6 +1,7 @@ --- version: 1.2.8 date: 2025-12-19 +title: Update the web app without the CLI --- ## App diff --git a/changelog/1.2.9.md b/changelog/1.2.9.md index 9ab04d31..706230e2 100644 --- a/changelog/1.2.9.md +++ b/changelog/1.2.9.md @@ -1,6 +1,7 @@ --- version: 1.2.9 date: 2025-12-20 +title: Automatic session cleanup --- ## App diff --git a/changelog/1.20.0.md b/changelog/1.20.0.md index cf57e83e..8084b5fa 100644 --- a/changelog/1.20.0.md +++ b/changelog/1.20.0.md @@ -1,6 +1,7 @@ --- version: 1.20.0 date: 2026-08-23 +title: Side questions with /btw --- ## App diff --git a/changelog/1.21.0.md b/changelog/1.21.0.md index d5abf884..46309d7c 100644 --- a/changelog/1.21.0.md +++ b/changelog/1.21.0.md @@ -1,6 +1,7 @@ --- version: 1.21.0 date: 2026-08-26 +title: Comments on chat replies and redesigned shortcuts --- ## App diff --git a/changelog/1.21.1.md b/changelog/1.21.1.md index 5633fc8b..30f05bf9 100644 --- a/changelog/1.21.1.md +++ b/changelog/1.21.1.md @@ -1,6 +1,7 @@ --- version: 1.21.1 date: 2026-08-29 +title: Turkish interface and safer worktree moves --- ## App diff --git a/changelog/1.22.0.md b/changelog/1.22.0.md index c60882c9..06f04558 100644 --- a/changelog/1.22.0.md +++ b/changelog/1.22.0.md @@ -1,6 +1,7 @@ --- version: 1.22.0 date: 2026-08-30 +title: Linear integration and multi-repo git --- ## App diff --git a/changelog/1.3.0.md b/changelog/1.3.0.md index b10dcc09..50c60270 100644 --- a/changelog/1.3.0.md +++ b/changelog/1.3.0.md @@ -1,6 +1,7 @@ --- version: 1.3.0 date: 2025-12-21 +title: Revert chat messages --- ## App diff --git a/changelog/1.3.1.md b/changelog/1.3.1.md index 26ca2227..f9d63bb4 100644 --- a/changelog/1.3.1.md +++ b/changelog/1.3.1.md @@ -1,6 +1,7 @@ --- version: 1.3.1 date: 2025-12-22 +title: New app icon and no more empty chats --- ## App diff --git a/changelog/1.3.2.md b/changelog/1.3.2.md index a29c44df..8aa80088 100644 --- a/changelog/1.3.2.md +++ b/changelog/1.3.2.md @@ -1,6 +1,7 @@ --- version: 1.3.2 date: 2025-12-22 +title: Directory switching no longer breaks sessions --- ## App diff --git a/changelog/1.3.3.md b/changelog/1.3.3.md index 39c3d297..f42506ee 100644 --- a/changelog/1.3.3.md +++ b/changelog/1.3.3.md @@ -1,6 +1,7 @@ --- version: 1.3.3 date: 2025-12-25 +title: More reliable VS Code extension startup --- ## App diff --git a/changelog/1.3.4.md b/changelog/1.3.4.md index 7c42ed2b..30a5af70 100644 --- a/changelog/1.3.4.md +++ b/changelog/1.3.4.md @@ -1,6 +1,7 @@ --- version: 1.3.4 date: 2025-12-25 +title: Diff view loads reliably on large files --- ## App diff --git a/changelog/1.3.5.md b/changelog/1.3.5.md index 014e6182..c8e22dad 100644 --- a/changelog/1.3.5.md +++ b/changelog/1.3.5.md @@ -1,6 +1,7 @@ --- version: 1.3.5 date: 2025-12-26 +title: Faster workspace switching and fuzzy file search --- ## App diff --git a/changelog/1.3.6.md b/changelog/1.3.6.md index bdc19e8c..084462f1 100644 --- a/changelog/1.3.6.md +++ b/changelog/1.3.6.md @@ -1,6 +1,7 @@ --- version: 1.3.6 date: 2025-12-27 +title: Connect and disconnect providers in settings --- ## App diff --git a/changelog/1.3.7.md b/changelog/1.3.7.md index e790efb7..da83362c 100644 --- a/changelog/1.3.7.md +++ b/changelog/1.3.7.md @@ -1,6 +1,7 @@ --- version: 1.3.7 date: 2025-12-28 +title: Redesigned settings with mobile navigation --- ## App diff --git a/changelog/1.3.8.md b/changelog/1.3.8.md index 6936b5ab..b705bd05 100644 --- a/changelog/1.3.8.md +++ b/changelog/1.3.8.md @@ -1,6 +1,7 @@ --- version: 1.3.8 date: 2025-12-29 +title: Intel Mac support and message queuing --- ## App diff --git a/changelog/1.3.9.md b/changelog/1.3.9.md index ad80b95a..28441b71 100644 --- a/changelog/1.3.9.md +++ b/changelog/1.3.9.md @@ -1,6 +1,7 @@ --- version: 1.3.9 date: 2025-12-30 +title: Skills management and catalog --- ## App diff --git a/changelog/1.4.0.md b/changelog/1.4.0.md index 1a30cc7d..d7444fd6 100644 --- a/changelog/1.4.0.md +++ b/changelog/1.4.0.md @@ -1,6 +1,7 @@ --- version: 1.4.0 date: 2026-01-01 +title: Run multiple agents in isolated worktrees --- ## App diff --git a/changelog/1.4.1.md b/changelog/1.4.1.md index 90ec09a6..e02ceee3 100644 --- a/changelog/1.4.1.md +++ b/changelog/1.4.1.md @@ -1,6 +1,7 @@ --- version: 1.4.1 date: 2026-01-02 +title: Faster terminal and multi-model comparison --- ## App diff --git a/changelog/1.4.2.md b/changelog/1.4.2.md index a6b65d2a..062b5aea 100644 --- a/changelog/1.4.2.md +++ b/changelog/1.4.2.md @@ -1,6 +1,7 @@ --- version: 1.4.2 date: 2026-01-02 +title: Timeline navigation with undo and redo --- ## App diff --git a/changelog/1.4.3.md b/changelog/1.4.3.md index 40ee4de2..7f890aa9 100644 --- a/changelog/1.4.3.md +++ b/changelog/1.4.3.md @@ -1,6 +1,7 @@ --- version: 1.4.3 date: 2026-01-04 +title: Run prompts across multiple models in parallel --- ## App diff --git a/changelog/1.4.4.md b/changelog/1.4.4.md index 22931701..8b2536ec 100644 --- a/changelog/1.4.4.md +++ b/changelog/1.4.4.md @@ -1,6 +1,7 @@ --- version: 1.4.4 date: 2026-01-08 +title: Multi-project support and worktree session setup --- ## App diff --git a/changelog/1.4.5.md b/changelog/1.4.5.md index c2c8e5db..775245d2 100644 --- a/changelog/1.4.5.md +++ b/changelog/1.4.5.md @@ -1,6 +1,7 @@ --- version: 1.4.5 date: 2026-01-08 +title: Model thinking effort and MCP toggles --- ## App diff --git a/changelog/1.4.6.md b/changelog/1.4.6.md index 5703a5be..0a14852e 100644 --- a/changelog/1.4.6.md +++ b/changelog/1.4.6.md @@ -1,6 +1,7 @@ --- version: 1.4.6 date: 2026-01-09 +title: Answer questions right in chat --- ## App diff --git a/changelog/1.4.7.md b/changelog/1.4.7.md index 1950bfd2..122145db 100644 --- a/changelog/1.4.7.md +++ b/changelog/1.4.7.md @@ -1,6 +1,7 @@ --- version: 1.4.7 date: 2026-01-10 +title: Browse skills from ClawdHub --- ## App diff --git a/changelog/1.4.8.md b/changelog/1.4.8.md index 48849d6a..3dde36cb 100644 --- a/changelog/1.4.8.md +++ b/changelog/1.4.8.md @@ -1,6 +1,7 @@ --- version: 1.4.8 date: 2026-01-14 +title: Sessions sorted by most recent activity --- ## App diff --git a/changelog/1.4.9.md b/changelog/1.4.9.md index 55e9d79b..c815be4b 100644 --- a/changelog/1.4.9.md +++ b/changelog/1.4.9.md @@ -1,6 +1,7 @@ --- version: 1.4.9 date: 2026-01-14 +title: View sessions alongside files --- ## App diff --git a/changelog/1.5.0.md b/changelog/1.5.0.md index 829837ba..79fb54d4 100644 --- a/changelog/1.5.0.md +++ b/changelog/1.5.0.md @@ -1,6 +1,7 @@ --- version: 1.5.0 date: 2026-01-16 +title: Browse workspace files in a new tab --- ## App diff --git a/changelog/1.5.1.md b/changelog/1.5.1.md index aa22b21f..876f1be9 100644 --- a/changelog/1.5.1.md +++ b/changelog/1.5.1.md @@ -1,6 +1,7 @@ --- version: 1.5.1 date: 2026-01-16 +title: Config reload no longer crashes --- ## App diff --git a/changelog/1.5.2.md b/changelog/1.5.2.md index 899feae6..22968c90 100644 --- a/changelog/1.5.2.md +++ b/changelog/1.5.2.md @@ -1,6 +1,7 @@ --- version: 1.5.2 date: 2026-01-17 +title: Start worktree sessions from branches --- ## App diff --git a/changelog/1.5.3.md b/changelog/1.5.3.md index e50b8b46..71f26db4 100644 --- a/changelog/1.5.3.md +++ b/changelog/1.5.3.md @@ -1,6 +1,7 @@ --- version: 1.5.3 date: 2026-01-20 +title: Edit files inline in the browser --- ## App diff --git a/changelog/1.5.4.md b/changelog/1.5.4.md index 00f26a63..5736f7a9 100644 --- a/changelog/1.5.4.md +++ b/changelog/1.5.4.md @@ -1,6 +1,7 @@ --- version: 1.5.4 date: 2026-01-22 +title: Apply Patch tool shows a diff preview --- ## App diff --git a/changelog/1.5.5.md b/changelog/1.5.5.md index b9c16d05..4922a99f 100644 --- a/changelog/1.5.5.md +++ b/changelog/1.5.5.md @@ -1,6 +1,7 @@ --- version: 1.5.5 date: 2026-01-23 +title: Shareable links to sessions and tabs --- ## App diff --git a/changelog/1.5.6.md b/changelog/1.5.6.md index b35c3466..66a8e719 100644 --- a/changelog/1.5.6.md +++ b/changelog/1.5.6.md @@ -1,6 +1,7 @@ --- version: 1.5.6 date: 2026-01-24 +title: Start sessions from GitHub issues and PRs --- ## App diff --git a/changelog/1.5.7.md b/changelog/1.5.7.md index 874dcff9..63d5b1c7 100644 --- a/changelog/1.5.7.md +++ b/changelog/1.5.7.md @@ -1,6 +1,7 @@ --- version: 1.5.7 date: 2026-01-24 +title: Send failed GitHub checks to chat --- ## App diff --git a/changelog/1.5.8.md b/changelog/1.5.8.md index feacc963..f2c8dac1 100644 --- a/changelog/1.5.8.md +++ b/changelog/1.5.8.md @@ -1,6 +1,7 @@ --- version: 1.5.8 date: 2026-01-26 +title: Plan and Build mode switching --- ## App diff --git a/changelog/1.5.9.md b/changelog/1.5.9.md index 89e9b11c..1ec5f5e1 100644 --- a/changelog/1.5.9.md +++ b/changelog/1.5.9.md @@ -1,6 +1,7 @@ --- version: 1.5.9 date: 2026-01-28 +title: Fully isolated worktree sessions --- ## App diff --git a/changelog/1.6.0.md b/changelog/1.6.0.md index 55c21e1c..efc00b98 100644 --- a/changelog/1.6.0.md +++ b/changelog/1.6.0.md @@ -1,6 +1,7 @@ --- version: 1.6.0 date: 2026-01-29 +title: Chat recovers automatically when it stalls --- ## App diff --git a/changelog/1.6.1.md b/changelog/1.6.1.md index 5f3279ce..67328755 100644 --- a/changelog/1.6.1.md +++ b/changelog/1.6.1.md @@ -1,6 +1,7 @@ --- version: 1.6.1 date: 2026-01-30 +title: Stop button to cancel generation mid-response --- ## App diff --git a/changelog/1.6.2.md b/changelog/1.6.2.md index 35436283..a6c5b7b1 100644 --- a/changelog/1.6.2.md +++ b/changelog/1.6.2.md @@ -1,6 +1,7 @@ --- version: 1.6.2 date: 2026-02-01 +title: 18 new themes with custom theme support --- ## App diff --git a/changelog/1.6.3.md b/changelog/1.6.3.md index e053163c..42d56ee5 100644 --- a/changelog/1.6.3.md +++ b/changelog/1.6.3.md @@ -1,6 +1,7 @@ --- version: 1.6.3 date: 2026-02-02 +title: Login protected against brute-force attempts --- ## App diff --git a/changelog/1.6.4.md b/changelog/1.6.4.md index 6692e59a..5fa8a0c5 100644 --- a/changelog/1.6.4.md +++ b/changelog/1.6.4.md @@ -1,6 +1,7 @@ --- version: 1.6.4 date: 2026-02-05 +title: Select text in chat to quote it --- ## App diff --git a/changelog/1.6.5.md b/changelog/1.6.5.md index 6dc14b6b..c1db5254 100644 --- a/changelog/1.6.5.md +++ b/changelog/1.6.5.md @@ -1,6 +1,7 @@ --- version: 1.6.5 date: 2026-02-06 +title: Prompt history and saved input drafts --- ## App diff --git a/changelog/1.6.6.md b/changelog/1.6.6.md index 082c6b90..11f2b8ca 100644 --- a/changelog/1.6.6.md +++ b/changelog/1.6.6.md @@ -1,6 +1,7 @@ --- version: 1.6.6 date: 2026-02-09 +title: Redesigned workspace with Git sidebar and terminal dock --- ## App diff --git a/changelog/1.6.7.md b/changelog/1.6.7.md index 58fbfaa4..937ed38f 100644 --- a/changelog/1.6.7.md +++ b/changelog/1.6.7.md @@ -1,6 +1,7 @@ --- version: 1.6.7 date: 2026-02-10 +title: Voice input and read-aloud responses --- ## App diff --git a/changelog/1.6.8.md b/changelog/1.6.8.md index 0135f500..156cc0ba 100644 --- a/changelog/1.6.8.md +++ b/changelog/1.6.8.md @@ -1,6 +1,7 @@ --- version: 1.6.8 date: 2026-02-12 +title: Drag and drop image attachments --- ## App diff --git a/changelog/1.6.9.md b/changelog/1.6.9.md index e19c038d..ca4b181a 100644 --- a/changelog/1.6.9.md +++ b/changelog/1.6.9.md @@ -1,6 +1,7 @@ --- version: 1.6.9 date: 2026-02-16 +title: Redesigned workspace shell with tabbed sidebars --- ## App diff --git a/changelog/1.7.0.md b/changelog/1.7.0.md index f6097170..a3646219 100644 --- a/changelog/1.7.0.md +++ b/changelog/1.7.0.md @@ -1,6 +1,7 @@ --- version: 1.7.0 date: 2026-02-17 +title: Context overview panel and inline Mermaid diagrams --- ## App diff --git a/changelog/1.7.1.md b/changelog/1.7.1.md index 9760a5fd..7ff119e1 100644 --- a/changelog/1.7.1.md +++ b/changelog/1.7.1.md @@ -1,6 +1,7 @@ --- version: 1.7.1 date: 2026-02-18 +title: Run shell commands directly in chat --- ## App diff --git a/changelog/1.7.2.md b/changelog/1.7.2.md index 9e78ade6..1be5a9f1 100644 --- a/changelog/1.7.2.md +++ b/changelog/1.7.2.md @@ -1,6 +1,7 @@ --- version: 1.7.2 date: 2026-02-20 +title: Plan view in the context panel --- ## App diff --git a/changelog/1.7.3.md b/changelog/1.7.3.md index 6da2b9d6..f2c13ef5 100644 --- a/changelog/1.7.3.md +++ b/changelog/1.7.3.md @@ -1,6 +1,7 @@ --- version: 1.7.3 date: 2026-02-21 +title: Custom session folders and keyboard shortcuts --- ## App diff --git a/changelog/1.7.4.md b/changelog/1.7.4.md index 1c0e3e29..4d0838e7 100644 --- a/changelog/1.7.4.md +++ b/changelog/1.7.4.md @@ -1,6 +1,7 @@ --- version: 1.7.4 date: 2026-02-24 +title: Redesigned settings and MCP config manager --- ## App diff --git a/changelog/1.7.5.md b/changelog/1.7.5.md index 3f9d046b..daec6e8f 100644 --- a/changelog/1.7.5.md +++ b/changelog/1.7.5.md @@ -1,6 +1,7 @@ --- version: 1.7.5 date: 2026-02-25 +title: Messages no longer duplicate or disappear --- ## App diff --git a/changelog/1.8.0.md b/changelog/1.8.0.md index 2d66ea82..9f5b838d 100644 --- a/changelog/1.8.0.md +++ b/changelog/1.8.0.md @@ -1,6 +1,7 @@ --- version: 1.8.0 date: 2026-02-28 +title: SSH remote instances and secure tunnels --- ## App diff --git a/changelog/1.8.1.md b/changelog/1.8.1.md index c9dff161..0f9f1a5f 100644 --- a/changelog/1.8.1.md +++ b/changelog/1.8.1.md @@ -1,6 +1,7 @@ --- version: 1.8.1 date: 2026-02-28 +title: No more tunnel lock screen on local sessions --- ## App diff --git a/changelog/1.8.2.md b/changelog/1.8.2.md index b63bd021..48801c3e 100644 --- a/changelog/1.8.2.md +++ b/changelog/1.8.2.md @@ -1,6 +1,7 @@ --- version: 1.8.2 date: 2026-03-01 +title: Share chat as image --- ## App diff --git a/changelog/1.8.3.md b/changelog/1.8.3.md index 7ec02528..09180cce 100644 --- a/changelog/1.8.3.md +++ b/changelog/1.8.3.md @@ -1,6 +1,7 @@ --- version: 1.8.3 date: 2026-03-02 +title: Redesigned context panel with session chat --- ## App diff --git a/changelog/1.8.4.md b/changelog/1.8.4.md index bb943504..ce5bd4aa 100644 --- a/changelog/1.8.4.md +++ b/changelog/1.8.4.md @@ -1,6 +1,7 @@ --- version: 1.8.4 date: 2026-03-04 +title: Link GitHub issues and PRs in chat --- ## App diff --git a/changelog/1.8.5.md b/changelog/1.8.5.md index 132de5a4..0f028f2c 100644 --- a/changelog/1.8.5.md +++ b/changelog/1.8.5.md @@ -1,6 +1,7 @@ --- version: 1.8.5 date: 2026-03-04 +title: Faster app startup --- ## App diff --git a/changelog/1.8.6.md b/changelog/1.8.6.md index 03540851..a51cf9c6 100644 --- a/changelog/1.8.6.md +++ b/changelog/1.8.6.md @@ -1,6 +1,7 @@ --- version: 1.8.6 date: 2026-03-13 +title: Steadier streaming and redesigned sidebar --- ## App diff --git a/changelog/1.8.7.md b/changelog/1.8.7.md index 65a62a77..2e0f93f9 100644 --- a/changelog/1.8.7.md +++ b/changelog/1.8.7.md @@ -1,6 +1,7 @@ --- version: 1.8.7 date: 2026-03-13 +title: CLI works again after global install --- ## App diff --git a/changelog/1.9.0.md b/changelog/1.9.0.md index 0c6a72ff..07deac0b 100644 --- a/changelog/1.9.0.md +++ b/changelog/1.9.0.md @@ -1,6 +1,7 @@ --- version: 1.9.0 date: 2026-03-20 +title: Redesigned sidebar and quicker permissions --- ## App diff --git a/changelog/1.9.1.md b/changelog/1.9.1.md index 8e6d8a53..66c6bc45 100644 --- a/changelog/1.9.1.md +++ b/changelog/1.9.1.md @@ -1,6 +1,7 @@ --- version: 1.9.1 date: 2026-03-20 +title: GitHub links open reliably in chat --- ## App diff --git a/changelog/1.9.10.md b/changelog/1.9.10.md index 6b114ce5..2132281b 100644 --- a/changelog/1.9.10.md +++ b/changelog/1.9.10.md @@ -1,6 +1,7 @@ --- version: 1.9.10 date: 2026-04-28 +title: Unified model picker across devices --- ## App diff --git a/changelog/1.9.2.md b/changelog/1.9.2.md index cc912ea7..f113bc72 100644 --- a/changelog/1.9.2.md +++ b/changelog/1.9.2.md @@ -1,6 +1,7 @@ --- version: 1.9.2 date: 2026-03-31 +title: Faster worktrees and smoother live sync --- ## App diff --git a/changelog/1.9.3.md b/changelog/1.9.3.md index 1edc54b1..3f713f4b 100644 --- a/changelog/1.9.3.md +++ b/changelog/1.9.3.md @@ -1,6 +1,7 @@ --- version: 1.9.3 date: 2026-03-01 +title: JSON tree viewer for structured output --- ## App diff --git a/changelog/1.9.4.md b/changelog/1.9.4.md index 54918490..cf6275b3 100644 --- a/changelog/1.9.4.md +++ b/changelog/1.9.4.md @@ -1,6 +1,7 @@ --- version: 1.9.4 date: 2026-04-07 +title: Customizable Magic Prompts --- ## App diff --git a/changelog/1.9.5.md b/changelog/1.9.5.md index be1dfb4f..86c4b51c 100644 --- a/changelog/1.9.5.md +++ b/changelog/1.9.5.md @@ -1,6 +1,7 @@ --- version: 1.9.5 date: 2026-04-14 +title: Passkey sign-in for protected instances --- ## App diff --git a/changelog/1.9.6.md b/changelog/1.9.6.md index 17efdf53..97a8e9e3 100644 --- a/changelog/1.9.6.md +++ b/changelog/1.9.6.md @@ -1,6 +1,7 @@ --- version: 1.9.6 date: 2026-04-17 +title: Scheduled tasks and LaTeX rendering --- ## App diff --git a/changelog/1.9.7.md b/changelog/1.9.7.md index 824c37c8..66d84726 100644 --- a/changelog/1.9.7.md +++ b/changelog/1.9.7.md @@ -1,6 +1,7 @@ --- version: 1.9.7 date: 2026-04-22 +title: A new Electron desktop app --- ## App diff --git a/changelog/1.9.8.md b/changelog/1.9.8.md index ace4d2e1..ed5793f7 100644 --- a/changelog/1.9.8.md +++ b/changelog/1.9.8.md @@ -1,6 +1,7 @@ --- version: 1.9.8 date: 2026-04-22 +title: A /summary command for sessions --- ## App diff --git a/changelog/1.9.9.md b/changelog/1.9.9.md index 0342f9b1..fa01fbf5 100644 --- a/changelog/1.9.9.md +++ b/changelog/1.9.9.md @@ -1,6 +1,7 @@ --- version: 1.9.9 date: 2026-04-26 +title: App translations and custom fonts --- ## App diff --git a/changelog/README.md b/changelog/README.md index cfa437d8..d985d7e4 100644 --- a/changelog/README.md +++ b/changelog/README.md @@ -6,7 +6,7 @@ One file per release, plus `unreleased.md` for what has not shipped. `bun run ch --- version: 1.22.2 date: 2026-09-06 -title: optional one-line headline +title: One-line headline, two to six words --- Optional intro paragraph shown above the groups. @@ -31,8 +31,8 @@ Optional intro paragraph shown above the groups. - Only what the extension actually mounts. Written separately, on purpose. ``` -Groups may appear in any order in a source file; the generator emits them as New, Improvements, Fixes, Misc and drops empty ones. A release without a `## VS Code` section is absent from the extension changelog. `unreleased.md` has no front matter. +Groups may appear in any order in a source file; the generator emits them as New, Improvements, Fixes, Misc and drops empty ones. A release without a `## VS Code` section is absent from the extension changelog. Every release needs a `title`; `unreleased.md` carries only the `title` line in its front matter and gets `version` and `date` at release time. `bun run changelog:check` fails when the generated files are behind their sources; CI runs it. `oc-dev create-release` promotes `unreleased.md` to `.md` with today's date and rebuilds. -How to write a bullet lives in `.agents/skills/changelog-authoring/SKILL.md`. +How to write the title and the bullets lives in `.agents/skills/changelog-authoring/SKILL.md`. diff --git a/changelog/index.json b/changelog/index.json index fbea8828..1d48fddc 100644 --- a/changelog/index.json +++ b/changelog/index.json @@ -73,7 +73,7 @@ { "version": "1.22.0", "date": "2026-08-30", - "title": null, + "title": "Linear integration and multi-repo git", "intro": null, "app": { "new": [ @@ -112,7 +112,7 @@ { "version": "1.21.1", "date": "2026-08-29", - "title": null, + "title": "Turkish interface and safer worktree moves", "intro": null, "app": { "new": [ @@ -248,7 +248,7 @@ { "version": "1.21.0", "date": "2026-08-26", - "title": null, + "title": "Comments on chat replies and redesigned shortcuts", "intro": null, "app": { "new": [ @@ -336,7 +336,7 @@ { "version": "1.20.0", "date": "2026-08-23", - "title": null, + "title": "Side questions with /btw", "intro": null, "app": { "new": [ @@ -414,7 +414,7 @@ { "version": "1.19.0", "date": "2026-08-19", - "title": null, + "title": "Claude usage limits and project knowledge", "intro": null, "app": { "new": [ @@ -483,7 +483,7 @@ { "version": "1.18.4", "date": "2026-08-14", - "title": null, + "title": "More stable server and correct message order", "intro": null, "app": { "new": [], @@ -508,7 +508,7 @@ { "version": "1.18.3", "date": "2026-08-14", - "title": null, + "title": "Agents can browse the web", "intro": null, "app": { "new": [ @@ -563,7 +563,7 @@ { "version": "1.18.2", "date": "2026-08-10", - "title": null, + "title": "Observability panel and scheduled tasks", "intro": null, "app": { "new": [ @@ -631,7 +631,7 @@ { "version": "1.18.1", "date": "2026-08-04", - "title": null, + "title": "OAuth provider sign-in works again", "intro": null, "app": { "new": [ @@ -673,7 +673,7 @@ { "version": "1.18.0", "date": "2026-08-04", - "title": null, + "title": "Guided diff walkthroughs", "intro": null, "app": { "new": [ @@ -736,7 +736,7 @@ { "version": "1.17.2", "date": "2026-08-01", - "title": null, + "title": "OpenChamber theme by default", "intro": null, "app": { "new": [ @@ -784,7 +784,7 @@ { "version": "1.17.1", "date": "2026-07-29", - "title": null, + "title": "Live output in Bash tool cards", "intro": null, "app": { "new": [ @@ -828,7 +828,7 @@ { "version": "1.17.0", "date": "2026-07-28", - "title": null, + "title": "Context panel and redesigned sidebar", "intro": null, "app": { "new": [ @@ -885,7 +885,7 @@ { "version": "1.16.3", "date": "2026-07-22", - "title": null, + "title": "Office attachments and faster session switching", "intro": null, "app": { "new": [ @@ -938,7 +938,7 @@ { "version": "1.16.2", "date": "2026-07-18", - "title": null, + "title": "A rebuilt terminal and pinned messages", "intro": null, "app": { "new": [ @@ -983,7 +983,7 @@ { "version": "1.16.1", "date": "2026-07-14", - "title": null, + "title": "Prompt Navigator and a faster sidebar", "intro": null, "app": { "new": [ @@ -1018,7 +1018,7 @@ { "version": "1.16.0", "date": "2026-07-13", - "title": null, + "title": "Session goals and faster remote access", "intro": null, "app": { "new": [ @@ -1084,7 +1084,7 @@ { "version": "1.15.0", "date": "2026-07-10", - "title": null, + "title": "Private relay and a public mobile beta", "intro": null, "app": { "new": [ @@ -1152,7 +1152,7 @@ { "version": "1.14.1", "date": "2026-07-07", - "title": null, + "title": "Recaps and suggested replies in chat", "intro": null, "app": { "new": [ @@ -1194,7 +1194,7 @@ { "version": "1.14.0", "date": "2026-07-05", - "title": null, + "title": "Voice dictation and a compact mobile composer", "intro": null, "app": { "new": [ @@ -1253,7 +1253,7 @@ { "version": "1.13.9", "date": "2026-07-02", - "title": null, + "title": "Native iOS and Android apps arrive", "intro": null, "app": { "new": [ @@ -1289,7 +1289,7 @@ { "version": "1.13.8", "date": "2026-06-29", - "title": null, + "title": "Faster startup and safer OpenCode detection", "intro": null, "app": { "new": [ @@ -1321,7 +1321,7 @@ { "version": "1.13.7", "date": "2026-06-28", - "title": null, + "title": "The update command works again", "intro": null, "app": { "new": [], @@ -1351,7 +1351,7 @@ { "version": "1.13.6", "date": "2026-06-28", - "title": null, + "title": "A Dock badge for unseen chats", "intro": null, "app": { "new": [ @@ -1379,7 +1379,7 @@ { "version": "1.13.5", "date": "2026-06-27", - "title": null, + "title": "The CLI and tunnels work again", "intro": null, "app": { "new": [], @@ -1405,7 +1405,7 @@ { "version": "1.13.4", "date": "2026-06-27", - "title": null, + "title": "Automatic review loops", "intro": null, "app": { "new": [ @@ -1449,7 +1449,7 @@ { "version": "1.13.3", "date": "2026-06-24", - "title": null, + "title": "Sign commits with SSH", "intro": null, "app": { "new": [ @@ -1508,7 +1508,7 @@ { "version": "1.13.2", "date": "2026-06-18", - "title": null, + "title": "Smoother streaming in long chats", "intro": null, "app": { "new": [], @@ -1541,7 +1541,7 @@ { "version": "1.13.1", "date": "2026-06-17", - "title": null, + "title": "Cron expressions for scheduled tasks", "intro": null, "app": { "new": [ @@ -1592,7 +1592,7 @@ { "version": "1.13.0", "date": "2026-06-15", - "title": null, + "title": "Remote access password and diff staging", "intro": null, "app": { "new": [ @@ -1660,7 +1660,7 @@ { "version": "1.12.4", "date": "2026-06-11", - "title": null, + "title": "Menu bar tray and review sessions", "intro": null, "app": { "new": [ @@ -1722,7 +1722,7 @@ { "version": "1.12.3", "date": "2026-06-05", - "title": null, + "title": "Works with OpenCode 1.15 again", "intro": null, "app": { "new": [], @@ -1747,7 +1747,7 @@ { "version": "1.12.2", "date": "2026-06-05", - "title": null, + "title": "Windows app now available", "intro": null, "app": { "new": [ @@ -1777,7 +1777,7 @@ { "version": "1.12.1", "date": "2026-06-03", - "title": null, + "title": "Changed-file chips in chat", "intro": null, "app": { "new": [ @@ -1827,7 +1827,7 @@ { "version": "1.12.0", "date": "2026-06-03", - "title": null, + "title": "A new default mobile app", "intro": null, "app": { "new": [ @@ -1865,7 +1865,7 @@ { "version": "1.11.7", "date": "2026-05-27", - "title": null, + "title": "Commit branch graphs and restored streaming", "intro": null, "app": { "new": [ @@ -1899,7 +1899,7 @@ { "version": "1.11.6", "date": "2026-05-25", - "title": null, + "title": "Manage OpenCode plugins from settings", "intro": null, "app": { "new": [ @@ -1928,7 +1928,7 @@ { "version": "1.11.5", "date": "2026-05-25", - "title": null, + "title": "Rename sessions inline", "intro": null, "app": { "new": [ @@ -1966,7 +1966,7 @@ { "version": "1.11.4", "date": "2026-05-22", - "title": null, + "title": "Composer snippets and Electron by default", "intro": null, "app": { "new": [ @@ -2004,7 +2004,7 @@ { "version": "1.11.3", "date": "2026-05-19", - "title": null, + "title": "Skills in slash command autocomplete", "intro": null, "app": { "new": [ @@ -2048,7 +2048,7 @@ { "version": "1.11.2", "date": "2026-05-18", - "title": null, + "title": "Collapsible thinking and inline commit diffs", "intro": null, "app": { "new": [ @@ -2081,7 +2081,7 @@ { "version": "1.11.1", "date": "2026-05-15", - "title": null, + "title": "Session switcher in the chat header", "intro": null, "app": { "new": [ @@ -2120,7 +2120,7 @@ { "version": "1.11.0", "date": "2026-05-14", - "title": null, + "title": "In-app OpenCode updates and offline dictation", "intro": null, "app": { "new": [ @@ -2163,7 +2163,7 @@ { "version": "1.10.4", "date": "2026-05-09", - "title": null, + "title": "Reuse local branches for PR worktrees", "intro": null, "app": { "new": [ @@ -2199,7 +2199,7 @@ { "version": "1.10.3", "date": "2026-05-08", - "title": null, + "title": "Mini Chat windows", "intro": null, "app": { "new": [ @@ -2239,7 +2239,7 @@ { "version": "1.10.2", "date": "2026-05-07", - "title": null, + "title": "Clone repositories when adding a project", "intro": null, "app": { "new": [ @@ -2273,7 +2273,7 @@ { "version": "1.10.1", "date": "2026-05-06", - "title": null, + "title": "Git sync and stash management", "intro": null, "app": { "new": [ @@ -2316,7 +2316,7 @@ { "version": "1.10.0", "date": "2026-05-05", - "title": null, + "title": "Embedded preview for dev servers", "intro": null, "app": { "new": [ @@ -2358,7 +2358,7 @@ { "version": "1.9.10", "date": "2026-04-28", - "title": null, + "title": "Unified model picker across devices", "intro": null, "app": { "new": [ @@ -2396,7 +2396,7 @@ { "version": "1.9.9", "date": "2026-04-26", - "title": null, + "title": "App translations and custom fonts", "intro": null, "app": { "new": [ @@ -2436,7 +2436,7 @@ { "version": "1.9.8", "date": "2026-04-22", - "title": null, + "title": "A /summary command for sessions", "intro": null, "app": { "new": [ @@ -2474,7 +2474,7 @@ { "version": "1.9.7", "date": "2026-04-22", - "title": null, + "title": "A new Electron desktop app", "intro": null, "app": { "new": [ @@ -2514,7 +2514,7 @@ { "version": "1.9.6", "date": "2026-04-17", - "title": null, + "title": "Scheduled tasks and LaTeX rendering", "intro": null, "app": { "new": [ @@ -2552,7 +2552,7 @@ { "version": "1.9.5", "date": "2026-04-14", - "title": null, + "title": "Passkey sign-in for protected instances", "intro": null, "app": { "new": [ @@ -2592,7 +2592,7 @@ { "version": "1.9.4", "date": "2026-04-07", - "title": null, + "title": "Customizable Magic Prompts", "intro": null, "app": { "new": [], @@ -2631,7 +2631,7 @@ { "version": "1.9.3", "date": "2026-03-01", - "title": null, + "title": "JSON tree viewer for structured output", "intro": null, "app": { "new": [ @@ -2678,7 +2678,7 @@ { "version": "1.9.2", "date": "2026-03-31", - "title": null, + "title": "Faster worktrees and smoother live sync", "intro": null, "app": { "new": [ @@ -2712,7 +2712,7 @@ { "version": "1.9.1", "date": "2026-03-20", - "title": null, + "title": "GitHub links open reliably in chat", "intro": null, "app": { "new": [ @@ -2749,7 +2749,7 @@ { "version": "1.9.0", "date": "2026-03-20", - "title": null, + "title": "Redesigned sidebar and quicker permissions", "intro": null, "app": { "new": [ @@ -2792,7 +2792,7 @@ { "version": "1.8.7", "date": "2026-03-13", - "title": null, + "title": "CLI works again after global install", "intro": null, "app": { "new": [], @@ -2818,7 +2818,7 @@ { "version": "1.8.6", "date": "2026-03-13", - "title": null, + "title": "Steadier streaming and redesigned sidebar", "intro": null, "app": { "new": [ @@ -2860,7 +2860,7 @@ { "version": "1.8.5", "date": "2026-03-04", - "title": null, + "title": "Faster app startup", "intro": null, "app": { "new": [], @@ -2897,7 +2897,7 @@ { "version": "1.8.4", "date": "2026-03-04", - "title": null, + "title": "Link GitHub issues and PRs in chat", "intro": null, "app": { "new": [ @@ -2947,7 +2947,7 @@ { "version": "1.8.3", "date": "2026-03-02", - "title": null, + "title": "Redesigned context panel with session chat", "intro": null, "app": { "new": [ @@ -2984,7 +2984,7 @@ { "version": "1.8.2", "date": "2026-03-01", - "title": null, + "title": "Share chat as image", "intro": null, "app": { "new": [ @@ -3020,7 +3020,7 @@ { "version": "1.8.1", "date": "2026-02-28", - "title": null, + "title": "No more tunnel lock screen on local sessions", "intro": null, "app": { "new": [], @@ -3042,7 +3042,7 @@ { "version": "1.8.0", "date": "2026-02-28", - "title": null, + "title": "SSH remote instances and secure tunnels", "intro": null, "app": { "new": [ @@ -3097,7 +3097,7 @@ { "version": "1.7.5", "date": "2026-02-25", - "title": null, + "title": "Messages no longer duplicate or disappear", "intro": null, "app": { "new": [ @@ -3130,7 +3130,7 @@ { "version": "1.7.4", "date": "2026-02-24", - "title": null, + "title": "Redesigned settings and MCP config manager", "intro": null, "app": { "new": [ @@ -3177,7 +3177,7 @@ { "version": "1.7.3", "date": "2026-02-21", - "title": null, + "title": "Custom session folders and keyboard shortcuts", "intro": null, "app": { "new": [ @@ -3214,7 +3214,7 @@ { "version": "1.7.2", "date": "2026-02-20", - "title": null, + "title": "Plan view in the context panel", "intro": null, "app": { "new": [ @@ -3250,7 +3250,7 @@ { "version": "1.7.1", "date": "2026-02-18", - "title": null, + "title": "Run shell commands directly in chat", "intro": null, "app": { "new": [ @@ -3287,7 +3287,7 @@ { "version": "1.7.0", "date": "2026-02-17", - "title": null, + "title": "Context overview panel and inline Mermaid diagrams", "intro": null, "app": { "new": [ @@ -3318,7 +3318,7 @@ { "version": "1.6.9", "date": "2026-02-16", - "title": null, + "title": "Redesigned workspace shell with tabbed sidebars", "intro": null, "app": { "new": [ @@ -3357,7 +3357,7 @@ { "version": "1.6.8", "date": "2026-02-12", - "title": null, + "title": "Drag and drop image attachments", "intro": null, "app": { "new": [ @@ -3394,7 +3394,7 @@ { "version": "1.6.7", "date": "2026-02-10", - "title": null, + "title": "Voice input and read-aloud responses", "intro": null, "app": { "new": [ @@ -3429,7 +3429,7 @@ { "version": "1.6.6", "date": "2026-02-09", - "title": null, + "title": "Redesigned workspace with Git sidebar and terminal dock", "intro": null, "app": { "new": [ @@ -3465,7 +3465,7 @@ { "version": "1.6.5", "date": "2026-02-06", - "title": null, + "title": "Prompt history and saved input drafts", "intro": null, "app": { "new": [ @@ -3500,7 +3500,7 @@ { "version": "1.6.4", "date": "2026-02-05", - "title": null, + "title": "Select text in chat to quote it", "intro": null, "app": { "new": [ @@ -3537,7 +3537,7 @@ { "version": "1.6.3", "date": "2026-02-02", - "title": null, + "title": "Login protected against brute-force attempts", "intro": null, "app": { "new": [], @@ -3565,7 +3565,7 @@ { "version": "1.6.2", "date": "2026-02-01", - "title": null, + "title": "18 new themes with custom theme support", "intro": null, "app": { "new": [ @@ -3598,7 +3598,7 @@ { "version": "1.6.1", "date": "2026-01-30", - "title": null, + "title": "Stop button to cancel generation mid-response", "intro": null, "app": { "new": [ @@ -3635,7 +3635,7 @@ { "version": "1.6.0", "date": "2026-01-29", - "title": null, + "title": "Chat recovers automatically when it stalls", "intro": null, "app": { "new": [ @@ -3670,7 +3670,7 @@ { "version": "1.5.9", "date": "2026-01-28", - "title": null, + "title": "Fully isolated worktree sessions", "intro": null, "app": { "new": [ @@ -3702,7 +3702,7 @@ { "version": "1.5.8", "date": "2026-01-26", - "title": null, + "title": "Plan and Build mode switching", "intro": null, "app": { "new": [ @@ -3742,7 +3742,7 @@ { "version": "1.5.7", "date": "2026-01-24", - "title": null, + "title": "Send failed GitHub checks to chat", "intro": null, "app": { "new": [], @@ -3767,7 +3767,7 @@ { "version": "1.5.6", "date": "2026-01-24", - "title": null, + "title": "Start sessions from GitHub issues and PRs", "intro": null, "app": { "new": [ @@ -3795,7 +3795,7 @@ { "version": "1.5.5", "date": "2026-01-23", - "title": null, + "title": "Shareable links to sessions and tabs", "intro": null, "app": { "new": [], @@ -3823,7 +3823,7 @@ { "version": "1.5.4", "date": "2026-01-22", - "title": null, + "title": "Apply Patch tool shows a diff preview", "intro": null, "app": { "new": [ @@ -3854,7 +3854,7 @@ { "version": "1.5.3", "date": "2026-01-20", - "title": null, + "title": "Edit files inline in the browser", "intro": null, "app": { "new": [ @@ -3890,7 +3890,7 @@ { "version": "1.5.2", "date": "2026-01-17", - "title": null, + "title": "Start worktree sessions from branches", "intro": null, "app": { "new": [ @@ -3922,7 +3922,7 @@ { "version": "1.5.1", "date": "2026-01-16", - "title": null, + "title": "Config reload no longer crashes", "intro": null, "app": { "new": [], @@ -3945,7 +3945,7 @@ { "version": "1.5.0", "date": "2026-01-16", - "title": null, + "title": "Browse workspace files in a new tab", "intro": null, "app": { "new": [ @@ -3988,7 +3988,7 @@ { "version": "1.4.9", "date": "2026-01-14", - "title": null, + "title": "View sessions alongside files", "intro": null, "app": { "new": [ @@ -4019,7 +4019,7 @@ { "version": "1.4.8", "date": "2026-01-14", - "title": null, + "title": "Sessions sorted by most recent activity", "intro": null, "app": { "new": [ @@ -4056,7 +4056,7 @@ { "version": "1.4.7", "date": "2026-01-10", - "title": null, + "title": "Browse skills from ClawdHub", "intro": null, "app": { "new": [ @@ -4080,7 +4080,7 @@ { "version": "1.4.6", "date": "2026-01-09", - "title": null, + "title": "Answer questions right in chat", "intro": null, "app": { "new": [ @@ -4110,7 +4110,7 @@ { "version": "1.4.5", "date": "2026-01-08", - "title": null, + "title": "Model thinking effort and MCP toggles", "intro": null, "app": { "new": [ @@ -4145,7 +4145,7 @@ { "version": "1.4.4", "date": "2026-01-08", - "title": null, + "title": "Multi-project support and worktree session setup", "intro": null, "app": { "new": [ @@ -4191,7 +4191,7 @@ { "version": "1.4.3", "date": "2026-01-04", - "title": null, + "title": "Run prompts across multiple models in parallel", "intro": null, "app": { "new": [ @@ -4221,7 +4221,7 @@ { "version": "1.4.2", "date": "2026-01-02", - "title": null, + "title": "Timeline navigation with undo and redo", "intro": null, "app": { "new": [ @@ -4252,7 +4252,7 @@ { "version": "1.4.1", "date": "2026-01-02", - "title": null, + "title": "Faster terminal and multi-model comparison", "intro": null, "app": { "new": [ @@ -4290,7 +4290,7 @@ { "version": "1.4.0", "date": "2026-01-01", - "title": null, + "title": "Run multiple agents in isolated worktrees", "intro": null, "app": { "new": [ @@ -4327,7 +4327,7 @@ { "version": "1.3.9", "date": "2025-12-30", - "title": null, + "title": "Skills management and catalog", "intro": null, "app": { "new": [ @@ -4353,7 +4353,7 @@ { "version": "1.3.8", "date": "2025-12-29", - "title": null, + "title": "Intel Mac support and message queuing", "intro": null, "app": { "new": [ @@ -4388,7 +4388,7 @@ { "version": "1.3.7", "date": "2025-12-28", - "title": null, + "title": "Redesigned settings with mobile navigation", "intro": null, "app": { "new": [ @@ -4421,7 +4421,7 @@ { "version": "1.3.6", "date": "2025-12-27", - "title": null, + "title": "Connect and disconnect providers in settings", "intro": null, "app": { "new": [ @@ -4447,7 +4447,7 @@ { "version": "1.3.5", "date": "2025-12-26", - "title": null, + "title": "Faster workspace switching and fuzzy file search", "intro": null, "app": { "new": [ @@ -4484,7 +4484,7 @@ { "version": "1.3.4", "date": "2025-12-25", - "title": null, + "title": "Diff view loads reliably on large files", "intro": null, "app": { "new": [], @@ -4509,7 +4509,7 @@ { "version": "1.3.3", "date": "2025-12-25", - "title": null, + "title": "More reliable VS Code extension startup", "intro": null, "app": { "new": [ @@ -4546,7 +4546,7 @@ { "version": "1.3.2", "date": "2025-12-22", - "title": null, + "title": "Directory switching no longer breaks sessions", "intro": null, "app": { "new": [], @@ -4563,7 +4563,7 @@ { "version": "1.3.1", "date": "2025-12-22", - "title": null, + "title": "New app icon and no more empty chats", "intro": null, "app": { "new": [ @@ -4582,7 +4582,7 @@ { "version": "1.3.0", "date": "2025-12-21", - "title": null, + "title": "Revert chat messages", "intro": null, "app": { "new": [ @@ -4619,7 +4619,7 @@ { "version": "1.2.9", "date": "2025-12-20", - "title": null, + "title": "Automatic session cleanup", "intro": null, "app": { "new": [ @@ -4644,7 +4644,7 @@ { "version": "1.2.8", "date": "2025-12-19", - "title": null, + "title": "Update the web app without the CLI", "intro": null, "app": { "new": [ @@ -4662,7 +4662,7 @@ { "version": "1.2.7", "date": "2025-12-19", - "title": null, + "title": "Keyboard shortcuts help menu", "intro": null, "app": { "new": [ @@ -4681,7 +4681,7 @@ { "version": "1.2.6", "date": "2025-12-19", - "title": null, + "title": "File previews in permission cards", "intro": null, "app": { "new": [ @@ -4708,7 +4708,7 @@ { "version": "1.2.5", "date": "2025-12-19", - "title": null, + "title": "Redesigned Git tab layout", "intro": null, "app": { "new": [], @@ -4737,7 +4737,7 @@ { "version": "1.2.4", "date": "2025-12-18", - "title": null, + "title": "Smoother mobile terminal scrolling", "intro": null, "app": { "new": [ @@ -4754,7 +4754,7 @@ { "version": "1.2.3", "date": "2025-12-17", - "title": null, + "title": "Image previews in the Diff tab", "intro": null, "app": { "new": [ @@ -4773,7 +4773,7 @@ { "version": "1.2.2", "date": "2025-12-17", - "title": null, + "title": "Live progress for agent tasks", "intro": null, "app": { "new": [], @@ -4799,7 +4799,7 @@ { "version": "1.2.1", "date": "2025-12-16", - "title": null, + "title": "Todo tracking row in chat", "intro": null, "app": { "new": [], @@ -4823,7 +4823,7 @@ { "version": "1.2.0", "date": "2025-12-15", - "title": null, + "title": "Favorite models and adjustable font size", "intro": null, "app": { "new": [], @@ -4851,7 +4851,7 @@ { "version": "1.1.6", "date": "2025-12-15", - "title": null, + "title": "Redesigned session unlock screen", "intro": null, "app": { "new": [], @@ -4875,7 +4875,7 @@ { "version": "1.1.5", "date": "2025-12-15", - "title": null, + "title": "Fuzzy search for file mentions", "intro": null, "app": { "new": [ @@ -4903,7 +4903,7 @@ { "version": "1.1.4", "date": "2025-12-15", - "title": null, + "title": "Flexoki syntax highlighting", "intro": null, "app": { "new": [], @@ -4929,7 +4929,7 @@ { "version": "1.1.3", "date": "2025-12-14", - "title": null, + "title": "Line wrap toggle in diff view", "intro": null, "app": { "new": [ @@ -4946,7 +4946,7 @@ { "version": "1.1.2", "date": "2025-12-13", - "title": null, + "title": "VS Code extension moves to the activity bar", "intro": null, "app": { "new": [ @@ -4976,7 +4976,7 @@ { "version": "1.1.1", "date": "2025-12-13", - "title": null, + "title": "User messages render correctly again", "intro": null, "app": { "new": [], @@ -4993,7 +4993,7 @@ { "version": "1.1.0", "date": "2025-12-13", - "title": null, + "title": "VS Code extension and answer forking", "intro": null, "app": { "new": [ @@ -5022,7 +5022,7 @@ { "version": "1.0.9", "date": "2025-12-08", - "title": null, + "title": "Changelog shown in update dialog", "intro": null, "app": { "new": [ @@ -5041,7 +5041,7 @@ { "version": "1.0.8", "date": "2025-12-08", - "title": null, + "title": "More reliable OpenCode CLI detection", "intro": null, "app": { "new": [ @@ -5059,7 +5059,7 @@ { "version": "1.0.7", "date": "2025-12-08", - "title": null, + "title": "Smoother app updates", "intro": null, "app": { "new": [], @@ -5075,7 +5075,7 @@ { "version": "1.0.6", "date": "2025-12-08", - "title": null, + "title": "Better shell environment detection", "intro": null, "app": { "new": [], @@ -5090,7 +5090,7 @@ { "version": "1.0.5", "date": "2025-12-07", - "title": null, + "title": "Older messages load without jumping", "intro": null, "app": { "new": [], @@ -5108,7 +5108,7 @@ { "version": "1.0.4", "date": "2025-12-07", - "title": null, + "title": "Faster desktop app startup", "intro": null, "app": { "new": [], @@ -5123,7 +5123,7 @@ { "version": "1.0.3", "date": "2025-12-07", - "title": null, + "title": "Refreshed onboarding and sidebar", "intro": null, "app": { "new": [], @@ -5139,7 +5139,7 @@ { "version": "1.0.2", "date": "2025-12-07", - "title": null, + "title": "Refined macOS window design", "intro": null, "app": { "new": [], @@ -5154,7 +5154,7 @@ { "version": "1.0.1", "date": "2025-12-07", - "title": null, + "title": "OpenChamber public release", "intro": null, "app": { "new": [ diff --git a/scripts/changelog/lib.mjs b/scripts/changelog/lib.mjs index 22d60383..59f0dca4 100644 --- a/scripts/changelog/lib.mjs +++ b/scripts/changelog/lib.mjs @@ -139,6 +139,7 @@ export const loadReleases = (directory) => { } const stem = name.slice(0, -3); if (!release.version || !release.date) fail(release.file, 1, 'a release file needs version and date in its front matter'); + if (!release.title) fail(release.file, 1, 'a release file needs a title in its front matter (two to six words naming its headline change)'); if (release.version !== stem) fail(release.file, 1, `version ${release.version} does not match the file name ${stem}`); releases.push(release); } @@ -214,15 +215,20 @@ export const renderOutputs = (loaded) => ({ 'changelog/index.json': renderIndex(loaded), }); -export const UNRELEASED_TEMPLATE = `## App +export const UNRELEASED_TEMPLATE = `--- +title: +--- + +## App ## VS Code `; /** - * Turn `unreleased.md` into `.md` dated `date`, and reset - * `unreleased.md` to the empty template. Refuses an empty unreleased file: - * a release with nothing to say is a mistake, not a release. + * Turn `unreleased.md` into `.md` dated `date`, keeping its title, + * and reset `unreleased.md` to the empty template. Refuses an unreleased + * file without bullets or without a title: a release with nothing to say, + * or nothing to call it, is a mistake, not a release. */ export const promoteUnreleased = (directory, version, date) => { if (!VERSION_PATTERN.test(version)) throw new Error(`version ${JSON.stringify(version)} is not x.y.z`); @@ -234,8 +240,9 @@ export const promoteUnreleased = (directory, version, date) => { const release = parseRelease(text, path.relative(process.cwd(), source)); const bullets = [...Object.values(release.app ?? {}), ...Object.values(release.vscode ?? {})].flat(); if (bullets.length === 0) throw new Error('changelog/unreleased.md has no bullets; write the release notes before releasing'); + if (!release.title) throw new Error('changelog/unreleased.md has no title; add a `title:` line to its front matter before releasing'); const body = text.replace(/^---\n[\s\S]*?\n---\n/, ''); - fs.writeFileSync(target, `---\nversion: ${version}\ndate: ${date}\n---\n\n${body.replace(/^\n+/, '')}`); + fs.writeFileSync(target, `---\nversion: ${version}\ndate: ${date}\ntitle: ${release.title}\n---\n\n${body.replace(/^\n+/, '')}`); fs.writeFileSync(source, UNRELEASED_TEMPLATE); return target; }; diff --git a/scripts/changelog/lib.test.mjs b/scripts/changelog/lib.test.mjs index 0b8e8f65..cf3ece39 100644 --- a/scripts/changelog/lib.test.mjs +++ b/scripts/changelog/lib.test.mjs @@ -54,7 +54,7 @@ test('rejects shapes the generator cannot render', () => { test('renders groups in canonical order with today\'s headers and skips versions without a VS Code section', () => { const directory = fs.mkdtempSync(path.join(os.tmpdir(), 'changelog-')); fs.writeFileSync(path.join(directory, '1.2.3.md'), release); - fs.writeFileSync(path.join(directory, '1.2.4.md'), '---\nversion: 1.2.4\ndate: 2026-02-01\n---\n\n## App\n\n### Improvements\n- Faster.\n'); + fs.writeFileSync(path.join(directory, '1.2.4.md'), '---\nversion: 1.2.4\ndate: 2026-02-01\ntitle: Faster\n---\n\n## App\n\n### Improvements\n- Faster.\n'); fs.writeFileSync(path.join(directory, 'unreleased.md'), '## App\n\n### Fixes\n- Pending fix.\n\n## VS Code\n'); const loaded = loadReleases(directory); @@ -108,18 +108,23 @@ A short intro. assert.equal(index[0].vscode, null); }); -test('loadReleases refuses a file whose name and version disagree', () => { +test('loadReleases refuses a file whose name and version disagree, and a release without a title', () => { const directory = fs.mkdtempSync(path.join(os.tmpdir(), 'changelog-')); fs.writeFileSync(path.join(directory, '9.9.9.md'), release); assert.throws(() => loadReleases(directory), /does not match the file name 9\.9\.9/); + fs.unlinkSync(path.join(directory, '9.9.9.md')); + fs.writeFileSync(path.join(directory, '1.0.0.md'), '---\nversion: 1.0.0\ndate: 2026-02-01\n---\n\n## App\n\n### Fixes\n- x.\n'); + assert.throws(() => loadReleases(directory), /needs a title/); }); -test('promoteUnreleased dates the release, resets the template, and refuses an empty release', () => { +test('promoteUnreleased dates and titles the release, resets the template, and refuses an empty or untitled release', () => { const directory = fs.mkdtempSync(path.join(os.tmpdir(), 'changelog-')); - fs.writeFileSync(path.join(directory, 'unreleased.md'), '## App\n\n### New\n- Something shipped.\n\n## VS Code\n'); + fs.writeFileSync(path.join(directory, 'unreleased.md'), '---\ntitle: Something shipped\n---\n\n## App\n\n### New\n- Something shipped.\n\n## VS Code\n'); const created = promoteUnreleased(directory, '2.0.0', '2026-03-01'); assert.equal(path.basename(created), '2.0.0.md'); - assert.match(fs.readFileSync(created, 'utf8'), /^---\nversion: 2\.0\.0\ndate: 2026-03-01\n---\n\n## App/); - assert.equal(fs.readFileSync(path.join(directory, 'unreleased.md'), 'utf8'), '## App\n\n## VS Code\n'); + assert.match(fs.readFileSync(created, 'utf8'), /^---\nversion: 2\.0\.0\ndate: 2026-03-01\ntitle: Something shipped\n---\n\n## App/); + assert.equal(fs.readFileSync(path.join(directory, 'unreleased.md'), 'utf8'), '---\ntitle:\n---\n\n## App\n\n## VS Code\n'); assert.throws(() => promoteUnreleased(directory, '2.0.1', '2026-03-02'), /has no bullets/); + fs.writeFileSync(path.join(directory, 'unreleased.md'), '## App\n\n### New\n- Untitled.\n'); + assert.throws(() => promoteUnreleased(directory, '2.0.1', '2026-03-02'), /has no title/); });