961 Commits
Author SHA1 Message Date
CubeGameLPandClaude Opus 5.5 f37b59d58f feat(mission-control): custom tiles — open any console program as a tile
Programs are configured in Settings → Custom tiles and stored in ui.config.json.
A tile with a fixed folder starts on click; without one it offers a submenu of
home, the list folders and browse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 20:09:19 +02:00
mika kuns 8cf3a3a9d0 fix(claude-do): merge Bug: conflict resolver no longer opens on a merge conflict
ClaudeDo-Task: 612a70a9-814e-4300-acec-1384262588cd
2026-10-02 17:27:47 +02:00
mika kunsandClaude Sonnet 5.5 feb0afa33a fix(merge): pass the stash consent to the conflict resolver so it opens on a dirty target
The resolver restarts the merge via StartConflictMerge, which had no autostash.
After a stash-retry approve reported 'conflict', the restart hit the same dirty
target, got 'dirty_target' and the resolver silently never opened. Thread the
consent through the hub, client, coordinator and resolver; surface a refusal in
the footer instead of dropping it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 17:25:52 +02:00
mika kunsandClaude Sonnet 5.5 bba7117d54 fix(ui): auto-scroll the lists sidebar while dragging near its top/bottom edge
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 17:16:34 +02:00
mika kuns ff7197c410 refactor(worker): drop ForceSetStatusAsync, route every status write through a guarded transition
Mark-done now fires OnChildTerminalAsync, so ticking a chain child or the last open child
off by hand unblocks the successor and advances the parent. The hub's Mark-as menu and
update_task_status map onto MarkDone/Cancel(retire)/Enqueue/Reset; revert_merge uses the
new ReopenForReviewAsync (Done|WaitingForReview -> WaitingForReview).
2026-10-02 16:03:59 +02:00
mika kuns 59d990c267 perf(worker): read untracked-worktree sweep from .git instead of spawning git per list 2026-10-02 15:37:35 +02:00
mika kuns b35755e1f0 fix(ssh): remove remote mcp config via trap when the tile kills ssh 2026-10-02 15:30:12 +02:00
mika kuns 4b1f5c65c3 fix(worker): put ~/.local/bin on PATH for remote claude in ssh sessions 2026-10-02 14:36:01 +02:00
mika kuns 8c5db95c01 fix(ui): ssh settings tab survives an offline worker without wiping workspaces 2026-10-02 14:33:57 +02:00
mika kuns 89ed885295 feat(ui): ssh workspaces settings tab 2026-10-02 14:32:05 +02:00
mika kuns 6c400dfb1a feat(ui): ssh workspaces as quick-session targets in mission control 2026-10-02 14:29:26 +02:00
mika kuns 1b58e628e6 feat(worker): ssh launch spec with reverse-tunnelled claudedo MCP 2026-10-02 14:26:52 +02:00
mika kuns 34970ca600 feat(worker): remote MCP listener gated by per-session tokens 2026-10-02 14:23:37 +02:00
mika kuns 0314319872 feat(data): store ssh workspaces on app_settings 2026-10-02 14:21:21 +02:00
mika kuns d9f42d7d48 fix(conpty): stop pinning --effort on hand-driven interactive sessions
Task, ad-hoc, planning, handoff and resume sessions now inherit the CLI
default / the user's /effort setting. List-handler sessions keep their
per-role effort.
2026-10-02 12:09:19 +02:00
mika kuns 309bdcc903 feat(claude-do): merge Task context menu: "Mark as → Idle" for cancelled tasks
ClaudeDo-Task: ad39dbb38d314e96803decc4e194e180
2026-10-02 10:33:36 +02:00
mika kuns 6f7dcff719 feat(claude-do): merge Pasting a clipboard image into the task description attaches
ClaudeDo-Task: 46c733e18d6c4bbb8742d0a1b0e3d829
2026-10-02 10:33:28 +02:00
mika kunsandClaude Sonnet 5.5 ae778d5c30 feat(diff-viewer): folder/file-type icons and change-kind colours in the file tree
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 10:31:55 +02:00
mika kunsandClaude Sonnet 5.5 3fab4016f7 feat(tasks): offer Mark as Idle for cancelled tasks
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 10:31:51 +02:00
mika kunsandClaude Sonnet 5.5 393e59460d feat(details): attach clipboard image on Ctrl+V in the task description
Extracts the clipboard bitmap read into a shared ClipboardBitmap helper
(also used by the terminal view); the description TextBox now routes an
image paste through AddFilesAsync as a unique paste-*.png attachment.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 10:31:47 +02:00
mika kuns 0c0bb7f24c fix(worktrees): detect external merges, clean up empty dirs, prune in owning repo
- ContentInMain: HEAD ancestor of the default branch or squash-merged
  (merge-tree == target tree), against local origin/<default> without fetch;
  list_worktrees mergedIntoMain and the overview modal ("merged (external)")
  use it, "Cleanup finished" takes clean Active rows that are in main
