Files
ClaudeDo/CHANGELOG.md
T

1904 lines
98 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## v2.16.0 — 2026-09-16
### Features
- dirty Ziel-Verzeichnis beim Oeffnen des Merge-Dialogs melden statt nach dem Fehlschlag (09bcd696)
- preview_merge_set flags removed symbols and locale-key overlaps (684b0115)
- Bilder aus der Zwischenablage ins interaktive Terminal einfuegen (56161e4e)
- poll the OAuth usage endpoint as fast as its measured rate limit allows (50b6b56f)
### Fixes
- duplizierter Confirm-Dialog mit "Delete"-Knopf – zusammenfuehren und lokalisieren (86cc309b)
- Worktrees-Uebersicht zeigt Task-Nummern, DIFF-Spalte trimmt statt abzuschneiden (1325ab94)
- Diff-Viewer scrollt jetzt auch horizontal synchron (4ff5383b)
- Ordner-Toggle in der Sidebar schluckt schnelle Klicks (5cdfb14f)
- preview_merge braucht einen runVerify-Parameter wie preview_merge_set (7452f6cf)
- depends_on-Nachfolger schon beim gelandeten Merge freigeben (c874bf7e)
- Worker-Neustart trifft nun den tatsaechlich laufenden Prozess (9a41bed0)
- Shutdown terminates the app even with secondary windows open (103eb9a6)
### Documentation
- update for v2.16.0 (31dfaffc)
- update for v2.15.0 (18394dd6)
## v2.15.0 — 2026-09-11
### Features
- Stash-Option fuer uncommittete Aenderungen im Ziel-Tree (251b70ce)
### Documentation
- update for v2.14.0 (8e2d37e6)
## v2.14.0 — 2026-09-10
### Features
- Listen und Ordner in einer gemischten Sidebar-Reihenfolge (bfb1c652)
- confirm before closing a running ConPTY session (eb623714)
- worker-menu Shutdown ends worker + app after confirm (1bdf2027)
- chain a normal parent's children on WaitingForChildren (d2648f96)
- localize WorkConsole, DescriptionStepsCard and the ROADBLOCK label (8e6f0d16)
- surface depends_on blocking in status chip, chain label, and detail pane (4cf601e4)
- Worker-Menü "Update Claude CLI" führt claude update aus (dbee4a0d)
- triage model picker (opus/fable) in the merge helper start modal (1177463a)
- collapsible folders for the list sidebar (25c9a619)
- list_folders table plus lists.folder_id (13e860f0)
### Fixes
- Import broadcastet TaskUpdated fuer neue Tasks (1770b677)
- ConnectedClientTracker in den externen MCP-Container teilen (3d09323e)
- de.json-Konsistenz-Pass und restliche harte EN-Strings (d6696c33)
- force English git output for locale-fragile stderr matches (5ecf6f75)
- make diff-stat parsing locale-safe and dedupe the two parsers (29ea18c4)
- report failed paste/drop in the interactive terminal (0cec0a77)
- surface worker connect/restart failures instead of no-opting (b4b62254)
- validate PowerUse window, explain effort and Prime Claude in Settings (951c2fe9)
- start_list_handler ehrlich machen, wenn keine App verbunden ist (451c0184)
- warn and block save when a list's working dir isn't a git repo (3348736e)
- show a banner when a ConPTY session dies after startup (256bea5f)
- merge duplicate top-level "checks" block in en/de.json (741f66fe)
- translate max_turns failure text to English (0fcfe7c5)
- route WeekReportService permission-mode through PermissionModeResolver (1c768529)
- report startup port conflicts instead of crashing silently (c9d4823f)
### Documentation
- record list folders in the Data and Ui CLAUDE.md (5477ae53)
- update for v2.13.6 (ec1e60be)
## v2.13.6 — 2026-09-07
### Features
- Home-Ordner als Sitzungsziel in Mission Control (f231f08a)
- Einfuegen und Datei-Drop im interaktiven Terminal (23491d3b)
- Cheat-Sheet-Fenster im Hilfe-Menue (0db9fade)
- PowerUse-Einstellungen nach Settings -> Ausfuehrung verschieben (7c7c33d6)
### Documentation
- update for v2.13.5 (c7392e08)
## v2.13.5 — 2026-09-03
### Fixes
- Version im About-Dialog aus der FileVersion lesen (cccfe2ec)
### Refactoring
- "Nach Updates suchen" ins Hilfe-Menue verschieben (c16c7b97)
### Documentation
- update for v2.13.4 (a8ec5507)
## v2.13.4 — 2026-09-03
### Fixes
- interaktive Session ohne Arbeitsverzeichnis im User-Verzeichnis starten (f70503d0)
### Documentation
- update for v2.13.3 (9360cd2f)
## v2.13.3 — 2026-09-03
### Fixes
- raise SignalR MaximumParallelInvocationsPerClient (e64d5705)
### Documentation
- update for v2.13.2 (fc25ee45)
## v2.13.2 — 2026-09-03
### Features
- Handler-Run per Knopf abbrechen (bd5aa265)
### Fixes
- strip CLAUDE_CODE_CHILD_SESSION/CLAUDECODE before every ConPTY launch (51ee5050)
- Dequeue-X auf blockierten Queue-Zeilen anzeigen und Kette konsistent halten (df3e7ba0)
- report and gate ListSettingsModal load failures instead of swallowing them (a1b20d9f)
- move ScrollViewer padding to inner content in modal bodies (e0c6b670)
- Mission Control oeffnen, wenn ein Handler-Run per MCP startet oder ein Handoff eintrifft (b05b6fba)
### Performance
- show list settings modal before its seven-round-trip load finishes (f24654df)
### Documentation
- remove stale session-skills empty-state entry (2bd48ea1)
- update for v2.13.1 (eb3aee41)
- update for v2.13.0 (2b873322)
## v2.13.1 — 2026-09-02
### Fixes
- Mission Control oeffnen, wenn ein Handler-Run per MCP startet oder ein Handoff eintrifft (9f64ba50)
## v2.13.0 — 2026-09-02
### Features
- Handler-Session vor dem Usage-Limit warnen und Handoff bis zum Reset zurueckhalten (fe818651)
- start_list_handler MCP-Tool startet einen List-Handler-Run wie der Button (c2166a0d)
- Handler-Session nach Usage-Limit-Reset automatisch neu starten (016b9203)
- PowerUse-Zeitfenster + Handoff-Schwellwert als Settings (69898be5)
- PowerUse-Toggle im Usage-Monitor, Opt-in pro Liste (19375254)
- PowerUse-Addendum an die Handler-Prompts, Cap aus den Settings (453d61ca)
- PowerUse-Flags und konfigurierbares Handoff-Budget (3cf9628f)
- depends_on als Menge statt Einzelfeld (c25732cf)
- surface the handoff round budget in the merge-helper handoff brief (81a5fc5d)
- add ExpectsNoDiff flag for verification/audit tasks (0b506f52)
- add dependency audit and diff-review threshold to list-handler prompts (9e805646)
- add "move to list" to the task row context menu (80fe188a)
- notes get their own list, a day log and an Enter chain (0f04b796)
- add_note MCP tool with a per-day agent cap (ae0c7d37)
### Fixes
- carry ExpectsNoDiff into the relocated merge MCP tools (4ee1d05f)
- stop Ui.Tests order-dependent flakiness on shared Loc.Current (dc1e67d0)
- add failureReason field to batch_get_tasks (91220177)
- make locale-parity test able to detect a malformed locale file (4c78a5d6)
- don't leave an orphaned list behind on cancel (56bc1651)
- stop treating git worktrees and submodules as repos (b6e5876b)
- fix Bandel ticket sync and reactivate the integration (30d0611b)
- Shift+Enter in the capture box, not just in the note rows (f6405804)
- let Shift+Enter break the line, and clear the leftovers around the editor (b90c5855)
- auto-bootstrap commit-less repos before creating worktrees (e0748ba3)
- bootstrap commit-less repos and survive missing git identity (de44196b)
### Performance
- switch to workstation GC to cut idle memory (c347e4fc)
### Refactoring
- share StubWorkerClient between Ui.Tests and Worker.Tests (9f90e75a)
- remove the stale-worker banner (6be62f02)
### Documentation
- Handler-Prompt praezisieren (Wave-Plan, Task-Split, review_task-Aufruf) (20b3b4ce)
- Test-Scoping fuer Implementer-Tasks, PowerUse in den Explore-Notes (416997d7)
- plan for multi-dependency depends_on relation table (84d955df)
- empty-repo hardening notes + verification item (cf093e31)
- spec + plan for empty-repo (unborn HEAD) hardening (fea8236e)
- update for v2.12.0 (1d6cd49b)
## v2.12.0 — 2026-08-28
### Features
- wählbares Listen-Icon und aufgeräumter Task-Detail-Header (c31f79d3)
- Mission Control als Session-Hub (22e70ffc)
### Fixes
- make re-approve after revert_merge do a real merge, not a silent no-op (8d597df4)
- survive a worker restart when cancelling a mid-merge unit-merge parent (1affb397)
### Documentation
- update for v2.11.0 (bbdb0223)
## v2.11.0 — 2026-08-27
### Features
- Listeneinstellungen mit Kategorie-Sidebar (4e55f916)
- Ticketsystem-Anbindung hinter einen Aus-Schalter legen (8329c925)
- Ticket-Projekt pro Liste und Import ueber das Kontextmenue (e91ade9c)
- Settings-Tab fuer die Ticketsystem-Anbindung (020f93d5)
- Ticket-Settings, Projektliste und Import ueber den Hub (f0a3a186)
- Ticket-Import pro Liste (2e236736)
- Ticket-Status-Rueckmeldung ueber TaskStateService (5aafeb6c)
- BandelTicketClient fuer die Ticketsystem-REST-API (10652780)
- TicketSystemConfig + ticket_api_base_url in worker.config.json (2a3c937f)
- ticket_ref auf tasks, ticket_project_id auf list_config (3171690b)
- claude_bin im Dateien-Tab setzbar, mit Auflösungs-Check (13b81cac)
- Throttle-Stufen im Ausfuehrung-Tab sichtbar machen (31d53b00)
- Permission-Modus pro Liste und pro Task ueberschreibbar (4464dc6f)
- Listen-Einstellungen — Checkbox fuer serialize_on_file_overlap (5cc99bfe)
- Review-Merge-Button — Claude nimmt Waiting-for-Review pro Liste ab (741c7ac5)
- verify once per batch via skipVerify + verify_merges (168ab1cd)
- run both MCP servers stateless (69fcceb2)
- add the Prime action radio group to settings (f3cb34b9)
- add the action kind to the settings viewmodels (57be4961)
- add Prime action-kind strings in en and de (514f142a)
- carry the action kind through the hub and validate custom prompts (4e8e0334)
- branch PrimeRunner on the schedule action kind (cf6a6b62)
- migrate prime_schedules with action_kind defaulting to ping (71d2972a)
- add PrimeActionKind to the schedule entity (022eaf38)
- open the TokenTracker dashboard from the usage monitor (3003cfa5)
- show cost columns and the TokenTracker hint card in the usage monitor (074c0e4d)
- surface TokenTracker status and cost in the usage monitor (bac0d69a)
- add TokenTracker analytics strings in en and de (66f743dd)
- add TokenTracker status, refresh and install to the worker client (3c3bb306)
- serve model and task usage from the TokenTracker export (44337d4b)
- cache the TokenTracker export with single-flight refresh (3f3638c1)
- run the TokenTracker CLI through the shared executable resolver (a9218045)
- pin the TokenTracker CLI invocations (d6b22ea5)
- hold the last good TokenTracker export fail-open (580d4e07)
- aggregate TokenTracker sessions by model and per task (2fca0cc4)
- parse the TokenTracker sessions export defensively (106f9a37)
- add TokenTracker export models and test fixture (16952b64)
- reproduce TokenTracker session_hash for task attribution (1cb574bd)
- Improve App Prompts (79438c00)
- Toggle "Continue on session limit reset" für Usage-Limit-Abbrüche (07dd7570)
- confirm main-window close when Mission Control sessions are open (0892883a)
- "Worktree öffnen" im Kontextmenü der Task-Zeile (ac9b0dab)
- update_task kann isManual setzen + List-Handler stellt seinen Task auf Review (ea2271cc)
- Usage-Monitor zeigt Reset-Uhrzeit hinter der Restzeit (8f983851)
- Erststart-Banner und Textkette Repo→Task→Queue→Review (UX-Struktur C) (111dd0fb)
- Settings-Modal auf Sidebar-Kategorien umbauen (56c3719e)
- Task-Zeile entdichten und Kontextmenü gruppieren (UX-Struktur A) (51dc7bd6)
- surface startup recovery via OperationProgress channel (6ec81f65)
- report worktree-creation phase on OperationProgress (eba0d842)
- surface rebase and worktree-maintenance progress on OperationProgress (42de97e1)
- Empty States für Detail-Pane und Task-Liste (UX-Audit #4) (9159f1b5)
### Fixes
- Base-URL ohne Schema laesst die Ticket-Anbindung scheitern (3322152b)
- Import-Erfolgsmeldung nicht mehr als Fehler einfaerben (2fe2ac83)
- MergeHelperSelectionModal — Task-Nummer anzeigen, Titel wrappen, Status-Spalte verbreitern (24e1d648)
- Branch-Zeile im Detail-Header — Icon stroked rendern, ohne Task ausblenden (18755910)
- Review-Merge-Button-Icon stroked rendern statt gefuellt — Linien waren unsichtbar (d7a3aa80)
- block delete on interactive-session tasks, clear ghost selection (c1ab042d)
- store ScheduledFor as real UTC instead of mislabeled local time (f70aec49)
- make modify/delete and rename/delete merge conflicts visible instead of silently staging them (533a287e)
- close status-force bypasses on Running tasks (299c7b74)
- allow the done toggle from any non-Running status (f80af122)
- restore the Settings modal body and tidy the Prime schedule row (d71c0cea)
- close the typographic quote that made de.json unparseable (9ab17d82)
- failureReason "usage_limit" nachziehen + Worktree-Gate prüft die Platte (29171b10)
- Usage-Limit-Auto-Continue verbrennt nicht mehr alle Kandidaten außer dem ersten (3dfae30f)
- thread handler task id into list-handler kickoff prompts (9c4a63d2)
- UsagePillViewModel loads snapshot on connection restore (7f94bf4a)
- Description-Editbox nutzt volle Kartenhoehe statt 320px-Deckel (a6d165a1)
- route done-toggle and dequeue through guarded TaskStateService transitions (7f337b36)
- Reactivität — Description-Save-Race, UsageMonitor-Leak, Listen-Live-Refresh (52efe3ec)
- notify IsTasksEmptyRepoHintVisible on every list switch (b997af44)
- Aktions- und Bestätigungs-Konsistenz (UX-Audit #3) (2935eef7)
- surface precondition hints for silently-disabled review buttons (UX-Audit #2) (dbb73bae)
- silent no-ops raise ErrorReported instead of swallowing failures (UX-Audit #1) (99bb5be5)
- propagate unit-merge failures instead of reporting success (f2058430)
- Stuck-Running-Fenster in Continue- und Stop-Pfad schließen (389c9126)
### Refactoring
- Datei-Scope-Serialisierung entfernen (84219a9f)
- OnlineTokenStore zu DpapiTokenStore verallgemeinert (41bfc242)
- Icon-Faerbung zentral im ICON-PAINTING-Block (1ef67760)
- drop the remaining single-implementation interfaces (0f007c53)
- merge the one-expression converters into SimpleConverters.cs (c593be2f)
- declare the SignalR wire DTOs once in ClaudeDo.Data (8930b564)
- squash the 40 migrations into one InitialCreate (39d82413)
- collapse single-implementation interfaces (296251e2)
- delete unreachable members and redundant package refs (81994aad)
- drop the transcript aggregation path in favour of TokenTracker (40879705)
- dedupe path-open helper across five view models (b2a1b790)
- derive TaskRowViewModel CanX/DisabledReason pairs from one gate method (baba9216)
- unify list-linked-repo predicate into RepoLinkage (9578c950)
- dedupe FormatRemaining between UsagePill and UsageMonitorModal (e164f1e3)
### Documentation
- Ticketsystem-Anbindung als pausiert vermerken (cb69e2a7)
- Ticketsystem-Anbindung in den CLAUDE.md-Dateien (fb1ceac1)
- IsConfigured-Kosten praezise beschreiben (e9dfea90)
- Implementierungsplan, Base-URL in worker.config.json (5a13ad44)
- Design fuer die Ticketsystem-Anbindung (63184ea3)
- neue Config-Felder + Migration-Fixture-Falle in den CLAUDE.md-Dateien (d474fd13)
- bump review-merge verified-against to 168ab1cd (187f5fc5)
- document the schedule action kinds (a1d74ab4)
- implementation plan for schedule action kinds (2dec590d)
- add the TokenTracker analytics implementation plan (884b990e)
- document TokenTracker as the analytics backend (c0bf7db6)
- spec per-schedule action kind (Ping/FillMyDay/Custom) (a873eaa9)
- spec for TokenTracker as the token-analytics backend (0e74650d)
- C5 periodische Dienste abgesagt — kein Mehrwert über bestehende Broadcasts (29868962)
- design and plan for the four structural UX themes (4cf08f81)
- update for v2.10.0 (925ba655)
## v2.10.0 — 2026-08-17
### Features
- report progress for continue_merge and unit-merge verify gate (23aab26d)
- report progress for cleanup_task_worktree, get_task_diff, preview_merge_set (aeb1a5eb)
- report per-item progress on all 7 batch_* MCP tools (53e26f03)
- gate OperationTiming.Shared behind a kill switch, off by default (43fbfd3f)
- add generic OperationProgress channel, port MergeProgress onto it (b8caa270)
- route detail-pane review actions through OperationStatus (bea85a9e)
- [A4] WeeklyReport, DailyPrep und Planning-Aktionen auf OperationStatus umstellen (bbd6151b)
- separate OperationStatus per worktree action (refresh/cleanup/reset/force-remove/batch-merge) (a0d5db0d)
- add OperationStatus feedback primitive and OperationIndicator control (ca658492)
- add operation-timing NDJSON sink for hub invokes and bulk DB paths (a614feb9)
- render dependency-chain rail, step badge, and after-chip in TaskRowView (b81d6e0b)
- compute dependency-chain step/grouping in TasksIslandViewModel (18babe3d)
- surface task numbers in row/detail UI and worker log (38af549a)
- accept #123 task numbers as MCP tool input (2a3133ef)
- surface task numbers in MCP tool return payloads (106c9644)
- add task numbers schema, allocator, and backfill migration (9e46c96b)
- wire list-handler nextPhase through the handoff hub event (c8244c67)
- wire list-handler phase parameter through handoff chain (f2609d18)
- split list-handler prompt into triage/wait/merge roles (d3b91b52)
- let set_list_config write the verify command (095d216b)
- add reconcile tick to self-heal lost worker broadcasts (1cad2649)
- auto-rebase overlapping WaitingForReview branches after a merge (2662e7bd)
- warn when the base branch has uncommitted changes (d3155e68)
- truncate/select batch_get_tasks payload, expose roadblockText (ca6eb62b)
- dependsOn via MCP + honest staleness signal in merge preview (6c8ec245)
- expose the conflict resolver's hunk API over MCP (5653daca)
- show child tasks as children in the merge-helper picker (659bf3e7)
- paths filter for get_task_diff, subset hint for preview_merge_set (c715c96a)
- build/test the merge preview, not just the post-merge merge (effece3a)
- wire prompt_override into the daily prep prompt (1b7f7f38)
- open a list's findings folder (0568f003)
- toggle whether the findings folder is committed (696abd0a)
- point autonomous runs at the findings index (87397ecf)
- add save_finding to the in-task server (519f64c0)
- add save_finding to the external server (2d4288ab)
- resolve the target store from task or list (9a09dd61)
- add findings_tracked to lists (389892d2)
- add the .claudedo findings store (d3c2e2e7)
### Fixes
- stop tests from polluting the live operation-timing.ndjson (c1ec05a4)
- offload DiffAlignment.Build off the UI thread above a line threshold (c9afc81f)
- unfreeze the operation spinner and attribute rebind churn (589b9e75)
- show ParseOp indicator on the planning-mode diff parse too (f6994f32)
- offload UnifiedDiffParser.Parse off the UI thread in DiffViewerViewModel (9fc8ed39)
- connection pill opens worker help only when disconnected (b9827eac)
- conventional merge-commit default and live verify progress (cad0582b)
- stop ClearCompletedAsync from mutating chain-display fields (e55c84cd)
- reconcile the log visualizer tick instead of clearing Rows (d327a100)
- move the tasks list inset off the ListBox onto the panel (1861832b)
- honor wait_for_task_change's NotFound contract, harden TaskNumberAllocator (b656a241)
- name quarantined prompt files and their replacements in the recovery Warn (1003fdbf)
- close the outgoing ConPTY pane on merge-helper handoff (e343baf2)
- cap the list-handler wait/merge handoff chain server-side (39b24c2f)
- stop the reconcile ticks from destroying user state (79b35801)
- keep task rows without a chain relation flat (eb66ae7b)
- give Ui.Tests task seeds a unique Number (8da1a123)
- stop clipping the last log line in scrollable output (69278056)
- stop review-feedback field clipping placeholder and typed text (d60ecb7f)
- add vertical spacing between task rows (6a731beb)
- only fail a run on denied write tools with a worktree (11103d4d)
- carry the pathspec into GetBranchDiffAsync's fallback (1acd4c17)
- stop the merge-helper tick from re-ticking unticked candidates (d3ba279b)
- keep wait_for_task_change waiting through a planning-chain block (7106bf75)
- stop set_list_config from clearing settings it doesn't expose (f31b1b4f)
- normalize a list working dir's trailing separator on write (d451edd3)
- stop AddTaskDependency's table rebuild from dropping scope_globs (6d8cbacc)
- re-emit the flat list's section headers on a language change (bbfe4024)
- stop the reconcile tick on native close, index rows in the tick (82881acc)
- name the cancellationToken arg in the preview_merge_set subset test (514d6111)
- wire mcp config into resumed runs (47918869)
- substitute acceptEdits for haiku's silent auto-mode downgrade, fail permission-denial-only runs (db50e710)
- don't drop the prerelease marker when comparing versions (84715665)
- keep wait_for_task_change alive past Claude Code's idle timeout (09add299)
- report a Failed task's failureReason instead of a bare status (a067a7bf)
- make set_task_config/set_list_config patch instead of overwrite (5eea4391)
- diff viewer opens non-modal and maximizable (f74c7dd7)
- refuse a merge that would overwrite an untracked file in the target (afe1b68f)
- stop sibling worktrees from landing inside the repo tree (5d362b69)
- stage only resolved conflict paths in continue_merge (29c79e8b)
### Performance
- build task row context menu lazily on right-click (e98cf460)
- push task-list filtering into SQL (7f10d458)
### Refactoring
- extract ProgressReporter from TaskMergeService (555933a9)
- flatten TasksIsland's task list into one virtualized ListBox (ec6c2308)
- clean up task-row drag visuals (359bb3a4)
- trim the save_finding description to the style budget (b312095f)
- share the info/exclude writer with the findings store (4d997a5f)
### Documentation
- record the operation-feedback state before the v2.10.0 cut (f9a8ed76)
- document OperationStatus and MCP progress-reporting rules (8098b7f4)
- grobe Task-Entwürfe je Gruppe und Test-Kommandos ergänzen (eca16a35)
- Vorgaben je Merge-Helper-Gruppe für Operations-Feedback (260cb5a8)
- Peer-Commit als aufgelöste Abhängigkeit festhalten (72d46af6)
- Design für Feedback bei langlaufenden Operationen (ba1a745e)
- drop the nameof leak from the handoff tool description (4ce5ae71)
- update for task-numbers features (Slice 5) (e8e2fcec)
- add task-numbers and dependency-chain display designs (31a9e87b)
- report Phase 2a virtualization+drag gate spike (2a899149)
- record the findings store and fix the git-test skip convention (6a2a19cc)
- correct the findings-pointer comment (f7177423)
- plan the findings store implementation (37c3b476)
- spec the .claudedo findings store (ae1f6fc7)
- update for v2.9.0 (18a32606)
## v2.9.0 — 2026-08-08
### Features
- default to the Git tab for manual and interactive tasks (549aee09)
- let resizable modals snap to the screen edges (b06bbc21)
- add fable to the cost-ascending model list (15958b99)
- split throttle thresholds per bucket, add draggable gauge markers (7eeb8f50)
- add persisted side-by-side and wrap toggles to the diff viewer (cf80fe3c)
- sync vertical scrolling across the split panes (14e0cffa)
- tint diff rows and changed words via background renderers (861ba12f)
- draw old and new line numbers in a custom margin (e299421f)
- add AvaloniaEdit-based diff control with TextMate highlighting (ffc60c41)
- add filler, gap and word-diff brushes (e2d987e9)
- persist diff view mode and wrap preference in ui config (59827757)
- highlight changed words inside paired diff lines (ebbee600)
- align parsed diff lines into side-by-side rows (3cd0f087)
### Fixes
- label split panes, unify the mode switch, sync split scrolling (9437121f)
- install background renderers on attach so themed brushes resolve (2f3f9387)
- resolve themed brushes and stop recomputing alignment on layout toggle (54b179fb)
- close TOCTOU race in slot-failure broadcast poll (c6d1fff8)
- broadcast TaskUpdated after online-inbox import (3acb1cba)
- broadcast WorktreeUpdated when a worktree is created (a7a3545e)
- fail the task when a queue slot runner throws (c1184adc)
- drop stale delta refreshes so the newest task state wins (ac099dd1)
- retry the task delta refresh instead of swallowing the error (cba7d01c)
- give both processes a SQLite busy timeout (f62dbb92)
- correct five prompt claims that contradicted the tool allowlists (315bea7c)
- correct the list-handler wait cap and wait through WaitingForChildren (c4e4e097)
- make template token substitution order-independent (028ac573)
- stop a dispatcher exception from killing the whole app (17e6cd61)
- strip trailing separator from the list repo in ConPTY launch args (4a7b00ed)
### Refactoring
- drop rendering helpers orphaned by DiffLinesView (51371cf6)
- render planning mode per file and retire DiffLinesView (f7fa8292)
- rewrite external MCP tool descriptions for trigger clarity (c792765e)
- split the list-handler prompt per session phase (a7ff1b3a)
### Documentation
- record the shared diff plumbing and the modal chrome rules (af0f318b)
- pin the review-merge verified-against commit (4e44251d)
- implementation plan for handler-run task links (231b0637)
- record that the sqlite busy-timeout finding was wrong, drop stale RunCreated mention (1f8f3efc)
- design for linking a handler run to the tasks it processed (fb29e8a8)
- drop task 7, the handler-task broadcast already exists at the hub (1e383e1c)
- add implementation plan for the side-by-side diff viewer (6e9a7cea)
- step-by-step plan for phase 1 reactivity fixes (8acf9f8d)
- design for side-by-side diff view with syntax and word highlighting (292d1717)
- design for UI reactivity and task-list performance (482d7ec3)
- document the ConPTY trailing-separator quoting trap (d5730a84)
- update for v2.8.0 (f3e6655f)
## v2.8.0 — 2026-08-06
### Features
- persist interactive session id so a closed/aborted ConPTY session can be resumed (1a988ff4)
- repo scan discovers nested repos in subfolders (7affb4c2)
- warn when the running worker predates the selected repo's merged HEAD (8bc7bc0c)
- add treatWaitingForChildrenAsBusy to wait_for_task_change (af168300)
- warn on near-duplicate titles in add_task/batch_add_tasks (3e07536e)
- add Diagnose section to SettingsWindow (7e1b1177)
- raise wait_for_task_change timeout, expose queue slot state (d43b5fce)
- add get_effective_run_config MCP tool (a768bc41)
- hand off to a fresh session after Phase 2 (4ef01274)
- add copy-last-40-lines button to log visualizer (8c251c78)
- make max-turns ceiling editable in General tab (2975f90f)
- add SystemCheckPage with blocking-error gating (5cc1ec98)
- pull in preflight check implementations as prerequisite for SystemCheckPage (05be07b2)
- add Claude CLI preflight checks (found, version, login, auto-mode) (d743a9d0)
- add Git, GitIdentity, Port, and WriteAccess preflight checks (45bc3244)
- add check abstraction and EnvironmentCheckService (8b26e23d)
- clamp max-turns to a configurable ceiling (08ac8bf7)
- make overview panes and queue strip individually resizable (3ea48ff7)
- add reading-discipline section to default system prompt (f02b7d6e)
### Fixes
- honor RunCancellationRegistry.Register's return value at both dispatch sites (109e85da)
- treat an immediate ConPTY exit as a start failure (4a28bfe8)
- surface merge-drain cancel rejection in task-row quick cancel (27d50b81)
- close interactive-session gate bypasses in reset-and-retry and plan queueing (16602104)
- surface worker-offline failures when deleting a task (a78cc526)
- bound the ConPTY launch-gate wait so a hung launch can't freeze other panes (4310f88e)
- reparse-check repo-scan root folder and move scan off UI thread (b97f55bf)
- serialize ConPTY env launch and close open-path dedupe races (176ba78e)
- gate Mission Control submit-for-review, add retry, fix event leak (57c61a20)
- block cancelling a task while its unit merge is draining (79f90a9a)
- filter the transliterated 'fuer' stopword, not the untransliterated 'fur' (efee1478)
- claim Running before creating run resources (774f9d3d)
- gate queueing on an open interactive ConPTY session (d84607f7)
- route details-pane task delete through worker to advance blocked parents (9e2a15e4)
- advance planning chains and parents on stale-Running recovery (58741c2b)
- keep ConPTY sessions alive across Mission Control layout rebuilds (aac84e48)
- suppress auto-open conflict resolver during MCP-driven merges (5d1d2d89)
- release the ShellLink COM object so reading a .lnk doesn't lock it (c6213d77)
- surface empty review ranges and blocked children over MCP (e59f6c24)
- clean up three review leftovers from the list-handler run (b54a133c)
- make list_tasks/batch_get_tasks lean by default (f8c48e2e)
- restore ForegroundHelper.AllowAny call before wt.exe launch (46c664a0)
- skip rewriting the autostart shortcut when already current (445242cd)
- remove duplicate list-settings context menu entry (68aa2f5f)
- read the persisted MCP port on update instead of the wizard default (3462ca13)
- show the MCP registration step in the progress list (e717c901)
- refresh the run session id live, close the stale handoff pane (f106c890)
- stop NumericUpDown from writing null into non-nullable settings (56f7d64f)
- apply the verify gate to worktree-less approvals and report it everywhere (091aca52)
- recover the planning session id from the on-disk transcript (b6791265)
- make Files-tab system prompts view-only, drop external-editor edit path (6887b1d0)
- broadcast TaskUpdated on queue-claimed task start (86020101)
- remove duplicate Let-Claude entry point and icon collision (df169894)
- filter EF Core/ASP.NET Core noise out of log ring buffer (29bd1b50)
- clarify worktree commits aren't auto-commits (a7d95a00)
- resolve claude CLI shims (.cmd/.bat) not just .exe on PATH (e88f9d01)
- stop 429s with an activity-dependent poll cadence + manual refresh (2700c3d8)
- pass FakeTranscriptUsageReader to TaskRunner in FailureDiagnosisTests (f6cb8250)
- stop on-disk prompt overrides from freezing forever (b1538692)
- surface the real reason a Claude run failed instead of a generic exit-code message (2ebdadff)
- record real raw token usage per run, not the uncached remainder (7d3d6d7b)
### Performance
- stop echoing task description from writing MCP tools (ecba1299)
### Documentation
- document the ConPTY env race and open-path dedupe fixes (4d9ceefe)
- reflect claim-before-create ordering in worker-task-pipeline (42a234b4)
- document the queueing gate on open ConPTY sessions (ed7cd7dc)
- document interactive session id persistence and resume precedence (6118698d)
- document stale-Running chain/parent advance fix (1649291e)
- document the kill-on-detach gotcha and ConPtyPaneHost reparenting (0d1e3b9a)
- point both drift checks at the merged state (0878bae1)
- point external-mcp drift check at the merged state (03c4ed46)
- evaluate planning-chain fork-base options, recommend fork-from-predecessor (db4177db)
- record the verify-gate reach and the NumericUpDown null trap (0f187d8e)
- mark the usage-monitor pass done and drop the light-theme checks (730ecb1a)
- record the findings from the 2026-08-06 visual pass (b6ecbb13)
- re-verify the 2026-07-24 findings and drop the fixed ones (b5a8d58e)
- drop the verified 2026-07-27 visual-pass block, keep its design notes (e113987d)
- mark the MaxTurnsCeiling editor as shipped (4309c4cb)
- drop the stale reserved-slot comment now that Claude Help Me shipped (41c2de5a)
- document Environment Checks + note unmerged prerequisite gap (a6af90ff)
- break growing enumerations into one entry per line (beef57fb)
- root-cause --permission-mode auto + CLI/.NET preflight research (dce42a9c)
- rename ConPTY session UI text to interactive session (b1e4e543)
- update for v2.7.0 (0e0438d3)
## v2.7.0 — 2026-08-05
### Features
- add usage monitor modal with gauges and model/task usage analysis (8103006e)
- add usage pill to footer and mission control header (7cbd4e66)
- expose usage/model-usage hub surface and persist run model (d4cd2024)
- add roadblock reply field to the ROADBLOCK card (d2ca7fb5)
- record merge commit SHA and add revert_merge tool (10e561f3)
- let CreateChildTask set maxTurns on child tasks (65db1cde)
- add post-merge verification gate for list merges (c9ba1e26)
- add preview_merge and preview_merge_set MCP tools (394febad)
- add splitting, turns-preflight, merge-order rules to list-handler prompt (8ed6e087)
- add wait_for_task_change MCP tool (194ce58a)
- render task descriptions into the list-handler brief (b38b0857)
- add TranscriptUsageReader for per-model token usage (e926f4db)
- add OAuth usage client + poller (20d17c68)
- add usage gate thresholds and task run model column (bedd2def)
- give the list handler its own review task (c07c1f70)
- clear focus from textboxes on Escape in the main window (52c21869)
- show newest log entries first in Log Visualizer (47edab59)
### Fixes
- install a real localizer in UsagePillViewModelTests (677a4c18)
- avoid int CommandParameter cast crash in usage monitor presets (57326f1d)
- transport ConPTY task brief via file, not CLI argument (3972ce50)
- drop notification for the removed CanPickUpInTerminal property (eee87f08)
- normalize model alias before preset lookup, wire DefaultMaxTurns as fallback (7d636c60)
- only ask list-handler dedupe questions when a candidate exists (fd50a4fb)
### Refactoring
- remove pick-up-in-terminal, keep ConPTY as the single session entry (87de53e0)
### Documentation
- mark the 2026-08-05 list-handler run complete (032debc7)
- document usage monitor & gate across CLAUDE.md files (cf9dd1cc)
- update for v2.6.0 (342a061d)
## v2.6.0 — 2026-08-04
### Fixes
- unbreak the update path and cache the download (63d8b5c2)
- clear task selection when switching lists (ab56644d)
### Documentation
- update for v2.5.0 (71050e26)
## v2.5.0 — 2026-07-29
### Features
- move a task to another list via drag & drop (92ce7a4a)
- sidebar shows queued+running, no auto-monitor seeding (44cdad38)
- expose maxParallelExecutions in get_app_settings (e6536774)
- accent color presets in Settings → General (149e2ada)
- allow Done via update_task_status with worktree guard (d5693135)
- add Let Claude handle it broom button to tasks header (7d6cb2bd)
### Fixes
- stop swallowing mutating hub call failures (b5464fc5)
- pin LogRingBuffer clock in Does_not_throw_when_detached (58f8b11d)
- propagate HubException from ApproveReviewAsync so blocked merges surface errors (e1807fd5)
### Documentation
- update for v2.4.0 (3fbbd7ab)
## v2.4.0 — 2026-07-27
### Features
- mark tasks and lists as manual (3a648b7d)
- per-model effort and turn presets (fde9615b)
- Interactive chip for tasks with an open ConPTY session (c93a20f2)
- spinners for ConPTY session start and task refine (1466d0fb)
- five-phase list-handler prompt with dedupe and enhance (e3bacc31)
- allow update_task_status to set Cancelled (cc823ec4)
### Fixes
- bind search focus to Ctrl+K instead of OemQuestion (7f9f0ca1)
- persist title edits from the detail pane (edd2774d)
### Refactoring
- make the list-handler launch spec single-list and single-repo (4877802b)
- scope "Let Claude handle it" to a single list (40eb9799)
### Documentation
- record the manual-task, effort-preset and chip/spinner changes (24f999fa)
- document the list-handler selection modal (62fc5aaa)
- describe the list-scoped five-phase handler (023e136c)
- implementation plan for the per-list task handler (ec10b068)
- per-list task handler with read/dedupe/enhance/run/merge (81cf9418)
- update for v2.3.1 (538b4ede)
## v2.3.1 — 2026-07-24
### Fixes
- retry stashing app/worker through transient file locks on update (95918414)
### Documentation
- update for v2.3.0 (93493866)
## v2.3.0 — 2026-07-24
### Features
- open merge-helper ConPTY tile from selection (083e1f39)
- add "Let Claude handle it" entry points (ecbc7349)
- add merge-helper task selection dialog (327ae2b6)
- expose merge-helper launch spec over hub + client (5ba0c09d)
- build merge-helper interactive launch spec (78d4e1a4)
- add merge-helper prompt templates (c7d64e9c)
- add continue_merge and abort_merge MCP tools (7517f2a9)
- let review_task/merge_task leave conflicts in tree via MCP (f4f7c810)
### Documentation
- helper handles all merges; manual conflict fallback (2a3ab550)
- spec + implementation plan (962f68c9)
- update for v2.2.0 (d12a8886)
## v2.2.0 — 2026-07-24
### Features
- submit interactive (ConPTY) work for review (109a35c5)
- gate Approve & Merge behind opening the diff (2aaaa239)
- run interactive planning sessions via embedded ConPTY (ef285b21)
- AskUser question banner in the detail island (798d1006)
- conflict resolver shows why Continue is disabled (da6a70ae)
- session-skills empty-state + neutral subtask terminology (85d0f9dc)
### Fixes
- use default permission mode so MCP planning tools don't prompt (624ec7a6)
- hide misleading Idle chip on planning parents (e8f7e3a4)
- show structured-output summary instead of raw JSON in OUTCOME (8a7275a7)
- live-refresh child rows on parent planning transitions (f4dd67d5)
- restore turn/token counts on task reload (0226c980)
- clearer rename display in diff viewer (b9b30530)
- diagnostic error surfacing on attachment drop (671c886c)
- surface resume-planning-session failures (ffff1ee1)
- render Plus and agent-settings gear icons (ad2acddc)
- kill cancelled runs' processes and make MCP approve actually merge (fee69998)
- make external MCP filter params optional, surface tool errors (d7ebafd5)
- merge preflights ignore untracked files in target working tree (14e4c086)
- UnifiedDiffParser mishandles paths with spaces and git-quoted paths (0f2d202b)
- validate conflict markers before staging in ContinueMergeAsync (377409e6)
- cascade cancel of a WaitingForChildren parent to its non-terminal children (941c8b98)
- advance parent when the last non-terminal child is deleted (2452e393)
- keep planning-chain cascade moving past an Idle middle link (816f247d)
### Documentation
- spec for ConPTY planning sessions (2612831a)
- record session progress (A/B done, C#9+#11, D#13+#14; C#10/#12 + group E deferred) (04044bd1)
- add fix-plan for fresh session (findings grouped by fixability); defer §10, mark §11 OK per Mika (efd7cc9b)
- §3 UnfinishedPlanning modal (Finalize/Discard PASS, Resume BUG); generalize child-row live-refresh finding; edges done (75a6e0ef)
- finding — Resume planning session is broken (session_id never captured) + error swallowed by empty catch (9efc5c90)
- §1 DiffModal error-state resolved via code analysis (defensive/unreachable, gates prevent it) (6ca8cac7)
- §4 merge-editor Abort PASS (tree clean, task stays WaitingForReview) (9a1fa3db)
- §9 attachments drag&drop UI PASS (overlay/drop/picker/remove); finding — intermittent first-drop error (9b4d3431)
- §8 Session Skills complete (Remove PASS); refresh handoff summary + fixture state (a1ba3b6e)
- §8 per-task activation + no-leak counterprobe PASS; UI partial (cards/general-tab open) (9b041ba7)
- finding — agent-settings gear uses Unicode glyph, not Icon.Settings PathIcon (inconsistent) (39fc594b)
- §8 skill install PASS (6 skills, commit-pinned); finding — Skills tab has no empty-state (b353ed6c)
- note Mika explicitly wants AskUser interaction in detail island (416e47ec)
- §7 AskUser complete — timeout UI-cleanup visually verified (banner clears) (e8b5e97a)
- §7 AskUser PASS (happy-path + backend timeout); finding — banner only in Mission Control, absent in detail island (d19ef540)
- note fixture cleanup (verif tasks/worktrees removed, ClaudeDoTests reset) (ded068c5)
- refresh handoff for next session — progress, remaining (§7-§11+edges), gotchas, fixture state (9556e0e8)
- trim to actively-verified 2026-07-24 findings; drop stale manual-verif/historical blocks (9d39a8fc)
- §5 ConPTY/Mission Control PASS (prompt-send, close kills proc); ad-hoc icon invisible + re-open re-sends noted (b536b6fb)
- §5 findings — invisible New-session icon (Icon.Plus stroke-only), re-open re-sends prompt (1b80bb0a)
- §3 PASS end-to-end (+§1 children-band, +§4 planning-conflict); dequeue-X UX nit (4394623b)
- §3 finalize findings — improvements-mislabel, child-badge live-refresh, chain not visualized (f0b05825)
- planning session permission-prompt bug + planning-active parent shows Idle (UX) (07de8971)
- clean additive approve PASS (21012283)
- §1 commit-range-after-merge PASS; blocked-merge silent-fail confirmed on clean path too (8241bf8d)
- §4 merge editor PASS end-to-end + UX findings (continue-btn, multi-file, blocked-merge) (255705d8)
- Approve & Merge silently swallows a blocked merge (no footer error) (3dfd75fb)
- §1 findings — raw-JSON outcome bug, rename/turns nits, session-tab expected (26c03a5a)
- correct permission finding — auto+haiku denies writes (not a CLI regression), §2 happy-path PASS (3211bfc0)
- log autonomous-batch results (§2/§6/§9/§12) (79ce7afe)
- track CLI 2.1.207 --permission-mode auto write-denial regression (0ad93f48)
- remove chain-cascade bug bullet (fixed in 110364a) (3d668da6)
- explore-notes convention + verification handoff for manual checks (d6891b8b)
- update for v2.1.0 (ad581291)
## v2.1.0 — 2026-07-23
### Features
- seed fresh task session with the task prompt (d8194ad5)
- New session button for ad-hoc ConPTY sessions (3feb08d9)
- fresh-worktree-on-demand + ad-hoc launch specs (9ab48d70)
- host task-based ConPTY sessions in Command Center (0513265c)
- embedded ConPTY terminal host in UI (5f740c05)
- worker launch-spec for embedded ConPTY sessions (1245e759)
- session skills registry tab + per-level selectors (7c3c0614)
- session skills SignalR surface + per-level persistence (b4c58087)
- resolve and seed session skills before each run (46264813)
- session skill registry (install/update/remove, pinned clone) (dea2b7db)
- session skills entity, repository, and migration (54cdaf89)
- pick up a task's session in a terminal (eb88dc13)
- resume a task's claude session in a terminal (140ae2fd)
### Fixes
- set monospace font + stretch on ConPTY terminal (d9a4627a)
- use library LaunchProcess instead of custom pty bypass (2b06ab0a)
- correct ConPTY terminal size + reduce lag (bb62740a)
- forward keyboard input to ConPTY terminal (25922a27)
- seed planning brief via file to avoid newline truncation (865e12c0)
### Refactoring
- remove streaming interactive stack (superseded by ConPTY) (c412a84f)
### Documentation
- update ConPTY spec + open items to final state (85c7e650)
- record ConPTY library + binding decision from spike (d28c63d2)
- ConPTY interactive sessions spec + plan (d91ad2d6)
- session skills verification items (f33838d0)
- mark cwd-skill discovery verified in headless mode (dbaefe92)
- revise for multi-skill plugin repos (ponytail) (62b245aa)
- spec + plan for per-level session skills (4e5057d3)
- pick up a task's session in a terminal — verification (1bf08eca)
- update for v2.0.0 (914fa5aa)
## v2.0.0 — 2026-06-26
### Features
- remove a queued interactive message with a ✕ (afe7218b)
- remove a queued interactive message (fd1e38fb)
- show queued interactive messages above the composer (7c9ff18c)
- broadcast interactive message queue + delivery (84034e83)
- highlight user chat messages + opt-in interrupt (stop) button (786eb287)
- queue interactive messages by default, interrupt opt-in (bdda98ec)
- interactive chat composer in the session terminal + work console (1fe72a1f)
- interactive chat composer state on the session monitor VM (140b8e15)
- worker client surface for in-app interactive sessions (9effddeb)
- in-app interactive session service, replacing the wt terminal launch (30e87e69)
- persistent streaming Claude session + live session registry (d8a043fa)
- answer a running task's question inline in Mission Control (917301d6)
- AskUser MCP tool so a running task can ask the user mid-run (c7f82801)
- replace OLE task-row drag with custom ghost drag (bec26b22)
- ghost-window drag infrastructure for task rows (05aec8eb)
- drag a task into Mission Control to queue it (3b629c21)
- read-only queue side strip in Mission Control (9eb54a0d)
- batch MCP tools for the external endpoint (1c94fbdb)
- open Settings from the Mission Control header (7f4dc8b9)
- drag-reorder Mission Control panes by their header (f6ecfc99)
- mission control pane header actions + status tinting (e2fad88f)
- mission control detach/redock toggle, clear review panes, reorder helper (fbcffce7)
- detach a monitor into its own window (5f6e7480)
- open Mission Control from the title bar (b1bd9129)
- add MissionControl window + grid (283310a3)
- add MonitorPaneView (15a3e655)
- reveal a task by id from anywhere (5a21d673)
- add MissionControlViewModel (42da8400)
- extract TaskMonitorViewModel streaming core; DetailsIsland delegates (aa7a49f6)
- collapse parent task rows by default with granular row sync (38defee3)
- shell-style review prompt line in WorkConsole (0a119f14)
- Log Visualizer overlay reachable from a clickable footer log line (c4f74a7a)
- route Serilog Warn/Error to footer + buffer recent logs for overlay (08a4f97a)
- segmented Description/Steps/Files header (9301bbc8)
- drag-and-drop file attachments on the detail pane (d8ff8cc1)
- MCP tools to attach/list/remove task files (f7e946e4)
- inject reference files into the run + clean up files on delete (6a0c0f59)
- data layer for task file attachments (3f9f0479)
### Fixes
- reap idle interactive sessions so they don't pile up (711374e8)
- kill spawned claude trees when the worker dies (faf61046)
- scroll revealed task into view + stronger selection highlight (f63be285)
- persist Online Inbox tab on settings save (66907d24)
- paint accent buttons with moss tokens instead of Fluent blue (178fd25b)
- make worktree state chips readable with on-theme tints (df84fc3f)
- keep interactive & planning prompts intact past Windows Terminal (ea16da27)
- honor runtime disable in sync loop to stop OIDC discovery (f86b7859)
- surface interactive/planning launch errors in footer (134b9fb5)
- render X remove icon as filled geometry (637886f3)
- hide batch Merge All in the global overview (5231ad6b)
### Refactoring
- split LogLineViewModel into its own file (7b6a8f08)
- single DiffViewer replaces DiffModal + WorktreeModal + PlanningDiff (167d2fec)
- single AgentConfigEditor for list + task scopes (eb0ddb56)
- drop self-update, publish stable-named ClaudeDo.Installer.exe (3cb4802f)
- single IMergeCoordinator replaces the 5 conflict seams (5be4b5c5)
- single IDialogService replaces scattered Show* dialog seams (d598a539)
- route UI quick-add through TaskRepository.AddAsync (1fb2e34f)
- drop dead hunks conflict API (b3e099ca)
### Documentation
- queued messages can be removed via ✕ (3eea2b7c)
- queued messages show in a pending strip above the composer (e7fa373a)
- interactive send=queue, interrupt opt-in via stop button (8e1732a3)
- manual-verification items for in-app interactive sessions (9c292e50)
- spec + plan for in-app interactive sessions (10342bc5)
- spec + plan for answering Claude's mid-run questions in Mission Control (946d26cc)
- add Mission Control multi-task monitoring spec + plan (d80a5783)
- document footer log routing + Log Visualizer overlay (4022bd71)
- spec + plan for worker-log footer routing and log visualizer overlay (60eb671e)
- document task file attachments across project docs (8716dd8e)
- spec + phased plan for one-component-per-feature (0993eb0e)
- update for v1.9.0 (bae89212)
## v1.9.0 — 2026-06-19
### Features
- diff Merge opens the 3-pane editor + conflict overview ruler (29a294b7)
- toggle add/remove per side, MAIN/INCOMING labels, files readout (ca4377e6)
- additive conflict accept — stack ours/theirs in click order (d5eec75b)
- add accept-both control to the 3-pane conflict gutter (18479c02)
- Rider-style 3-pane conflict editor view (c4d1acc7)
- unify planning conflicts onto the resolver + 3-pane VM foundation (378a92c1)
- move review feedback to the Output tab + review/worktree polish (3e4e4a03)
- in-app 3-way merge editor (chunk 2b) (92767c64)
- real conflict-hunk parsing pipeline (chunk 2 backend) (e779e136)
- My Day actions, orphan-aware grouping, menu restructure (4847c5c0)
- unify review actions into the Git-tab cockpit (43fb506e)
- carry ownerId on sync to prepare for multi-user (cee051bb)
- gate access on Zitadel "user" project role (23c3065f)
- Online Inbox settings tab + auth-code/PKCE login (80a2de6c)
- Online Inbox config + auth hub plumbing (Phase 2) (17c7ff51)
- real ZitadelAuthProvider (refresh-token grant, auth-code+PKCE) (619bc0c3)
- Online Inbox sync engine (Phase 1) (1ac9ced0)
- let Claude set the cheapest model per generated task via MCP (c27a179d)
### Fixes
- unresolved conflicts compose to empty, not Ours (+ review nits) (23a93ce0)
- harden 3-pane editor + document the new conflict resolver (869dd25a)
- invalidate cached access token when the signed-in user changes (cfe23cdd)
- preserve API base path in Online Inbox client (8b347de1)
- queue dispatches skip the StartRunning re-claim (74ca2e0d)
- document and test Queued→Failed guard in FailAsync (fe73f45b)
- stateless AbortPlanningMerge after worker restart mid-merge (fb1d799b)
- route FinalizeParentDoneAsync through TaskStateService (e9e4ad8f)
### Refactoring
- bring IWorkerClient to parity with WorkerClient (b5417f6b)
### Documentation
- spec + plan for Rider-style 3-pane merge editor (983c177c)
- KunsZitadel is server-side only; desktop uses an OIDC client flow (96da9fba)
- API contract, desktop design spec, and implementation plan (8cbe1adb)
- close out the review round in open.md, sync CLAUDE.md with merges (23ff3916)
- record correctness-review findings (4 confirmed as tasks) (ddeded98)
- record review findings as refactoring backlog (14487947)
- spec + plan for per-task model override via MCP (51ef488d)
- refresh CLAUDE.md files and open.md to current code state (49046310)
- update for v1.8.0 (f8f20bf6)
## v1.8.0 — 2026-06-09
### Features
- richer diff viewer + surface child roadblocks on parents (f21c65be)
- allow cancelling a WaitingForChildren parent (d6e09532)
- single approve action merges the whole unit (a8b86e25)
- approve drives the unit merge for parents with children (1abb429f)
- planning finalize enters WaitingForChildren (12732d6d)
- add get_task_config, continue_task; fix status enum, branchDeleted, merge-from-review (9f19a714)
- surface agent roadblocks and run outcome in the detail pane (763732a9)
- localize task-header, task-row and prime-schedule tooltips (a41b8de4)
- wire layer A/B conflict seams to the inline resolver (7f173dae)
- expose conflict-resolver factory and dialog seam for integrator (72687e9b)
- add inline conflict resolver view and localization (8cafad37)
- add inline conflict resolver view-model (d8a973d0)
- add inline conflict model (file/hunk with resolution) (0b623b8e)
- batch-merge cockpit view with checkboxes and conflicts panel (5edb4337)
- add batch-merge cockpit strings (en/de) (c8f82ed3)
- wire batch selection, target loading and resolve seam (1aa06077)
- expose conflict-resolution merge methods (cb208776)
- read conflict stages and write user resolutions (dcbf67c6)
- add skip-and-continue batch merge orchestration (02b11c72)
- add conflict-stage blob reads and single-path staging (74afc469)
- add batch-merge row state to worktrees cockpit VM (ef3fba16)
- fuse git tab into one approve+merge cockpit (35960535)
- route single-task merge conflicts into a resolution seam (4bf4a270)
- maximize work console via green traffic-light dot (de4ad5dc)
- add conflict-resolution worker contract (foundation for merge rework) (2dfc4559)
- rename review Retry to Continue and make Reset discard the worktree (42bb79e2)
- send Retry on Enter in the review prompt (9c5872eb)
- rework review into terminal footer and add Git tab (8819a564)
- add IsGitTab flag to work console view model (6c65158b)
- add mergeability indicator and Merge button to work console (de01579e)
- show mergeability and surface approve conflicts in the work console (0d8999dc)
- wire merge-aware approve and preview into the worker client (3202c766)
- expose PreviewMerge hub method and merge-on-approve (43f8f7f7)
- approve merges worktree before marking task done (b817c876)
- add Refine button, icon, and command to task card (2a6781f8)
- add non-destructive merge-tree conflict probe (4098f7f3)
- add RefineTask client call and refine events (82390047)
- wire RefineTask hub method, broadcaster events, and DI (e523ed85)
- add RefineRunner, prompt/args helper, and interfaces (0460d7be)
- add Refine prompt kind and default (eca6813c)
- add add_subtask tool to claudedo MCP (22830d3e)
- resize detail split by dragging the console's top edge (b8406551)
- rework work console — single Session tab, right-aligned header, turns x/y (ac9bae95)
- make steps visible at a glance; lift details card off background (99c6bf44)
- wire redesigned detail island (header + description/steps card + work console) (c71026d1)
- add WorkConsole detail component (ce50f9fc)
- add DescriptionStepsCard detail component (c323953f)
- add TaskHeaderBar detail component (9f95942d)
- compose task prompt from title + description + open steps only (299867d8)
- fold parent branch into combined-diff for improvement parents (469e68bb)
- focused custom prompt for improvement children so they stay narrow (176b9855)
- show improvement-child outcomes on the parent review card + enable tree-merge (5d34f95f)
- mark agent-suggested improvement children in the task tree (0e130177)
- surface WaitingForChildren status (chip, color, agent-strip, labels) (5363570f)
- instruct agents to offload out-of-scope work via SuggestImprovement (f60becaf)
- fold parent branch into tree-merge for improvement parents (519bfbe6)
- mint per-run MCP token + emit run-scoped --mcp-config (06e3acd5)
- resolve per-run tokens in MCP auth + register TaskRunMcpService (f3052dc5)
- add SuggestImprovement tool (server-stamped, one layer deep) (9d133e22)
- add TaskRunMcpContext + accessor (7542bc20)
- add per-run TaskRunTokenRegistry (ef86a8c2)
- base improvement-child worktree on parent HEAD (da23b6cd)
- route standalone success with children to WaitingForChildren + enqueue them (c10f5642)
- advance WaitingForChildren parent to review when children terminal (7873e600)
- add SubmitForChildrenAsync (Running -> WaitingForChildren) (6f4b5d55)
- generalize CreateChildAsync for any parent + CreatedBy stamp (6fdf04d6)
- add WaitingForChildren task status value (ee0d1257)
- roadblock badge on the task card; relocate review actions off the row (2455eacb)
- host review actions in the details panel; show review state and diff meter (d8b86e33)
- persist roadblock count on the task (49b9f1ff)
- surface reported roadblocks in the review result (1e547dea)
- carry blocks through RunResult (56ebc280)
- collect and strip CLAUDEDO_BLOCKED markers in StreamAnalyzer (cf7f0da4)
- weekly-report instructions from file, point at data sections (ac1e9b06)
- daily-prep prompt from file, English default (79bfc79d)
- expose all editable prompt files, drop agent prompt (bd1e3db1)
- retry prompt from file, append only real captured errors (edc9f773)
- externalize prompt kinds with defaults and token renderer (9bdf99d9)
- show inherited markers and max-turns override in task flyout (cd683ba2)
- show inherited markers and max-turns override in list settings (d0ab3829)
- add reusable inherited-source badge control (3e3041c1)
- add inheritance resolver returning value and source (92cee125)
- add inherited-marker, turns, and prepended-prompt strings (bba3c55e)
- mirror max-turns field on signalr config dtos (26f5936d)
- expose max-turns override over signalr and mcp config tools (b72a7888)
- resolve max-turns from task then list then global default (beae2d63)
- persist max_turns in list and task repositories (ac137f7c)
- add nullable max_turns override to list_config and tasks (97e38fb4)
- replace Plan-My-Day header icon with a stroked sun icon (52e3980c)
- trigger planning from inside the prep-log window with an empty-state hint (7d743f17)
- load persisted prep log into the terminal on open (914095dc)
- persist last prep run to a log file and serve it via GetLastPrepLog (4d82079c)
- move Clear-day and Prep-log into MyDay header icon row (c764b2bf)
- reuse SessionTerminal for prep log; fix invisible Sort icon; add Broom/List icons (f7d1b373)
- clear textbox focus on click outside any text box (fab17720)
- add Prep-log and Clear-day buttons to MyDay header (c45f8925)
- add live prep-output mode to the Details island (a8670ee2)
- expose prep stream events and ClearMyDay on the UI worker client (7676ecf0)
- add ClearMyDay hub method (fa83d7f4)
- stream prep output via PrepStarted/PrepLine/PrepFinished (e48475d6)
- add Prepare-day button to MyDay header (46ac3fc9)
- add DailyPrepMaxTasks editor to Prime Claude settings (5e0859fb)
- add RunDailyPrepNow hub method and expose DailyPrepMaxTasks (2d001602)
- run daily prep from PrimeRunner via allowed MCP tools (20b3a29d)
- add set_my_day MCP tool with cap-guard (fd7f8ac7)
- add get_daily_prep_candidates MCP tool (0bb80944)
- add DailyPrepMaxTasks app setting (3c66d651)
### Fixes
- mark task Done on every successful merge path, not just approve (f56cc617)
- merge_task marks the task Done after a successful merge (ca8326c4)
- drop unique index on lists.name (allow duplicate list names) (f5d165ba)
- harden FK pragma per-connection and seed concurrency (7f1a14ab)
- harden CLI injection, stuck-Running, chain wedge, and Fail guard (33bdff8a)
- serialize concurrent worktree add to prevent commondir race (b672c9aa)
- dispose VM subscriptions/timers, guard offline Stop, align review delta-path (01e0c1d7)
- populate review queue from WaitingForReview tasks (00a065bf)
- set prompt-action resting color on ContentPresenter (561028e6)
- discard stale mergeability probe after task or target switch (6e3f90d2)
- guard blank working dir in approve-merge before resolving target (f1cf29b5)
- update TaskMergeService ctor calls after ITaskStateService injection (98b0d58e)
- stop the console clipping the last log line (1603be0c)
- render Output log directly on the console, not as a nested card (71a3765c)
- stop app crash when approving review after Merge all (cc7355ea)
- live-update child outcomes + enable Review combined diff for improvement parents (a3f407b0)
- only planning-active children are drafts; allow improvement children to queue (8036de10)
- exempt improvement children from orphan-dequeue sweep (f25c7599)
- populate diff meter when selecting a finished task (c035720b)
- warning icon fill-rule and dedicated review section header (4522ac90)
- apply system default on every run; dedupe roadblocks (9a117a54)
- clean up orphaned worktree when the DB row insert fails (71ac4816)
- hide task header, footer and agent strip in prep/notes mode (39fa83a0)
- register IWorkerClient mapping for WeeklyReportModalViewModel (46f42a4d)
### Refactoring
- single parent-advance path for planning + improvement (b3a2daf4)
- render worktree modal diff via canonical DiffLinesView (d52243cc)
- blend review prompt into the terminal instead of a boxed footer (e22a3267)
- remove dead inline-layout handlers from DetailsIslandView (3e848710)
- share color-coded diff rendering between per-task and combined diff viewers (22a1ba7f)
- planning prompts read from editable files (1b3c6bdb)
- collapse agent prompt into system prompt (883dbc6a)
- address code smells (run-dir helper, App DI injection) (3756b818)
- remove unused Sort button from MyDay header (3a40e39f)
### Documentation
- document the unified parent-task model (c300f8c3)
- Task 4 = full approve/merge UX consolidation (803c04d9)
- spec + plan for unifying the parent-task model (8f49ebb2)
- add CHANGELOG (Keep a Changelog format) (384e0588)
- Layer C inline conflict resolver (ef2f5c51)
- Layer B multi-worktree merge cockpit plan (3060cb02)
- foundation + Layer A plan and Layer B/C parallel kickoff prompts (dd3b03b9)
- git tab merge & review rework — shared foundation + 3 layers (f4416ee1)
- add implementation plan for terminal-style review controls (096519b9)
- spec terminal-style review with Git tab and footer actions (266e6d19)
- document real git merge on approve, PreviewMerge hub method, and new GitService/WorkerClient members (cb4c396a)
- add approve-merge + conflict-preview implementation plan (75ad7b17)
- add approve-merge + conflict-preview design spec (66a7b237)
- add Refine Task implementation plan (35735483)
- add Refine Task design spec (0867bc82)
- add ClaudeDo distribution website design spec (a2c339cd)
- task-detail island redesign spec + component build prompts (8f7e2898)
- implementation plan for build-config logging + traceability (c5a4e350)
- runtime build-config detection, Warning in Release, retain 2 (e547921f)
- design for build-config debug logging + task traceability (f1316dfd)
- align Task 6 with rebased HandleSuccess (preserve SetRoadblockCount) (204b0890)
- child tasks + agent improvement loop implementation plan (da4ab0ca)
- plan for review & roadblock UX follow-up (4d528451)
- refresh prompt inventory for externalized prompts + roadblock marker (202e8dea)
- implementation plan for bundled-prompts overhaul (c8f468f2)
- child base off parent HEAD, shared planning-style tree merge (84fd2c11)
- design for reusable child tasks + agent improvement loop (30b49d10)
- design for bundled-prompts overhaul (ad7d7482)
- note max-turns override and inherited markers in module docs (75aa42b8)
- implementation plan for inherited markers, overrides, and Turns (b63c78c2)
- spec for inherited-settings display, overrides, and Turns (37ce673a)
- slim open.md down to open items only (b9741ef3)
- park mailbox proposal; skip architecture.md and ADRs (0a0d7e85)
- drop CI-pipeline item (push-to-main + release workflow makes it redundant) (72a86fc1)
- regenerate open.md against verified current state (bcf5e2f5)
- document daily-prep across area CLAUDE.md files; add Installer CLAUDE.md (fb055ce7)
- add autonomous working-style loop and agent gotchas to CLAUDE.md (9e7f37b5)
- add plan-day-in-log-window plan (53d897af)
- add prep-log persistence plan (26758b6e)
- add MyDay icons + terminal-reuse plan (2e73d333)
- add design specs and implementation plans (9470c5b1)
## v1.7.0 — 2026-06-03
### Features
- localize installer with language picker and config write-through (364a037c)
- add WPF localization primitives and Language config to installer (2fbf054a)
- localize ViewModel-built strings via ambient Loc accessor (350a89f3)
- localize Avalonia view strings via loc:Tr markup (086c6f6c)
- add language dropdown to settings and persist selection (070f5de1)
- initialize Localizer at app startup from config/OS culture (f529a5ff)
- add Language preference and Save() to AppSettings (6a85d82f)
- add Avalonia loc:Tr markup extension and LocalizedString (35ad1715)
- seed en.json and wire locale copy to app output (3c40bb5e)
- add CultureResolver for OS-culture mapping (d95d55e6)
- add Localizer with fallback chain and change event (d22b50e1)
- add LocaleStore folder discovery (a83a0c41)
- add ClaudeDo.Localization project with nested-JSON locale parser (9efde2bf)
- pinned Notes row in My Day opens the notes editor (a8943a9f)
- notes mode in the Details island (eccd06e1)
- NotesEditorView (731c291d)
- NotesEditorViewModel with day navigation and bullet CRUD (c8b5ed39)
- INotesApi wrapper for daily notes (9bf44da1)
- open Weekly Report modal from the menu (b748c156)
- WeeklyReportModalView (74fc39f1)
- WeeklyReportModalViewModel with default-range logic (ccd2ee2c)
- persist report excluded paths and standup weekday (5b89e3d0)
- WorkerClient methods for week report and daily notes (e106b00b)
- hub methods for week report and daily notes (d7558ef4)
- register report reader and service in DI (4aa4353d)
- WeekReportService orchestrates generate + store (50d84f12)
- week report prompt builder (day-major pivot) (e2271b5a)
- ClaudeHistoryReader distills session logs (bec87b3d)
- report activity models and reader interface (4cb7ad8d)
- add WeekReportRepository with tests (992fbf07)
- add DailyNoteRepository with tests (1d7b86db)
- migration for daily notes and week reports (036586e7)
- configure daily note + week report tables (d9e5d260)
- add daily note + week report entities and report settings (10d86b4b)
### Fixes
- live-refresh smart/virtual list names on language change (00ef11ac)
- notes add row stays visible, English 'Add' label, Enter to add (2d55f88a)
- sanitize report model arg, fix multi-repo summary attribution and standup-weekday sentinel (a8d8a8bd)
### Documentation
- localization implementation plan (8dc8b8ba)
- localization (i18n) design spec (baeea9c2)
- document weekly report and daily notes feature (0bc3d2a6)
- add weekly report implementation plan (f72cfae7)
- add report prompt and day-major pivot to weekly report spec (e5a2ed25)
- add weekly report feature design spec (536d8193)
## v1.6.0 — 2026-06-02
### Features
- use a 24h TimePicker for prime schedule time entry (869cf72a)
- replace prime date range with weekday toggle buttons (7db8f213)
- drive prime schedule rows from weekday toggles (37738e3c)
- map prime schedule weekday bitmask over the hub (81fd186f)
- compute prime due-time from weekday bitmask (bed4255a)
- migrate prime schedules to days_of_week bitmask (dff06d9e)
- persist weekday bitmask in prime schedule repo (0efad7a0)
- model Prime schedule as weekday bitmask (eaf27e8b)
- surface review actions and WaitingForReview status in task rows (6c27ffbd)
- add review hub methods and worker client wrappers (21f1cf2a)
- add review_task MCP tool and status reference updates (c88ed9d5)
- route standalone success to review and resume on re-queue (9c1f20f2)
- add review state transitions to TaskStateService (e8d018dd)
- add WaitingForReview status and review_feedback column (1ca32a6b)
### Fixes
- manual modal dragging, maximize/restore icon, day-toggle style (f1715a34)
- harden review re-run, timestamps, and queue affordance (1cb5171f)
### Documentation
- describe recurring-weekday Prime schedule (26998f05)
- implementation plan for recurring-weekday Prime (13c3393e)
- spec for recurring-weekday Prime schedules (4704a28e)
- document WaitingForReview state across project CLAUDE.md files (4684a0af)
- waiting-for-review implementation plan (b86677d5)
- waiting-for-review task state design (3e072fae)
## v1.5.0 — 2026-06-01
### Features
- replay run log in session terminal, drop per-row live tail (4a36fbe5)
- optionally register ClaudeDo MCP server with Claude (5170914a)
- configurable max parallel task executions (b1f4349d)
- list reordering, quick actions, and resizable modals (ab44ba5e)
## v1.4.2 — 2026-06-01
### Fixes
- stop the running app before updating, not just the worker (4148dcdb)
- keep step badges green and reset state on re-run (57837907)
## v1.4.1 — 2026-06-01
### Fixes
- track EF migration Designer files (were gitignored) (edfb702e)
## v1.4.0 — 2026-06-01
### Features
- wire worker connection modal and make status pill clickable (1246bf7b)
- prompt once on worker connection failure with grace timer (00dc7ebc)
- add worker connection help modal (01396070)
- remove Startup worker shortcut on uninstall (759d9057)
- start worker via Process.Start, drop schtasks stop (2f1dcdc1)
- register autostart via Startup shortcut, drop scheduled task (133f2d2f)
- add AutostartShortcut helper for Startup-folder lnk (e2bb43ad)
- unify type scale to 11/13/18/24 and add canonical text classes (b00e4d99)
- add reusable ModalShell control (c20fbe36)
- set global Inter Tight font default on all windows (5a25818e)
- add named tint and hairline overlay brush tokens (f0f8cd10)
### Fixes
- restore resize and full-width rows in WorktreesOverview modal (16717ab9)
- unclip Edit/Preview buttons; enlarge section labels and use mono field labels (e86464e8)
- correct SettingsModal font snap (11px is Mono, not Body) (b1006ac7)
- use LineBrush for schedule flyout border and tokenize TaskRowView (3d4a64a8)
### Refactoring
- rename StopWorkerStep.TaskName to LegacyTaskName (400a078a)
- stop auto-spawning the worker on app start (4ecd855f)
- extract ShortcutFactory COM helper (867dc372)
- migrate PlanningDiffView to ModalShell (926471da)
- drop double padding in Tasks island header (9be8e6b3)
- drop double padding in Lists island header (b9e5dfcc)
- class schedule-flyout cancel in TaskRowView (c669370e)
- class merge-section buttons in DetailsIslandView (4688e884)
- class update-banner buttons in MainWindow (8b21b0e6)
- normalize buttons/footer/padding in ConflictResolutionView (4a786eb7)
- normalize buttons/footer/padding in DiffModal (cd64f287)
- normalize buttons/footer/padding in WorktreesOverviewModal (3585ad5e)
- normalize buttons/footer/padding in RepoImportModal (990935e6)
- normalize buttons/footer/padding in UnfinishedPlanningModal (1b5a9285)
- normalize buttons/footer/padding in AboutModal (e8f880e7)
- normalize buttons/footer/padding in MergeModal (3228a08c)
- normalize buttons/footer/padding in ListSettingsModal (ccec791f)
- normalize buttons/footer/padding in SettingsModal (187fb641)
- make primary/danger buttons self-contained, drop unused btn.primary (0a719568)
- inherit terminal font for SelectableTextBlock (ccec591b)
- use sidebar-pane in PlanningDiffView (a4cb03b1)
- use diff-lineno and sidebar-pane in DiffModal (f53292e1)
- use danger-box in MergeModal (539ebecf)
- use danger-box in SettingsModal (dff5651d)
- use shared section style in ListSettingsModal (9f49b013)
- reuse task-row style for worktree rows (fb3a6acf)
- use section-divider in DetailsIslandView (4f84b15b)
- drop duplicate converters and normalize binding in ListsIslandView (27b0d51d)
- merge task-row styles and add shared section/danger-box/sidebar/accent styles (2a381048)
- unify text and close button in ThemedDatePicker (bddef5ab)
- unify text and close button in ConflictResolutionView (51d3ea2e)
- unify text and close button in PlanningDiffView (335b422e)
- unify text and close button in DiffModalView (08f3babc)
- unify text and close button in WorktreeModalView (9082f2ed)
- unify text and close button in WorktreesOverviewModalView (0f64b1c6)
- unify text and close button in RepoImportModalView (dd453874)
- unify text and close button in UnfinishedPlanningModalView (00e1d2d6)
- unify text and close button in AboutModalView (9a911354)
- unify text and close button in MergeModalView (8e595a1e)
- unify text and close button in ListSettingsModalView (97fc7158)
- unify text and close button in SettingsModalView (ed8607d4)
- apply text classes to SessionTerminalView (929e0ca1)
- apply text classes to AgentStripView (40a36308)
- apply text classes to TaskRowView (b9f5d829)
- apply text classes to DetailsIslandView (e0dda3e7)
- apply text classes to TasksIslandView (d4c66dea)
- apply text classes to ListsIslandView (a132127e)
- apply text classes to MainWindow (6e3125e7)
- consolidate list-section-label into shared section-label (7af892f4)
- fold selected-day White to TextBrush token (89440749)
- tokenize WorktreeModalView font sizes (fbd5d9f7)
- tokenize and dynamic-ize PlanningDiffView (5fdd9f0b)
- migrate ConflictResolutionView to ModalShell and use dynamic resources (bce4e0a1)
- migrate DiffModal to ModalShell and use dynamic resources (229f865e)
- migrate WorktreesOverviewModal to ModalShell (a444033a)
- migrate RepoImportModal to ModalShell (2265829a)
- migrate UnfinishedPlanningModal to ModalShell (50e05b91)
- migrate AboutModal to ModalShell (538839c0)
- migrate MergeModal to ModalShell (8d07fc29)
- migrate ListSettingsModal to ModalShell (e1bfbb0f)
- migrate SettingsModal to ModalShell (4f5db367)
- tokenize ThemedDatePicker (16b0d117)
- tokenize SessionTerminalView (a1f05da9)
- tokenize AgentStripView (0c0c73bc)
- tokenize DetailsIslandView (bff15c9b)
- tokenize TasksIslandView (f40de4bb)
- tokenize ListsIslandView (e120b0fd)
- tokenize MainWindow (e8ce7258)
- tokenize IslandStyles values and add shared modal styles (7a6bfbe1)
### Documentation
- reflect Startup-shortcut worker autostart (549b87bb)
- add worker lifecycle implementation plan (5baa1d7f)
- add worker lifecycle redesign spec (4963a726)
- add visual-check checklist for normalization pass (df733781)
- add UI normalization design spec and implementation plan (d52f23f7)
## v1.3.0 — 2026-05-30
### Features
- register new external MCP tool classes (b41a78ec)
- add external MCP app-settings read tool (9ea60701)
- add external MCP reset-failed-task tool (5a592c4b)
- add external MCP agent-listing tool (7196aab3)
- add external MCP run-history and log tools (3afe29d7)
- add external MCP list/task config tools (c3493a3a)
- add external MCP list-management tools (53f4e2de)
- run worker as per-user logon task instead of Windows service (26c4e577)
- repo-import modal — remember folders, search, compact rows, no auto-select (6d0973c6)
- add delete-list button to List Settings modal (128fb7d4)
- add 'Add repos as lists' Help-menu entry point (9c638e72)
- add repo import button to Lists island (c43b06d8)
- add RepoImportModalView (e4d958dc)
- add RepoImportModalViewModel with candidate merge logic (50b1589b)
- add RepoImportItemViewModel (1c689a84)
- add RepoScanner for git repo discovery (03617ee3)
- gate subtask queueing behind plan finalization (ce79a2d0)
- merge action and robust jump-to-task in worktrees overview (967e0cd3)
- hide list chip outside virtual list views (22238395)
- auto-select first changed file in diff modal (3587703f)
- polish worktrees overview modal (ca71275f)
- wire worktree overview modal entry points (789094fc)
- add WorktreesOverviewModalView (9f70f674)
- add WorktreesOverviewModalViewModel (182a9df7)
- add WorktreeStateColorConverter (79131f83)
- expose worktree overview client methods (b888a5f0)
- expose worktree overview, state mutation, force-remove (046da0fd)
- add ForceRemoveAsync for targeted removal (b095a29f)
- add GetOverviewAsync for overview modal (ce30d01b)
- allow CleanupFinishedAsync to filter by list (89f6b836)
- add Restart worker menu entry under Help (8d34db3f)
- prevent orphaned subtasks via guards + startup repair (d094a21e)
- add Claude CLI preflight on startup (df66c4af)
- cascade dequeue to queued children for any parent (4c92da55)
- refine planning chain re-shape on re-run (d4d5a4b8)
- status/tag context menu + ThemedDatePicker in task row (9ba238f4)
- editable task status and tags from details panel (c1856657)
- add ThemedDatePicker control and adopt in Prime settings (47b07373)
- add hub methods to set task status and tags freely (121e8cd4)
- drop 'agent' tag gate from queue claim (cfbe2fd7)
- show transient prime status in footer (5079a5fc)
- add About modal opened from Help menu (618235d8)
- refactor Settings to TabControl + add Prime Claude tab (bca8c9e4)
- split SettingsModalViewModel into per-tab VMs + add PrimeClaudeTabViewModel (8b02b63d)
- add Prime schedule client + PrimeFired event (f890fa85)
- register Prime services in DI (71c6c68c)
- add Prime schedule hub methods (507f59f1)
- broadcast PrimeFired SignalR event (13c280f6)
- add PrimeScheduler hosted service (09e3e7e8)
- add NextDueCalculator with workday + catch-up logic (975db8ab)
- add Prime scheduler abstractions + runner (f3836453)
- add PrimeScheduleDto (4e908286)
- add PrimeScheduleRepository (a335a3b6)
- add AddPrimeSchedules migration (0b90df6f)
- add PrimeScheduleEntity + configuration (6c9ccf68)
- consolidate finalize+chain via TaskStateService, fix queue pickup (4ab906ff)
- add Idle/Cancelled status, PlanningPhase enum, BlockedByTaskId field (7b737e67)
- show dequeue affordance on planning parents with queued children (bdb709b2)
- allow status changes and post-finalize edits in active session (2d7f825f)
- add SetTaskTags (59dc1e23)
- add DeleteTask (31a394e6)
- add UpdateTask for content/tag patching (d99cb68a)
- AddTask accepts tags on creation (1a74e1c0)
- add ListTags + inject TagRepository (e6846b7e)
- add TaskRepository.SetTagsAsync for full tag-set replacement (25493528)
- default permission mode to auto and surface it in UI (14cc9fb8)
- add editable system/planning/agent prompt files (7f96ae95)
- add Run interactively action to task context menu (6c54759a)
- make island layout user-resizable with grid splitters (e192285f)
- add MarkdownView control and editable description in details island (a6ca1c01)
- queue planning subtasks sequentially and surface waiting status (8f94dddb)
- add external MCP endpoint with API-key auth (45320427)
- add PlanningChainCoordinator for sequential subtask execution (16e1ddd1)
- add Waiting task status and CreatedBy column (288d2ece)
- run planning agent in plan permission mode and enforce brainstorming skill (8e9f09a8)
- register planning services and add Merge-all hub methods (3008c369)
- add pre-flight checks and idempotent restart to PlanningMergeOrchestrator (e58cac24)
- add PlanningMergeOrchestrator.AbortAsync (b9896399)
- add PlanningMergeOrchestrator.ContinueAsync to resume merge after conflict (7d87c03c)
- add PlanningMergeOrchestrator happy path with merge event broadcasts (3142ba20)
- add conflict resolution dialog for planning merge-all (bc788e1e)
- add aggregated diff viewer for planning tasks (a6ebff3f)
- add PlanningAggregator.CleanupIntegrationBranchAsync (389d9045)
- add merge-target dropdown and merge-all controls to planning detail (4c6fd9f0)
- add PlanningAggregator.BuildIntegrationBranchAsync (2cab33d7)
- add PlanningAggregator.GetAggregatedDiffAsync (a1727b64)
- add AbortMergeAsync to cancel a conflicted merge (bc0f1e31)
- add ContinueMergeAsync to resume a conflicted merge (62106ff6)
- add leaveConflictsInTree option to TaskMergeService.MergeAsync (e77ba35b)
- broadcast child TaskUpdated events on planning CRUD (5a03dc84)
- launcher passes planning token via env, drops --mcp-config (6800852a)
- cleanup planning worktree and branch on finalize/discard (48899b3d)
- create ephemeral worktree and write .mcp.json in StartAsync (fce91bcf)
- live task updates from worker events + planning polish (b7c60f58)
- SignalR hub endpoints for planning sessions (7b67e357)
- map MCP HTTP endpoint and broadcast TaskUpdated (6cb20a92)
- MCP tools update_planning_task and finalize (99c6a71e)
- MCP tools for child-task CRUD (0088d6e0)
- MCP bearer-token auth middleware (b115a4c5)
- WindowsTerminalPlanningLauncher with pre-flight checks (43a37409)
- PlanningSessionManager.GetPendingDraftCountAsync (d28164ca)
- PlanningSessionManager.FinalizeAsync (77f7cf14)
- PlanningSessionManager.DiscardAsync (84e6c2d5)
- PlanningSessionManager.ResumeAsync (84b0ba86)
- PlanningSessionManager.StartAsync (b6bec1e6)
- friendly error when deleting task with children (0e116bec)
- unfinished planning session dialog (47b49743)
- draft and planning badge styles (506caa2c)
- planning entries in task context menu (388a8c1f)
- TaskRowView hierarchy indentation, chevron, badges, draft italic (42b208ff)
- planning commands and expand/collapse in TasksIslandViewModel (309f84b3)
- WorkerClient planning-session methods (00608401)
- TaskRowViewModel gains planning hierarchy flags (229d4bbb)
- hook TryCompleteParentAsync after MarkDone/MarkFailed (d4a46420)
- TaskRepository.TryCompleteParentAsync (b7464c9a)
- TaskRepository.DiscardPlanningAsync (524aaf85)
- TaskRepository.FinalizePlanningAsync (a9e74793)
- TaskRepository.FindByPlanningTokenAsync (2e80cc60)
- TaskRepository.UpdatePlanningSessionIdAsync (d0991384)
- TaskRepository.SetPlanningStartedAsync (2278d97b)
- TaskRepository.CreateChildAsync (74255ddc)
- TaskRepository.GetChildrenAsync (b466246c)
- migration AddPlanningSupport (b3eb39a2)
- configure planning columns and self-ref FK with Restrict (253e6f05)
- add planning columns and self-ref navigations to TaskEntity (042a1b47)
- add Planning, Planned, Draft task statuses (7a20534e)
- move list-settings access from lists pane to tasks header (ee2cbc92)
- add update banner and Help menu to MainWindow (00c62178)
- wire update-check state and commands into shell VM (bbe7d73d)
- register UpdateCheckService and InstallerLocator in DI (0934b294)
- show worker log line in footer (b28d8f2f)
- add worker log state and 30s timer to shell VM (ec4ec446)
- add InstallerLocator (ee097068)
- add UpdateCheckService (c06d1d6a)
- add WorkerLogLevelToBrushConverter with tests (f906e708)
- self-update pre-flight before wizard (caf900b0)
- subscribe to WorkerLog SignalR event (e80e3fcc)
- emit WorkerLog for merge, discard, reset (e8056553)
- emit WorkerLog events from TaskRunner (ea4d2d7c)
- add SelfUpdater.DownloadAndVerifyAsync (98c188a5)
- add SelfUpdater.HandleReplaceSelfAsync (0c3dcb00)
- add SelfUpdater.DecideUpdateAsync (e017d660)
- add SelfUpdater installer-asset matching (ba0b38b4)
- add VersionComparer (7c0f8d84)
- add WorkerLog SignalR event (0a7fcae1)
- add WorkerLogLevel enum (80f66695)
- add empty ClaudeDo.Releases library (86012e02)
- replay persisted task log when selecting a task (c8c8bb4a)
- add queueing and scheduling from task row context menu (6f725d12)
- use ClaudeTask icon for window and taskbar (9952ff98)
- show version info and offer worker restart in settings (4a6d96b9)
- record data directory in install manifest (2690332d)
- harden database init and service setup steps (31218fc2)
- add Restore default agents button to Settings modal (e70ae7f6)
- add RestoreDefaultAgentsAsync to WorkerClient (1830273a)
- expose RestoreDefaultAgents hub method (1a10e6fa)
- seed default agents on startup (df57c2bc)
- add DefaultAgentSeeder for first-launch agent seeding (990be09b)
- add bundled default agent definitions (ff3de1d1)
- always-visible Steps section at top of DetailsIsland with add-step input (b0b15e47)
- per-task agent settings in DetailsIsland (bba57788)
- open ListSettingsModal via context menu and gear button (5784dbee)
- add ListSettingsModalView (5348220e)
- add ListSettingsModalViewModel (cd0b95ef)
- WorkerClient supports list/task agent settings + ListUpdated event (fc1cfe59)
- add hub methods for list and task agent settings (7c312161)
- add TaskRepository.UpdateAgentSettingsAsync (480eb081)
- add ListRepository.DeleteConfigAsync (1b94fa5c)
- show status messages and real diff-stats in DiffModal (31420574)
- add Merge button to DiffModal (1bc7fcc6)
- add Merge command to DiffModal (c911717a)
- attach MergeModal to DetailsIsland (949911f6)
- wire DetailsIsland ApproveMerge through MergeModal (f3a58a65)
- add MergeModalView (e11b0195)
- add MergeModalViewModel (3d0cc4ff)
- add MergeTaskAsync and GetMergeTargetsAsync to WorkerClient (4585b20f)
- expose MergeTask and GetMergeTargets on WorkerHub (c53b5878)
- implement TaskMergeService happy path (3331c248)
- scaffold TaskMergeService with pre-flight checks (1c20d8f8)
- add ListConflictedFilesAsync (77a1460e)
- add MergeAbortAsync (21a1870f)
- add MergeNoFfAsync returning (exitCode, stderr) (3ebbdb3f)
- add IsMidMergeAsync (535d0c55)
- add ListLocalBranchesAsync (2d807aa6)
- add GetCurrentBranchAsync (93ee7b72)
- add Continue and Reset buttons to agent strip (2ce6b7bd)
- add Continue and Reset commands to DetailsIslandViewModel (b03e858a)
- add ContinueTaskAsync and ResetTaskAsync to WorkerClient (2278b516)
- expose ResetTask hub method (219a231f)
- add TaskResetService for discard + reset flow (74eb36d3)
- add TaskRepository.ResetToManualAsync (202236a4)
- add WorktreeManager.DiscardAsync for task reset (44203f3c)
- add settings modal and wire to worker hub (e6b37624)
- extend ClaudeArgsBuilder with MaxTurns and PermissionMode (fca5d57f)
- add WorktreeMaintenanceService for idle-worktree cleanup (cfb9ca1c)
- add AppSettings entity, migration, and repository (62a11215)
- render user tool_result blocks as one-line summaries (374e811e)
- render assistant tool_use blocks with per-tool args (3a67fe81)
- render assistant text blocks, skip thinking (dc6e3fe4)
- format system init message in StreamLineFormatter (b5254987)
- keyboard shortcuts (/ Ctrl+N Space Esc) (6dade011)
- pulse, hover, modal, and row-add animations (47e8e1ff)
- worktree modal with tree view and M/A badges (abd7733c)
- diff modal with file sidebar and tinted hunks (4d68543c)
- tasks island with rows, chips, add-task, selection (f94bb35d)
- details island with agent strip, terminal, subtasks, notes (4f41b084)
- DetailsIslandViewModel with agent state and log (fcf53ab4)
- TasksIslandViewModel with smart/virtual/user filtering (0034accb)
- Lists island view with search and nav items (f167120c)
- TaskRowViewModel with status chip mapping (dc1b648b)
- ListsIslandViewModel with smart/virtual/user lists (06cc1411)
- chromeless three-island shell (05404f46)
- scaffold islands shell and child VMs (8909119d)
- merge Tokens and IslandStyles into App (55917c92)
- embed Inter Tight and JetBrains Mono fonts (1893576b)
- add design Tokens resource dictionary (92a6e064)
- add island control styles (579b527d)
- seed default Lists (My Day, Important, Planned) (bd8a4d05)
- migration for IsStarred/IsMyDay/Notes columns (928dde13)
- add IsStarred, IsMyDay, Notes to TaskEntity (a1190a35)
### Fixes
- cap run-log read size and harden run-history tests (fec2fe2d)
- reuse shared hub fake and guard blank list name (ac2f1d82)
- apply blue PLANNED badge for finalized planning, drop dead converter statics (7a88e8a8)
- strip prerelease and build metadata before version compare (b84716ff)
- narrow delete-list FK catch to SqliteException (6e3947c0)
- narrow RepoScanner catch to filesystem exceptions (4877c11a)
- widen About modal so folder Open buttons are not clipped (c1c78626)
- restore Ui.Tests build by implementing ListUpdatedEvent in fakes (12668f68)
- dispatch WorkerLog events to UI thread (7d61d38a)
- wire details-island buttons and drop dead handlers (e55367af)
- default-expand diff tree; reliable row-click toggle (7e3ae704)
- toggle expand on full folder row click (232d7cb6)
- use BorderOnly chrome; color diff +/- lines (6c8048d0)
- make overview modal resizable; add diff content pane (66707710)
- resizable modal, drop branch column, show committed diff (bc15c16e)
- preserve status message after cleanup; English label (8f4e37ef)
- restore green test suite across all projects (8eafa71e)
- attach agent tag to chained children for queue pickup (721c36a6)
- emit PlanningMergeAborted (not Conflict) on non-conflict merge failures (ce23f64d)
- prevent PlanningMergeOrchestrator double-drain race and orphaned state (ef070dda)
- reorder PlanningAggregator checkout/delete and kill git on cancel (9d04d1d9)
- align virtual list semantics and complete planning roll-up coverage (6bdfa731)
- wrap MergeAbortAsync in AbortMergeAsync for consistent error handling (ada4d9fd)
- planning parents roll up child status; children stay nested until parent Done (6d460ea9)
- tighten ContinueMergeAsync guards and commit error handling (63759ee7)
- derive planning MCP URL from configured SignalRPort (e62485db)
- register TaskRepository in DI and guard null WorkingDir (c048264b)
- planning launcher — avoid cmd shell to prevent prompt injection (9e09ae6b)
- enable foreign_keys pragma in MigrateAndConfigure (78211060)
- select task on left-click even when reorder is disabled (1344beba)
- session terminal scrolls to end after layout so last line is fully visible (7de55107)
- pin AgentStrip above metadata footer, terminal sits above it (5e542758)
- session terminal auto-sizes to output, caps at 420px before scrolling (6ac88235)
- move agent-settings expander out of capped scroller so it expands properly (839f862b)
- use PlaceholderText instead of obsolete Watermark in ListSettingsModalView (2901a769)
- use UTF-8 encoding for git process stdio (07dee318)
- disable Merge button after worktree is no longer Active (4debd5ce)
- return Blocked when MergeAbortAsync fails to avoid stuck repo (1495c63e)
- honour targetBranch in MergeAsync by checking out before merge (953d9317)
- correct Reset button tooltip wording (58c8210a)
- early-return in ResetAsync when ConfirmAsync is unwired (f90d3d83)
- prefix broadcast lines with [stdout] so UI parser routes them (4283c67d)
- truncate WebFetch URL in tool_use arg (ec679e45)
- filled window icons, boxed task rows, proper explorer button (e19a9d37)
- NAVIGATOR eyebrow — drop broken converter binding (42fb7cee)
- wire delete confirm, close-details, uppercase eyebrow, explorer button (5acc896d)
- drop icon-btn sizing from AgentStrip text buttons (27c6a4b8)
- use Tag-attribute selectors for terminal log colors (2d1a4881)
- guard Bind/LoadForList against interleaved DbContext awaits (62aac7ee)
- wire modal delegates from DetailsIslandView owner (279f2c75)
- remove stale brush overrides in App.axaml (95146518)
- restore ViewModels using for IslandsShellViewModel (eee98b78)
### Refactoring
- merge TaskRunner failure handlers and reuse NullIfBlank (18569439)
- fold single-consumer helper types into their owners (ce9fadc0)
- remove dead PlanningMergeEvents records and unused RunNowRequestedEvent (25ee623c)
- extract interfaces to Interfaces folders and consolidate filters (41da124a)
- consolidate commit types into CommitTypeRegistry (5da69ee6)
- consolidate permission modes into PermissionModeRegistry (5308ba31)
- consolidate model aliases into ModelRegistry (a62ef240)
- remove tag entity and all references (623ebf14)
- dequeue orphans instead of promoting, restore lost lineage (0d55002e)
- consolidate task list filters into single strategy registry (e68bb737)
- retire legacy TaskStatus values and backfill existing rows (dc3fc443)
- extract OverrideSlotService and reorganize Worker/Services into domain folders (ff7c2399)
- split queue waker and picker, auto-wake on enqueue (064a9030)
- introduce TaskStateService and route mutations through it (8823265e)
- use --permission-mode auto instead of --dangerously-skip-permissions (b2eb5fcf)
- test planning detail pane via real ViewModel and restore merge-all IsEnabled binding (1aead9da)
- switch MCP config to env-var token expansion (975e1ce5)
- add worktree path and token file helpers (1d61df81)
- inject GitService and WorkerConfig into PlanningSessionManager (1370bf3d)
- drop McpConfigPath from PlanningSessionFiles (f2db5f4a)
- extend planning contexts with token and worktree (fd2ac484)
- use shared VersionComparer in InstallModeDetector (5b4cdd36)
- move release-API + checksum types to ClaudeDo.Releases (46e01aef)
- redesign list settings and merge modals with custom chrome (5ced1b97)
- single scrollable DetailsIsland body with agent-settings gear flyout, remove Notes (c599fdcb)
- skeleton dispatch for StreamLineFormatter rewrite (668087cd)
- centralize list seeding in MigrateAndConfigure, add default-value test (9a059071)
### Documentation
- sync CLAUDE.md files with current architecture (cfc45118)
- correct external MCP tool inventory, drop removed tag tools (32daa4a6)
- clarify SetTaskConfig null-clears-override wording (f3f8af4b)
- add external MCP UI-parity spec and plan (99dc0848)
- clarify repo-import checkbox default intent (2f7f00d4)
- add repo import list helper implementation plan (5b15e30b)
- document RepoImportModalView (e5bce077)
- add repo import list helper design spec (7869c2a9)
- add planning draft/planned queue gate design spec (09a930e2)
- add worktree overview modal spec and plan (b944597a)
- regenerate against current code state (a6608bf8)
- add design + plan for tabbed settings + Prime Claude (2ff0971d)
- add session prompts for worker state consolidation slices 2-6 (cf7a6e41)
- add worker state and queue consolidation spec (43af17e5)
- add external MCP CRUD extensions spec and plan (10b2ca81)
- document new external MCP tools (1b9f2d4d)
- add planning UX spec/plan and prompts/mailbox proposals (615c1da6)
- add spec and plan for planning merge-all feature (8afbf206)
- add worktree-isolated MCP session design and plan (4de2deae)
- add planning-session manual verification checklist (450e6855)
- add planning sessions implementation plans A, B, C (43d517dc)
- add planning sessions design (8891d48a)
- add self-update manual verification checklist (a41e5b5b)
- add worker-log footer implementation plan (ea769456)
- add worker-log footer implementation plan (41e0bea1)
- add worker-log footer design spec (da19eb80)
- add implementation plan (0d374735)
- add design spec for app + installer self-update (6a4bf676)
- add default-agents plan and design spec (a1354853)
- refresh CLAUDE.md files for agent settings UI (e74e7eec)
- agent settings UI implementation plan (02464b7f)
- agent settings per list and per task UI reimplementation (68f461d0)
- add 2026-04-21 open-items consolidation (cb43bcdd)
- clarify merged-with-cleanup-warning result shape (32ef1b38)
- add worktree merge implementation plan (0885518a)
- add worktree merge design spec (944d3bd3)
- note ResetTask hub method and TaskResetService (fb89e02b)
- add implementation plan for continue and reset buttons (133774cb)
- add spec for continue and reset buttons on failed tasks (a3bb557d)
- add UI-rewrite notes, plans, and stream-formatter spec (23f8fddc)
- add design spec (b4741137)
## v1.2.0 — 2026-04-17
### Features
- add subtask tree view with expand/collapse in task list (32bb5287)
### Fixes
- expand ~ in UiDbPath (2a8cd97d)
- init editor TCS before dialog can complete (09e8b1f1)
- reset stale worktree state on TaskDetail reload (92d8d902)
- capture CurrentListId before await in AddTask (aa1008dc)
- make user-data deletion on uninstall opt-in (5f3d41e1)
- rollback-safe extract with .bak stash (7d48f34b)
- move service start out of RegisterServiceStep (51a1bbe6)
- escape newline/tab in CLI args (ad7c9fac)
- guard against same task in queue and override slot (11a4376d)
- reject CurrentUser service account without password (f10ad698)
- swallow DB errors in TaskListViewModel.OnTaskUpdated (dc4571a3)
- emit RunCreated after run row exists (4fb6ba6b)
- resolve critical bugs and improve reliability across worker, data, UI (34239196)
### Documentation
- add subtask tree view design spec (4f25c3dd)
## v1.1.0 — 2026-04-16
### Features
- wire EF Core into DI and update all consumers to IDbContextFactory (36484ed4)
- rewrite all repositories to use EF Core ClaudeDoDbContext (34ca1b01)
- add ClaudeDoDbContext with Fluent API configurations (51a5dcbb)
- add navigation properties to all entity models (f8f13865)
### Fixes
- address code review findings (611454df)
### Refactoring
- switch InitDatabaseStep to EF Core migrations (7d0ca45a)
### Documentation
- update CLAUDE.md files for EF Core migration (8d61b051)
- add EF Core migration implementation plan (9236ca6d)
- add EF Core migration design spec (9e1f1370)
## v1.0.0 — 2026-04-15
### Features
- add app and installer icons (3b1f1481)
- agent config inline in detail panel, file picker, subtask UI (9a407bde)
- add subtasks table, repository and prompt integration (8c051d8f)
- remove MaxWidth on main columns to use full window width (8577c556)
- mode-aware wizard page list + Update-mode step pipeline (b5455a19)
- Config view — Save/Repair/Uninstall commands + footer buttons (2898bec3)
- add UninstallRunner (service + shortcuts + dirs) (ac38ea8c)
- rewrite WelcomePage for download-mode + update heading (da1fe210)
- async mode detection + mode-aware DI wiring (01c29bb6)
- add WriteInstallManifestStep (54825184)
- add DownloadAndExtractStep with SHA256 verify (c1e33016)
- add Stop/StartServiceStep sc.exe wrappers (d87de152)
- replace sync ModeDetector with async InstallModeDetector (97fb215c)
- add IReleaseClient + Gitea ReleaseClient (5603fd45)
- add ChecksumVerifier (SHA256 + checksums.txt parser) (d0c0e2ce)
- add InstallManifest + json-backed store (921e6262)
- add Gitea Actions release workflow (aea09098)
- add WPF installer/configurator project (78831b22)
- add config override fields to TaskEditorView (f8be2c17)
- complete Batch 2 — LiveText display, start feedback, modal theming, ListEditor config (699fe8a1)
- replace LiveLines with formatted LiveText, add log reload and start feedback (0764bb30)
- add starting state feedback to task list (503fd69c)
- add StreamLineFormatter for NDJSON stream parsing (365ecba9)
- default to claude-sonnet-4-6 when no model configured (945a1eef)
- add RunNowRequestedEvent and GetAgentsAsync to WorkerClient (026df8d8)
- add ContinueTask routing to QueueService (adc5a16a)
- add ContinueTask, GetAgents, RefreshAgents hub methods and RunCreated broadcast (6cb8012d)
- add AgentFileService for filesystem agent management (88253515)
- extend RunResult with structured output, session ID, and token metrics (54c4d3cf)
- extend TaskRepository with model, system_prompt, agent_path columns (f57cdb7c)
- add StreamAnalyzer for rich NDJSON stream parsing (8b342bcc)
- add ClaudeArgsBuilder for dynamic CLI argument construction (dab461cc)
- add GetConfigAsync and SetConfigAsync to ListRepository (5232d5f1)
- add TaskRunRepository with CRUD and query methods (19a21040)
- add ListConfigEntity, TaskRunEntity, AgentInfo models and task config fields (02aaa9da)
- add list_config, task_runs tables and task config columns (36ae6532)
- add global keyboard shortcuts (Ctrl+N, Ctrl+L, Ctrl+R, Ctrl+Shift+N) (ff5e56a6)
- add inline add handlers, checkbox click, and task keyboard shortcuts (2dcfc7e3)
- add auto-save LostFocus handlers and tag input KeyDown (a44c1049)
- wire TaskDetail changes back to task list refresh (f51278e1)
- make TaskDetailViewModel editable with auto-save and tag CRUD (28a0d9b1)
- add inline task creation, toggle-done, and list name to TaskListViewModel (a4da2e23)
- add ToggleDone command and checkbox state to TaskItemViewModel (0796b3c2)
- add colored dot brush to ListItemViewModel (3c52e9c6)
- add CheckboxBorderConverter for task status circles (a548d41d)
- add context menus for lists and tasks (3653dcad)
- open editor on double-click for lists and tasks (db5a447b)
- wire avalonia desktop ui to data and worker (48e4aabe)
- add git worktree support and conventional commits (01235d98)
- add claude-cli runner, queue service, and hub api (e5038d7e)
- add repositories, stale-task recovery, and test foundation (9f51ff0b)
- add db schema init and signalr hub skeleton (f81ef022)
### Fixes
- prevent async void races and leak-on-exit (2b3fe02d)
- address concurrency, cancellation, and resource issues (d3b85f22)
- wait for prior service registration to clear before create (fc9029de)
- publish framework-dependent single-file (1c764dae)
- disable single-file compression to prevent WPF startup AV (cfec3297)
- service hosting, dark theme, uninstall polish (f599f8d0)
- set EnableWindowsTargeting so Linux Gitea runners can publish (9b928c62)
- UninstallRunner abort-on-stop-fail + path guard + partial-failure reporting (5d42438a)
- null-defensive WelcomePage heading + guard unreachable modes (8d2f7e99)
- fall back to Config on detection timeout when install.json exists (5e432a4a)
- wrap WriteInstallManifestStep I/O in try/catch like sibling steps (12e53271)
- harden DownloadAndExtractStep per review (ea32a74b)
- check exit code (not stdout) for ERROR_SERVICE_ALREADY_RUNNING (5b4af294)
- propagate cancellation + defensive asset parsing in ReleaseClient (83d7058b)
- fix live output visibility and editor dialog graying out (2a1f26d8)
- address code review findings (7363e484)
- allow RunNow for any non-running task, not just queued (95c8cc83)
- update QueueServiceTests for new TaskRunner constructor signature (26c2445b)
- replace deprecated Watermark with PlaceholderText (5f51fe96)
- register TagRepository in TaskDetailViewModel constructor (5b6c095a)
- re-evaluate RunNow CanExecute when worker connection changes (473e0f71)
- make list and task rows fully hit-testable for clicks (981b8e4a)
- context menu operates on right-clicked item and gates new-task on list selection (5d5a583a)
- harden worker auto-reconnect lifecycle (fdf357be)
- cancel retry loop before disposing worker connection (36ef624c)
- auto-reconnect worker connection with retry backoff (c6522cf8)
### Refactoring
- replace SourceDirectory with Mode/Version fields in InstallContext (4fab0481)
- remove source-build steps (replaced by DownloadAndExtractStep) (09891761)
- remove MessageParser (replaced by StreamAnalyzer) (c1c4c759)
- rewrite TaskRunner with config resolution, retry, and continue support (76473dd9)
- simplify ClaudeProcess to accept pre-built args and use StreamAnalyzer (1cdaaf9f)
- harden context menu event handling and simplify bindings (7838f081)
- harden double-click edit handlers (6727cc4e)
### Documentation
- add download-mode implementation plan (c0bd4654)
- finalize decisions — self-contained, auto-check, full uninstall (0498fbae)
- pin release target to releases/ClaudeDo (43a10cff)
- add download-mode + Gitea Releases design spec (bd7d5940)
- add implementation plan for UI fixes (a6fe91d1)
- add design spec for post-integration UI fixes (fb3c96c4)
- update CLAUDE.md with CLI modernization changes (03728c8e)
- add UX redesign implementation plan (16 tasks) (9f61cd14)
- add UX redesign spec (Microsoft To Do style) (0e41c37d)