mika kuns
c834f17c78
fix(azdo): strip credentials from origin URL in the not-ready message
2026-10-01 12:38:02 +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
4917533cb4
fix(worker): kept worktree in a company repo opens a PR, unexpected ADO/git errors never fail a task start
2026-10-01 12:25:15 +02:00
mika kuns
93fd6740a1
docs(worker): document company mode (fetch, push, draft PR) and its open smoke tests
2026-10-01 12:18:07 +02:00
mika kuns
674db27f6e
fix(worker): keep Git Credential Manager from prompting during company fetch/push
2026-10-01 12:18:06 +02:00
mika kuns
0e6a48e268
feat(prompts): merge helper knows company-repo approve ends in a draft PR
2026-10-01 12:15:20 +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 kuns and Claude 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
fed0b6ac51
feat(hub): Azure DevOps PAT settings and connection test
2026-10-01 12:06:56 +02:00
mika kuns
bc959f25b3
feat(worker): approve in a company repo verifies in the worktree, pushes and opens a draft PR
2026-10-01 12:05:33 +02:00
mika kuns
7f7f237656
feat(worker): company unit roots start from a fetched origin base, local base fast-forwarded best-effort
2026-10-01 11:59:11 +02:00
mika kuns
78f4d182e8
feat(worker): Azure DevOps client and PAT store, ported from pr-create.ps1
2026-10-01 11:55:11 +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 kuns
acf3987a8a
fix(claude-do): merge Fix the text caret overlapping the last typed letter in the
...
ClaudeDo-Task: c0619bf81ed645e7a1c861ddc6af5905
2026-10-01 11:52:20 +02:00
mika kuns
c33e57b9c7
feat(claude-do): merge Show the task number (#N) on running autonomous tasks in Mis
...
ClaudeDo-Task: 6cd67a16ec6647c1846880481c497b20
2026-10-01 11:52:09 +02:00
mika kuns
76f260a9a5
feat(git): fetch/push/ff primitives with auth env, no task trailer in company repos
2026-10-01 11:51:28 +02:00
mika kuns and Claude 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 kuns
bc0aa28afb
feat(data): worktrees.pull_request_url for the company-repo draft PR
2026-10-01 11:49:30 +02:00
mika kuns
2b2f61d7fc
docs(planning): plan for unit branch part 3 (company mode, draft PR)
2026-10-01 11:48:11 +02:00
mika kuns and Claude 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 kuns and Claude 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 kuns and Claude 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 and Claude Sonnet 5.5
335bfe957b
fix(ui): add right padding to add-task input so the caret clears the last glyph
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-01 11:41:40 +02:00
mika kuns
2b7b58be37
chore(claude-do): merge Unit-Branch Teil 2: Children per fast-forward in den Unit-Br
...
ClaudeDo-Task: cd39f83b-f80b-479c-bdeb-55c632dcffd8
2026-10-01 11:37:21 +02:00
mika kuns
acd188bca9
fix(worker): block approve of a planning parent with an unfinished child, surface git stderr on ff failure
2026-10-01 11:36:45 +02:00
mika kuns
a353897345
docs(external): describe unit-branch routing in the review_task tool description
2026-10-01 11:27:22 +02:00
mika kuns
823368484e
docs(worker): document unit branch, child absorb and legacy approve routing
2026-10-01 11:26:17 +02:00
mika kuns
44d94caabc
feat(planning): combined diff of a unit is base..head, no integration branch checkout
2026-10-01 11:25:48 +02:00
mika kuns
1f373a5a67
feat(worker): approve a unit parent like a single task, orchestrator only for legacy units
2026-10-01 11:25:48 +02:00
mika kuns
9da522b0c9
feat(worker): fast-forward finished children into the parent's unit branch
...
Planning parents get their own worktree on Queue plan, children fork from the
unit head and are absorbed via merge --ff-only before Done (ff failure -> Failed,
interactive child approve -> absorb instead of merge to the target).
2026-10-01 11:25:47 +02:00
mika kuns
724ad90f88
feat(git): add ff-only merge and allow a merged worktree without merge commit
2026-10-01 11:25:47 +02:00
mika kuns
dc73f138d2
docs(planning): plan for unit branch part 2 (children fast-forward)
2026-10-01 11:13: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
cd5b27c063
fix(planning): return to the list base branch after integration cleanup, not a guessed task branch
2026-10-01 10:55:12 +02:00
mika kuns
fb86a3c1bf
chore(claude-do): merge Actual highlighting in the Autonomus agount output window
...
ClaudeDo-Task: 87096034c52f4c869fb1518572c7f49f
2026-10-01 10:55:00 +02:00
mika kuns
9bb0e67a97
feat(ui): colour agent output by kind and stop cutting tool calls at 120 chars
...
StreamLineFormatter now returns kind-tagged entries (text, tool, edit,
tool result, error, sys, result) instead of a flat string, so the
existing LogKind colours finally apply to stream-json output. Tool
argument/result limit raised from 120 to 500 chars.
2026-10-01 10:49:52 +02:00
mika kuns
8ac272df50
docs(worker): document new branch naming and per-list base branch
2026-10-01 10:49:08 +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
69c7803bdf
feat(worker): use the list base branch as worktree base and default merge target
2026-10-01 10:46:21 +02:00
mika kuns
3fe1feadf9
feat(data): per-list base branch, preserved by every config writer
2026-10-01 10:39:49 +02:00
mika kuns
8911408bca
refactor(worker): detect untracked worktrees by path instead of branch prefix
2026-10-01 10:37:37 +02:00
mika kuns
814b083a4e
feat(worker): name task branches <type>/<number>-<slug>
2026-10-01 10:35:52 +02:00
mika kuns
4a9cff5543
feat(worker): branch type and number rules for task branches
2026-10-01 10:30:51 +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
68445a9f2a
fix(claude-do): merge ConPTY tiles: deliver AltGr characters (@, \, {, }, €, …) as
...
ClaudeDo-Task: 4abf8b93e1d94c98b122521a8b850a77
2026-10-01 10:29:59 +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 kuns
d316f3c6a5
feat(claude-do): merge Stream Claude CLI update progress into the footer strip
...
ClaudeDo-Task: 92130a5d447b4b0da301ce72e42c041a
2026-10-01 10:29:48 +02:00
mika kuns
faa91e0661
feat(worker): detect company repos by origin remote pattern
2026-10-01 10:28:54 +02:00
mika kuns
db3c7e69e5
docs(plan): unit branch part 1 - naming and per-list base branch
2026-10-01 10:24:43 +02:00
mika kuns and Claude Sonnet 5.5
2b19c8c49d
feat(ui): stream claude update progress into the footer strip
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-01 10:24:07 +02:00
mika kuns and Claude 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
3dc735b2af
docs(spec): per-list base branch and fetch before unit branch
2026-10-01 10:16:32 +02:00
mika kuns
0e9373c083
docs(spec): unit branch and draft PR design
2026-10-01 09:56:36 +02:00
mika kuns
97af85c816
feat(mission-control): swap tiles by dragging their header
2026-10-01 09:07:02 +02:00
mika kuns
16adcad84f
docs(worker): note the external MCP DI registration trap
2026-10-01 08:49:53 +02:00
mika kuns
2b40ea2d2b
fix(mcp): register ticket import tools in the external MCP container
...
The external MCP server has its own DI container; TicketMcpTools could not
resolve TicketImportService there, so both tools failed at runtime. Also
surface a skipped import in the prime outcome and treat a sweep where every
project board fails as an error instead of an empty backlog.
2026-10-01 08:49:31 +02:00
mika kuns
7724f5eb70
docs(tickets): document cross-project ticket import and open checks
2026-10-01 08:45:54 +02:00
mika kuns
cb775958a7
docs(ui): note the ImportTickets prime radio and the ticket fallback list
2026-10-01 08:45:14 +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
9fc2e26edb
feat(hub): add RunTicketImportNow and ticket fallback list endpoints
2026-10-01 08:41:12 +02:00
mika kuns
915f2c8352
feat(prime): ImportTickets runs the ticket import before filling MyDay
2026-10-01 08:39:38 +02:00
mika kuns
57c30c4a18
feat(mcp): add get_ticket_import_candidates and import_ticket tools
2026-10-01 08:37:44 +02:00
mika kuns
47583ab1fe
feat(tickets): sweep all project boards for assigned tickets and tasks
2026-10-01 08:36:11 +02:00
mika kuns
a0b234fe10
feat(data): add ImportTickets prime kind, ticket fallback list and import prompt
2026-10-01 08:33:48 +02:00
mika kuns
c34680b42d
docs(tickets): implementation plan for cross-project ticket import
2026-10-01 08:31:13 +02:00
mika kuns
5bb49495e4
docs(tickets): switch import source to project-board sweep after live probe
2026-10-01 08:12:17 +02:00
mika kuns
0ac49653c9
docs(tickets): design for cross-project ticket import with day planning
2026-10-01 08:05:58 +02:00
Mika Kuns
f3ecb99492
chore(claude-do): merge Customizable Spalten Anzahl in MIssion controll
...
Changelog / changelog (push) Successful in 2s
Release / release (push) Successful in 43s
ClaudeDo-Task: 99bfb985efb64c02ba3f27b53eae790d
2026-09-30 10:50:21 +02:00
Mika Kuns
a2496e056a
chore(claude-do): merge Worktrees sollten nach dem Task benannt werden
...
ClaudeDo-Task: 63f08d944d3341c081267158ef4bbb3e
2026-09-30 10:50:09 +02:00
Mika Kuns
44ec89b0e6
chore(claude-do): Worktrees sollten nach dem Task benannt werden
...
Durch die GUID namen kann ein User die Worktrees keinem Task zuordnen, und in Rider Müllen mir die Worktrees die BRanches voll. Also sollten wir einfach den Task titel oder Nummer stattdessen nehmen
ClaudeDo-Task: 63f08d944d3341c081267158ef4bbb3e
2026-09-30 10:49:07 +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
2a41f7e641
style(ui): smart list rows match the user list row height
2026-09-30 10:13:51 +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
8a31a67c74
feat(report): write weekly report as short bullets with haiku
2026-09-30 10:05:24 +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
27d2b1d8ef
fix(tickets): convert ticket HTML to markdown on import
2026-09-30 08:39:17 +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 kuns
05deda8343
docs: add visual verification session notes 2026-09-16
2026-09-30 08:14:26 +02:00
mika kuns
52ba538339
test(worker): cover WorktreeUpdated broadcast on interactive review submission
2026-09-30 08:14:26 +02:00
mika kuns
2558e02ba3
fix(ui): stop row buttons flashing disabled while a row command runs
...
Shared AsyncRelayCommands disabled every row's button during execution.
2026-09-30 08:13:26 +02:00
mika kuns
81dcaebfba
Merge branch 'claudedo/f518b71f990643cfaf73174e8617b2b5'
...
Drop the unused deferredUntil parameter the branch added to HandoffRequested: the worker still sends three args, so the four-arg client handler would never bind. The reset time already arrives via HandlerHandoffDeferred.
2026-09-29 08:54:14 +02:00
mika kuns
1396649519
Merge branch 'claudedo/ff26e146286f409aacc453247dd86155'
2026-09-29 08:52:02 +02:00
Mika Kuns
87dbb117d7
fix: Interactive sessions no longer Instantly start working
Changelog / changelog (push) Successful in 2s
Release / release (push) Successful in 45s
2026-09-28 14:33:06 +02:00
Mika Kuns
0f82fa67e1
feat(claude-do): merge UI-Prozess loggt auf Platte (ui-.log) + fehlgeschlagene Hub-
...
ClaudeDo-Task: d2ae3831-733f-4d40-93d7-70c93da11590
2026-09-28 13:39:18 +02:00
Mika Kuns
9f2e63d337
feat(claude-do): merge Ordner in Ordner erlauben (beliebig tief, nur per Drag & Dro
...
ClaudeDo-Task: dc3d5f8cf9e74821ba99b18e443fe5f5
2026-09-28 13:37:19 +02:00
Mika Kuns
3009ff0f8f
fix(claude-do): snake_case Serilog tokens + no Warning-log on cancelled hub calls
...
Message-template tokens must be snake_case (repo rule) -- fixes 4 PascalCase
tokens introduced in 57dd6766 . TryInvokeAsync's swallowing catch also no
longer logs a Warning for OperationCanceledException, which is routine
(e.g. worker shutdown/reconnect), not a failure worth a trace.
ClaudeDo-Task: d2ae3831-733f-4d40-93d7-70c93da11590
2026-09-28 13:32:38 +02:00
Mika Kuns and Claude 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
57dd676672
feat(claude-do): UI-Prozess loggt auf Platte (ui-.log) + fehlgeschlagene Hub-
...
## Problem
Beim DeleteTask-Bug (Fix 352aaa52 ) gab es null Spuren: Der UI-Prozess (ClaudeDo.App) hat gar kein File-Logging (weder Serilog noch `Microsoft.Extensions.Logging` sind in App/Ui referenziert), und im Worker loggt SignalR fehlgeschlagene Hub-Invocations nur auf Debug (`Microsoft.AspNetCore` steht in `src/ClaudeDo.Worker/Program.cs` Z. 60 auf Warning). Die Ursache ließ sich nur finden, ind
ClaudeDo-Task: d2ae3831-733f-4d40-93d7-70c93da11590
2026-09-28 13:27:21 +02:00