- cleanup_task_worktree skips the dirty check for a non-git directory
- prune / worktree remove / branch -D run in the repo owning the worktree
  (git-common-dir), not the list's working dir; branch already gone reports
  branchDeleted=true
2026-10-02 09:07:43 +02:00
mika kuns 9c015f34cc fix(claude-do): merge Log Visualizer shows every footer-log message, with footer c
ClaudeDo-Task: 199f5a36ad8a4f329fc8bdeac10c5304
2026-10-01 17:36:45 +02:00
mika kunsandClaude Sonnet 5.5 5bf08873bd feat(mission-control): rename sessions inline in the Recent sessions flyout
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 17:35:13 +02:00
mika kunsandClaude Sonnet 5.5 c956ab102e fix(ui): Log Visualizer shows every footer-log message
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 17:35:03 +02:00
mika kuns d9355383a4 refactor(claude-do): merge Material icons: delete dead Icon.* geometries + guard test
ClaudeDo-Task: 13b9cdfe-2b78-4764-9edb-8e944ec260ee
2026-10-01 17:13:19 +02:00
mika kuns f6e0e824ef test(prompts): align improvement-child assertion with a76788a5 2026-10-01 17:03:14 +02:00
mika kunsandClaude Sonnet 5.5 de68515128 refactor(ui): delete dead Icon.* geometries and icon-stroke styles, add MDI name guard test
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 16:56:45 +02:00
mika kunsandClaude Sonnet 5.5 7c0fe92a3e refactor(ui): Material icons for list, folder and smart-list icon keys with legacy mapping
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 16:50:31 +02:00
mika kunsandClaude Sonnet 5.5 46e9303da6 fix(mission-control): show post-merge verify as Verifying instead of In review
Derived from the VerifyMerge entry in RunningOperations (no new TaskStatus). The Running now row stays, reworded to 'Verifying after merge'.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 14:50:55 +02:00
mika kuns e79f1bf22c fix(claude-do): merge Worker log: stop writing SignalR hub invocation arguments (P
ClaudeDo-Task: ae4e878c-e275-4c4f-94b5-ecb9b9602fd5
2026-10-01 13:33:19 +02:00
mika kuns eaa697b08e fix(claude-do): merge batch_get_tasks: accept "number" (and "id") in the fields fi
ClaudeDo-Task: e2ee8054-eb93-456a-98b2-f3362818f410
2026-10-01 13:32:59 +02:00
mika kuns a4596eea5b fix(claude-do): merge preview_merge_set: don't report a symbol as removed when the
ClaudeDo-Task: 4882c459-374c-4afe-a60d-2b25b8cce407
2026-10-01 13:32:48 +02:00
mika kuns 57257c3ead fix(claude-do): merge Fix ghost rows in Mission Control's "Running now" section (s
ClaudeDo-Task: 7b02a754-9472-4e2c-a6bc-02e50013eddb
2026-10-01 13:32:38 +02:00
mika kunsandClaude Sonnet 5.5 a736cf3098 test(worker): isolate GitRepoFixture repos under a unique parent so sibling worktree paths never collide
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 13:31:26 +02:00
mika kunsandClaude Sonnet 5.5 06fb73c4dd fix(worker): preview_merge_set no longer reports a symbol the same diff re-declares
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 13:30:21 +02:00
mika kuns ef5dad2700 fix(worker): batch_get_tasks accept "number" and "id" in fields filter
batch_get_tasks with fields: ["number", ...] was rejected with "Unknown
field(s)" even though every task DTO always carries id and number. Add
both to KnownDetailFields so they are accepted; BuildDetail already emits
them regardless of the fields filter.

Also add a test verifying fields: ["number", "title"] works and
description is properly excluded.
2026-10-01 13:26:47 +02:00
mika kunsandClaude Sonnet 5.5 e9c1ff2e70 fix(ui): Mission Control no longer lists finished operations as running
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 13:26:05 +02:00
mika kunsandClaude Sonnet 5.5 61645acf17 fix(worker): drop SignalR hub invocation events so PATs stay out of the worker log
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 13:26:01 +02:00
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 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 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 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