# Changelog

## 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)

