diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 664557e..e0318c8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,6 +25,17 @@ jobs: with: dotnet-version: 10.0.x + - name: Read curated release notes + id: notes + shell: pwsh + run: | + $version = $env:GITHUB_REF_NAME -replace '^v', '' + $notesPath = "docs/release-notes-$version.md" + if (!(Test-Path -LiteralPath $notesPath)) { throw "Missing release notes: $notesPath" } + $title = (Get-Content -LiteralPath $notesPath -TotalCount 1) -replace '^#\s+', '' + "path=$notesPath" >> $env:GITHUB_OUTPUT + "title=$title" >> $env:GITHUB_OUTPUT + - name: Publish (self-contained win-x64) run: dotnet publish src/MandoCode.Desktop/MandoCode.Desktop.csproj -c Release -r win-x64 --self-contained -o publish @@ -36,4 +47,6 @@ jobs: uses: softprops/action-gh-release@v2 with: files: MandoCode.Desktop-${{ github.ref_name }}-win-x64.zip - generate_release_notes: true + name: ${{ steps.notes.outputs.title }} + body_path: ${{ steps.notes.outputs.path }} + make_latest: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 9037da6..200f761 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,12 +8,38 @@ submodule. ## [Unreleased] -A new engine underneath, and a planner users can actually steer. Desktop moves onto engine -generation 0.15 and Microsoft's Agent Framework, then uses that foundation to make plans durable: -review the work before it starts, edit a step, recover after a restart, and change course when a -failure proves the remaining plan wrong. The workflow planner is now the standard execution path -for every approved plan. Desktop's version follows the engine generation, so it moves 0.14.1 → -0.15.0. +## [0.15.0] — 2026-09-10 + +**A new AI foundation, plans you can resume, and more ways to work alongside your agents.** +This release moves MandoCode Desktop from Semantic Kernel to **Microsoft Agent Framework (MAF)**. +MAF now coordinates the engine's conversations, tools, and plan execution. Desktop's notes +assistant, snapshot summaries, and skill author also move off Semantic Kernel, using +Microsoft.Extensions.AI. Your existing models, providers, skills, MCP servers, and approval +controls continue to work with the new foundation. + +### Release highlights +- **Review a plan, change it, and pick it up later.** Approved plans save their progress. Edit + steps before work starts, resume unfinished work after restarting, and approve a revised plan + when the original approach fails. Completed steps stay completed. +- **A built-in browser—for you and your agents.** Open websites in browser tabs, enter URLs, and use + familiar navigation controls. “Explain this page” refers to the tab you were viewing when you + sent the message; agent actions target explicit tabs, including forms inside embedded frames. +- **See the work as it happens.** A read-only terminal tab shows each agent's commands and live + output. Preview project files, edit text, open PDFs, and inspect local development sites without + leaving Desktop. The command view displays captured output; it is not a persistent agent shell. +- **Coordinate multiple agents.** Mention another open agent with `@` to ask a question or hand + off work. Named split panes and drag-and-drop make it easier to arrange their conversations. +- **Make each agent your own.** Save settings per agent, keep global defaults for new agents, + and pin frequently used models. Nine new themes, themed backgrounds, and readability fixes + expand the appearance options. +- **Spend less time recovering your place.** Model choices survive restarts, changing folders + keeps the conversation, repeated restore notices are removed, and deleting notes, snapshots, + or history no longer makes the remaining list slide back into place. + +**Included engine:** [MandoCode CLI v0.15.0](https://github.com/DevMando/MandoCode/releases/tag/v0.15.0), +pinned to release commit `e67578251c5716a6ede192a2e3e82e7dfda7c8f0`. +Desktop advances from 0.14.1 to 0.15.0 to match the engine generation. The Windows download +remains self-contained; users do not need to install .NET separately. ### Added - **Split view tells you which agent is which, and you rearrange it by dragging.** Each pane now @@ -101,7 +127,7 @@ for every approved plan. Desktop's version follows the engine generation, so it and can inspect, fill, select, scroll, wait, and read back fields using explicit tab and frame IDs. Navigated or removed frame targets fail without falling back to the parent. Inspection distinguishes uninspected frame content from missing form fields. -- **Shared browser tabs.** The browser button beside Snapshot opens the existing pane +- **A built-in browser with shared tabs.** The browser button beside Snapshot opens the existing pane with tabs, a new-tab button, an address bar, and back/forward/reload controls. User websites and agent previews coexist. Agent actions require explicit tab IDs; references to “this page” retain the tab viewed when the message was sent, even after switching tabs. @@ -216,7 +242,7 @@ for every approved plan. Desktop's version follows the engine generation, so it use the same Microsoft.Extensions.AI client the engine standardized on. Same prompts, same temperatures, same behavior — but Desktop no longer depends on a framework the engine has removed. Snapshot recaps and note replies are the surfaces to sanity-check. -- **Engine safety pin: `d50bfb7`** (engine 0.15.0). This is the engine `main` that ships with this +- **Released engine pin: `e675782`** (tag `v0.15.0`). This is the exact CLI release that ships with this release. It includes workflow planning as the default plan runner, manual conversation compaction, automatic planning based on task shape, the large-root context guard verified through Desktop against a real `@directory` request, image content counted toward the context @@ -233,8 +259,8 @@ for every approved plan. Desktop's version follows the engine generation, so it document icon whether the pane held a file or a live web page. - **Model status is now one line instead of several cards.** The active model, its image capability, and whether it runs in the cloud appear together as `model · active · text-only · - cloud`, replacing the separate capability notice and status pill. The cloud subscription caveat - appears once per session rather than on every model switch. + cloud`, replacing the separate capability notice and status pill. Routine model switches no + longer show the cloud subscription caveat; subscription failures still receive an explanation. - **Screenshots stay honest when the window is not on screen.** Capture reads the window's rendered surface, so it depends on the app having one. A minimized window is now reported as needing to be restored, within a bounded wait, rather than consuming the whole operation @@ -246,6 +272,11 @@ for every approved plan. Desktop's version follows the engine generation, so it a sticky header, or the suggestion list a field opens when it is filled. ### Fixed +- **Leaving split view restores the agent tabs.** Agents hidden from the tab strip while visible + in split panes return when you exit the split, so you can switch between them normally again. +- **Restoring a conversation no longer repeats context-window notices.** Old sizing notices are + omitted from restored history, and initialization does not announce intermediate model settings. + The restored conversation and final active model remain visible. - **Switching to a cloud model no longer repeats the subscription notice.** Picking a cloud model announced that cloud models need an ollama.com subscription. It was meant to say so once, but the "already said it" memory belonged to a single agent rather than the app, so every agent you @@ -321,7 +352,7 @@ for every approved plan. Desktop's version follows the engine generation, so it folder changes from here on benefit — conversations already cleared cannot be recovered. ### Test coverage -330 Desktop tests pass. New host-level coverage exercises deferred plan execution, instruction +Host-level regression coverage exercises deferred plan execution, instruction editing, dependent-step revision, checkpoint cards, Resume/Discard actions, semantic step outcomes, and truthful completion status. Browser coverage adds explicit tab targeting, frame identity, and plan-card review content. Settings coverage pins the rules a saved agent depends on: that a stored diff --git a/MandoCode b/MandoCode index d50bfb7..e675782 160000 --- a/MandoCode +++ b/MandoCode @@ -1 +1 @@ -Subproject commit d50bfb70c958a9cbefec64006ff9bb1323acf079 +Subproject commit e67578251c5716a6ede192a2e3e82e7dfda7c8f0 diff --git a/RELEASING.md b/RELEASING.md index 41b688f..f93a9af 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -10,6 +10,8 @@ must be pinned at a **released** engine commit (one with a tag). - [ ] Bump `` in `src/MandoCode.Desktop/MandoCode.Desktop.csproj`. - [ ] Roll `CHANGELOG.md`: retitle `[Unreleased]` to `[X.Y.Z] — YYYY-MM-DD` with a short narrative opener. Entries are written in plain language with the "why" included. +- [ ] Write `docs/release-notes-X.Y.Z.md` with a `# vX.Y.Z — ` first line and + an Install section. The pipeline uses this file for the release title and body. - [ ] PR the above, merge to `main`. (CI `build` check is required by the branch ruleset.) ## 2. Fresh-machine test (for anything beyond string changes) @@ -35,7 +37,7 @@ tags are immutable (repo ruleset) — a bad release means a new patch version, n ## 4. Curate the release -- Replace the auto-generated notes: title `vX.Y.Z — `, body in plain language with +- Review the published curated notes: title `vX.Y.Z — `, body in plain language with an **Install** section (download zip → extract everything → run the exe; self-contained, WebView2 is the only system dependency). Mark as latest. - Verify `https://api.github.com/repos/DevMando/MandoCode.Desktop/releases/latest` serves the diff --git a/docs/release-notes-0.15.0.md b/docs/release-notes-0.15.0.md new file mode 100644 index 0000000..47e1c92 --- /dev/null +++ b/docs/release-notes-0.15.0.md @@ -0,0 +1,68 @@ +# v0.15.0 — A new AI foundation and a more connected workspace + +MandoCode Desktop now runs on **Microsoft Agent Framework (MAF)**, replacing Semantic Kernel +in the engine. The migration brings conversations, tools, and approved plans onto a shared +agent and workflow foundation. Desktop's notes assistant, snapshot summaries, and skill author +also move off Semantic Kernel. Your existing models, providers, skills, MCP servers, and +approval controls continue to work. + +## Plans you can steer and resume + +Review and edit steps before execution, resume unfinished plans after restarting, and choose +whether to retry, skip, cancel, or approve a revised approach when work fails. Completed steps +stay settled. Use `/plan ` when you want a plan explicitly; automatic planning now looks +at the shape of the task rather than just the length of your message. Steps carry acceptance +criteria and plans include final testing, replacing the separate model verifier for every step. + +## A built-in browser—for you and your agents + +Browse websites directly inside MandoCode Desktop. Open tabs, enter URLs, and navigate with +back, forward, and reload controls. Ask the agent to explain the page you are viewing or help +fill out a form, including forms embedded in another page. Your request stays tied to that tab, +even if you switch tabs while the agent works. + +## Watch commands run and preview the results + +- **Live command output:** each agent gets a read-only output tab showing commands, working + folders, output, and completion status. A terminal indicator points you to unseen activity. + This displays captured command output; it does not introduce a persistent agent shell. +- **File and app previews:** inspect files beside the conversation, edit text with save + protection, read PDFs, and preview local development sites. Vision-capable models can receive + screenshots; text-only models are told when they cannot inspect an image. +## Let your agents work together + +Mention another open agent with `@` to ask questions or hand off work. You can keep talking +with your agent while the other works, ask for progress, and receive the result when it finishes. +Named split panes and drag-and-drop help you arrange their conversations. + +## A workspace that remembers your preferences + +Save settings independently for each agent while keeping global defaults for new ones. Pin +frequently used models, organize Skills and MCP servers with tags and filtered bulk actions, +and compact a long conversation with `/compact`. Completed work folds into expandable activity +summaries. Nine new themes, themed backgrounds, and the Midnight Ramen default background join +improvements to text and status-card readability. + +## Fixes you will notice + +- Deleting notes, snapshots, or history keeps the rest of the list in place. +- Restored conversations retain their model choices without repeated context-window notices. +- Changing an agent's project folder keeps its conversation. +- Exiting split view brings the agent tabs back. +- Routine cloud model switches no longer repeat subscription notices; failures still explain + when a subscription is required. +- Token totals use provider-reported usage, and plans with skipped or failed steps report + partial completion instead of an unqualified success. + +See the [full changelog](https://github.com/DevMando/MandoCode.Desktop/blob/v0.15.0/CHANGELOG.md) +for the complete list. This release pins the engine to +[MandoCode CLI v0.15.0](https://github.com/DevMando/MandoCode/releases/tag/v0.15.0), +commit `e67578251c5716a6ede192a2e3e82e7dfda7c8f0`. + +## Install + +Download **MandoCode.Desktop-v0.15.0-win-x64.zip** from this release, extract **all** its contents +into a folder, and run **MandoCode.Desktop.exe**. The Windows x64 package includes .NET; +Microsoft Edge WebView2 Runtime is the only separate system runtime dependency. Model access +still requires a configured provider, such as Ollama; Ollama cloud models require an active +cloud subscription.