Commit Graph
557 Commits
Author SHA1 Message Date
mika kuns 72141b133a style(claude-do): merge Material icons: detail pane
ClaudeDo-Task: 5bc6c034-fd5a-47ea-ac05-035d38e67489
2026-10-01 16:53:32 +02:00
mika kuns 426d8eb137 style(claude-do): merge Material icons: task rows + notes editor
ClaudeDo-Task: e940ffc0-4889-4f73-bae3-95bab3efc633
2026-10-01 16:53:19 +02:00
mika kuns ce3f233710 style(claude-do): merge Material icons: window chrome + Mission Control
ClaudeDo-Task: d92ba41f-11ba-4760-b6ae-c9e1f5cf40dd
2026-10-01 16:52:46 +02:00
mika kunsandClaude Sonnet 5.5 89312e0b22 style(ui): Material Design icons for window chrome, modal shell and Mission Control
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 16:50:22 +02:00
mika kunsandClaude Sonnet 5.5 20b5ff8f3e style(ui): Material Design icons for the detail pane
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 16:48:49 +02:00
mika kunsandClaude Sonnet 5.5 2d1570ed15 style(ui): Material Design icons for task rows, notes editor and add-task row
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 16:48:32 +02:00
mika kunsandClaude Sonnet 5.5 203112a051 style(ui): Material Design icons for the lists sidebar
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 16:47:56 +02:00
mika kuns aef41f0594 style(ui): filled cog for the list settings header button 2026-10-01 16:31:35 +02:00
mika kuns cbab4da54c style(ui): Material Design icons for the tasks island header bar 2026-10-01 16:17:30 +02:00
mika kuns 34c71bbe02 fix(ui): align island header separators via shared header height 2026-10-01 16:07:05 +02:00
mika kunsandClaude Sonnet 5.5 0fea339b6d fix(ui): open diff viewer and merge window as independent top-level windows
Owned windows are pinned above their owner by Windows, so the main window
could never come to the front. Show() without an owner and centre manually.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 14:49:27 +02:00
mika kunsandClaude Sonnet 5.5 74e06d6219 fix(mission-control): reset cursor to arrow over pane header buttons
Cursor inherits down the visual tree, so buttons in the draggable pane header kept the SizeAll cursor.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 14:30:31 +02:00
mika kuns 27dca48c43 Merge branch 'claudedo/387-unit-branch-teil-3-firmen-modus-fetch-pu' 2026-10-01 12:30:13 +02:00
mika kuns 4976ded7ae feat(ui): external services tab with Azure DevOps PAT, draft PR button and link in company repos 2026-10-01 12:13:57 +02:00
mika kuns ec25ed3c75 feat(claude-do): merge Show currently running Worker operations (verify, merge, reb
ClaudeDo-Task: ea44c9dd0c4942bfa3490bc3c1014205
2026-10-01 12:10:49 +02:00
mika kunsandClaude Sonnet 5.5 2dbec543df feat(mission-control): show running Worker operations in a Running now section
Registry of active verify/merge/rebase/worktree-creation operations in the Worker,
GetActiveOperations snapshot + OperationStarted/OperationEnded hub events, and a
Running now section in Mission Control with ticking elapsed time.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 12:08:43 +02:00
mika kuns f85b9cddfd fix(claude-do): merge Hide the "Submit for review" button on list-handler panes in
ClaudeDo-Task: ea129b1c8c2f47cbaa4db19a2bb5b441
2026-10-01 11:52:52 +02:00
mika kuns 61105ff9d3 fix(claude-do): merge Make the merge modal non-modal so a running merge no longer
ClaudeDo-Task: b2b4c74fc265435b9f083f56d0e47546
2026-10-01 11:52:40 +02:00
mika kuns 488c28a9d5 fix(claude-do): merge Prevent dragging completed tasks in the task list
ClaudeDo-Task: 855b766589bf42bc872f03bdbfb9abd5
2026-10-01 11:52:30 +02:00
mika kunsandClaude Sonnet 5.5 3d74e3dac5 fix(ui): open the merge modal non-modal so a running merge no longer blocks the main window
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 11:50:58 +02:00
mika kunsandClaude Sonnet 5.5 0cfc28adb9 fix(ui): hide Submit for review on list-handler panes in Mission Control
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 11:44:48 +02:00
mika kunsandClaude Sonnet 5.5 b776fd28d8 fix(ui): prevent dragging completed tasks in the task list
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 11:44:17 +02:00
mika kunsandClaude Sonnet 5.5 f66cbca65d feat(ui): show task number in Mission Control activity strip
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 11:43:50 +02:00
mika kuns 07e9f8d60e chore(claude-do): merge Unit-Branch Teil 1: Branch-Naming + Basis-Branch pro Liste
ClaudeDo-Task: e202e601-64c0-4ecb-8dc9-2fb0da01a84a
2026-10-01 11:03:02 +02:00
mika kuns ae845bf06b feat(ui): base branch field in list settings, real branch names in dialogs 2026-10-01 10:48:32 +02:00
mika kuns 0e4de9e4c0 feat(claude-do): merge Selectable colors for list dots and folders: accent-aware pa
ClaudeDo-Task: 98844480cc1f4e748908d2ce8ac6c50b
2026-10-01 10:30:48 +02:00
mika kuns a6926f53b5 feat(lists): selectable list/folder colors with accent-aware swatches and custom picker 2026-10-01 10:29:53 +02:00
mika kunsandClaude Sonnet 5.5 cf3db9197c fix(ui): deliver AltGr characters to ConPTY tiles as text
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 10:24:05 +02:00
mika kuns 97af85c816 feat(mission-control): swap tiles by dragging their header 2026-10-01 09:07:02 +02:00
mika kuns e35b054a2e feat(ui): tickets + plan day button, fallback list and prime action 2026-10-01 08:44:21 +02:00
Mika Kuns a7c3d18533 feat(mission-control): column picker for the overview grid
Auto keeps the pane-count heuristic; 1-4 fixes the column count (capped at
the pane count). Persisted to ui.config.json as MissionControlColumns.
2026-09-30 10:39:23 +02:00
mika kuns 0d029717f8 style(ui): folder chevron and icon take the folder colour 2026-09-30 10:28:14 +02:00
mika kuns 2be8ba5d66 feat(ui): folders slide open and closed, rows below follow 2026-09-30 10:25:17 +02:00
mika kuns 928e3905d9 feat(ui): animate folder expand in the sidebar 2026-09-30 10:19:35 +02:00
mika kuns 60358100be fix(ui): Recent-Sessions Resume/Brief-Buttons fuehren ihren Command wieder aus
Der Click-Handler schloss das Flyout synchron; Button liest Command erst nach dem ClickEvent, das Hide hatte die Bindung da schon geloest.
2026-09-30 10:14:55 +02:00
mika kuns bb92dc279f feat(lists): assign a colour to a sidebar folder
Tints the folder name and its guide line; picked from a swatch row in the folder settings.
2026-09-30 10:12:41 +02:00
mika kuns f2ff865dca feat(ui): searchable Material Design icon library for lists and folders 2026-09-30 09:52:34 +02:00
mika kuns 5da8036b9a style(ui): only top-level lists align to the folder chevron 2026-09-30 08:48:36 +02:00
mika kuns cf4b5c507c style(ui): lists start at the folder chevron's edge 2026-09-30 08:43:10 +02:00
mika kuns 3e2d5bab6a style(ui): keep child row highlight clear of the folder guide line 2026-09-30 08:39:20 +02:00
mika kuns ccd11a8033 style(ui): tighter sidebar tree rows and shallower child indent 2026-09-30 08:34:48 +02:00
mika kuns 9991f1fc1f feat(ui): coloured dots for icon-less lists, guide line under chevron
Lists without an icon show a dot in a stable identity colour (same
palette/hash as Mission Control tiles); "Dot" is the new picker default.
2026-09-30 08:29:46 +02:00
mika kuns 75b78cb2c0 feat(ui): make sidebar folder hierarchy readable
Lists default to the Text icon instead of the folder icon, rows align
across depths with a guide line per open folder, folder names are
semibold, folder counts only show while collapsed and zero counts hide.
2026-09-30 08:21:34 +02:00
Mika KunsandClaude Sonnet 5 0dac047c46 feat(lists): allow nested sidebar folders via drag and drop
Folders can now contain other folders, to arbitrary depth, via a
self-referencing parent_folder_id (ON DELETE SET NULL, same pattern as
lists.folder_id). Nesting/un-nesting is drag-and-drop only: dropping a
folder onto another folder's header middle moves it in, the outer
quarters or any top-level/in-folder drop insert it beside a target.
Dropping a folder into itself or one of its own subfolders is silently
ignored. Deleting a folder releases its lists and subfolders back to
the top level, unchanged from the existing list behavior.

ListFolderNavItemViewModel.Lists became Children (object, mixing lists
and subfolders, mirroring TopLevel) so the existing implicit, type-matched
DataTemplates render nested folders recursively without new XAML, and each
nesting level gets its indent for free from the folder template's own
margin. Folders/RootLists/ContainerOf/PersistOrderAsync/RecomputeFolderCounts
now walk the tree instead of assuming one level.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 13:31:26 +02:00
Mika Kuns d3db4455fa feat(ui): Mission Control Recent Sessions mit verschachtelten Handoffs
Neue Tabelle mission_control_sessions (Migration AddMissionControlSessions), befuellt vom
InteractiveLaunchSpecService bei Task-, Ad-hoc- und Handoff-Kacheln. Flyout im Mission-Control-Header
listet die letzten 14 Tage / 50 Sessions, Handoffs eingerueckt unter ihrer Ursprungs-Session, mit
Fortsetzen (--resume im gespeicherten cwd) und Brief anzeigen.
2026-09-28 12:11:21 +02:00
mika kuns e0a1448f44 feat(ui): Mission-Control-Kacheln behalten Position und Identitaetsfarbe ueber Handoffs
Ein Handoff schloss die alte Pane und haengte die neue hinten an -- die Kachel
sprang ans Ende und das ganze Grid ordnete sich neu. Die neue Pane wird jetzt am
Index der alten eingesetzt.

Dazu bekommt jede Kachel eine aus IdentityKey (Default: TaskId) abgeleitete Farbe:
3px-Streifen links am Tile, Punkt im Focus-Mode-Tab. Kein State, keine Persistenz --
derselbe Task faerbt nach App-Neustart gleich, und ein Handoff erbt die Farbe, weil
er dieselbe TaskId behaelt. Nur kuehle Hues, damit nichts als Status gelesen wird.
2026-09-28 08:56:50 +02:00
Mika Kuns 09bcd696dd feat(ui): dirty Ziel-Verzeichnis beim Oeffnen des Merge-Dialogs melden statt nach dem Fehlschlag
MergeTargetsDto/MergeTargets bekommen TargetDirty (via HasChangesAsync,
includeUntracked: false). Das Merge-Modal zeigt Warnung + Stash-Retry
sofort in InitializeAsync statt erst nach dem dirty_target-Fehlschlag;
der REVIEW-Block in der Detail-Pane zeigt denselben Hinweis neben
Approve. Der dirty_target-Rueckgabepfad bleibt als Absicherung bestehen.

Behebt Befund F6 aus docs/test-session-2026-09-16.md.
2026-09-16 15:43:39 +02:00
Mika Kuns 86cc309ba9 fix(ui): duplizierter Confirm-Dialog mit "Delete"-Knopf – zusammenfuehren und lokalisieren
F4: DetailsIslandView/TasksIslandView hatten je eine view-lokale Confirm/Error-Dialog-Kopie,
teils mit hartkodiertem "Delete"-Knopf fuer jede Aktion (inkl. der Stash+Merge-Bestaetigung,
die nichts loescht). Beide Kopien entfernt; DetailsIslandViewModel/TasksIslandViewModel routen
Confirm/Error jetzt durch den geteilten Dialogs-Seam (IDialogService, propagiert vom Shell wie
schon bei Lists/Tasks) statt ueber eine vom Code-behind gesetzte Func-Property.

IDialogService.ConfirmAsync bekommt einen optionalen confirmLabel-Parameter (Default: lokalisiertes
"Confirm"); nur die echten Delete-Aktionen (Task loeschen, abgeschlossene Tasks leeren) uebergeben
das lokalisierte "Delete"-Label.

F5: "Cancel"/"Confirm"/"Delete"/"OK" und die Titel "Confirm"/"Error" durch Loc.T mit neuen Keys
unter "dialog.*" ersetzt (en.json + de.json). Mission Controls eigene Dialog-Kopie bleibt bestehen
(eigenes Fenster, WindowDialogService ist an den Haupt-Owner gebunden) — nur ihre Labels wurden
lokalisiert.

Out of scope (siehe Task-Beschreibung): die Nachrichtentexte der Dialoge bleiben unlokalisiert.
2026-09-16 15:43:38 +02:00
Mika Kuns 1325ab9438 fix(ui): Worktrees-Uebersicht zeigt Task-Nummern, DIFF-Spalte trimmt statt abzuschneiden
Befund F7 aus der Sichtpruefung 2026-09-16. TaskNumber war bereits im
WorktreeMaintenanceService-Join und in WorktreeOverviewRow vorhanden, fehlte
aber im Wire-DTO und in der UI-Kette; jetzt bis zur Row-/Conflict-Anzeige
durchgereicht (#<number> dimmed vor dem Titel, ausgeblendet bei 0). DIFF-Spalte
bekommt CharacterEllipsis-Trimming + Tooltip statt hartem Cut, Spalte von 80
auf 110px verbreitert (Header und Row synchron).
2026-09-16 15:43:38 +02:00
Mika Kuns 56161e4e9b feat(ui): Bilder aus der Zwischenablage ins interaktive Terminal einfuegen
Ctrl+V mit einem Bild in der Zwischenablage schreibt es als temporaeres
PNG unter ~/.claudeDo/tmp/ und fuegt den Pfad in den Composer ein, genau
wie ein Datei-Drop -- Claude liest die Datei selbst. Text-Paste laeuft
unveraendert ueber den bestehenden bracketed-paste-Pfad.

Avalonia 12.0.4 liest Clipboard-Bitmaps bereits selbst (IClipboard.
TryGetDataAsync + AsyncDataTransferExtensions.TryGetBitmapAsync), kein
Win32-P/Invoke noetig. Alte Tmp-Dateien (>24h) werden beim App-Start
aufgeraeumt (ClaudeDo.App/Program.cs), keine eigene Aufraeum-Infrastruktur.
2026-09-16 15:43:38 +02:00