Mika Kuns
5348220e60
feat(ui): add ListSettingsModalView
2026-04-22 13:22:39 +02:00
Mika Kuns
cd0b95ef9a
feat(ui): add ListSettingsModalViewModel
2026-04-22 13:20:42 +02:00
Mika Kuns
fc1cfe59ec
feat(ui): WorkerClient supports list/task agent settings + ListUpdated event
2026-04-22 13:18:16 +02:00
Mika Kuns
7c312161bb
feat(worker): add hub methods for list and task agent settings
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 13:16:46 +02:00
Mika Kuns
480eb0817a
feat(data): add TaskRepository.UpdateAgentSettingsAsync
2026-04-22 13:10:21 +02:00
Mika Kuns
1b94fa5c44
feat(data): add ListRepository.DeleteConfigAsync
2026-04-22 13:09:03 +02:00
Mika Kuns
31420574db
feat(ui): show status messages and real diff-stats in DiffModal
...
- Count additions/deletions per file as lines are parsed.
- Surface load failures and empty-diff states via StatusMessage.
- Pass the worktree base commit so diffs render against the branch
base, not just the working-tree HEAD.
2026-04-22 11:03:37 +02:00
Mika Kuns
07dee31847
fix(data): use UTF-8 encoding for git process stdio
...
Ensures non-ASCII git output (branch names, paths, commit messages) is
read and written without locale-dependent corruption.
2026-04-22 11:03:24 +02:00
Mika Kuns
4debd5ce09
fix(ui): disable Merge button after worktree is no longer Active
...
Add WorktreeStateLabel observable property populated from
entity.Worktree?.State.ToString() in both BindAsync and
RefreshWorktreeAsync. CanMerge now requires WorktreeStateLabel == "Active"
so the button disables after a successful merge with removeWorktree:false.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 10:36:09 +02:00
Mika Kuns
1495c63e3d
fix(worker): return Blocked when MergeAbortAsync fails to avoid stuck repo
...
If git merge --abort throws, the repo is left mid-merge. Previously the
code logged a warning and returned a conflict result, giving the UI a
stale file list. Now it returns Blocked with an explicit message so the
caller knows manual resolution is required.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 10:30:44 +02:00
Mika Kuns
953d93179d
fix(worker): honour targetBranch in MergeAsync by checking out before merge
...
Add GitService.CheckoutBranchAsync; compare targetBranch to current HEAD
before MergeNoFfAsync and switch when they differ. Returns Blocked if the
branch does not exist. Add three new tests (two service, one GitService).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 10:25:35 +02:00
Mika Kuns
1bc7fcc609
feat(ui): add Merge button to DiffModal
2026-04-22 09:53:11 +02:00
Mika Kuns
c911717a3b
feat(ui): add Merge command to DiffModal
2026-04-22 09:53:07 +02:00
Mika Kuns
949911f6c8
feat(ui): attach MergeModal to DetailsIsland
2026-04-22 09:53:03 +02:00
Mika Kuns
f3a58a6515
feat(ui): wire DetailsIsland ApproveMerge through MergeModal
2026-04-22 09:52:59 +02:00
Mika Kuns
ee4cd706ef
chore(app): register MergeModalViewModel
2026-04-22 09:47:19 +02:00
Mika Kuns
e11b01951e
feat(ui): add MergeModalView
2026-04-22 09:46:33 +02:00
Mika Kuns
3d0cc4ffed
feat(ui): add MergeModalViewModel
2026-04-22 09:46:20 +02:00
Mika Kuns
4585b20f80
feat(ui): add MergeTaskAsync and GetMergeTargetsAsync to WorkerClient
2026-04-22 09:44:48 +02:00
Mika Kuns
c53b5878cf
feat(worker): expose MergeTask and GetMergeTargets on WorkerHub
2026-04-22 09:44:22 +02:00
Mika Kuns
c13ae437f7
chore(worker): register TaskMergeService
2026-04-22 09:43:34 +02:00
Mika Kuns
3331c24898
feat(worker): implement TaskMergeService happy path
2026-04-22 09:37:35 +02:00
Mika Kuns
1c20d8f846
feat(worker): scaffold TaskMergeService with pre-flight checks
2026-04-22 09:36:16 +02:00
Mika Kuns
77a1460e3a
feat(git): add ListConflictedFilesAsync
2026-04-22 09:31:36 +02:00
Mika Kuns
21a1870fd7
feat(git): add MergeAbortAsync
2026-04-22 09:29:24 +02:00
Mika Kuns
3ebbdb3f6e
feat(git): add MergeNoFfAsync returning (exitCode, stderr)
2026-04-22 09:27:47 +02:00
Mika Kuns
535d0c5558
feat(git): add IsMidMergeAsync
2026-04-22 09:25:10 +02:00
Mika Kuns
2d807aa606
feat(git): add ListLocalBranchesAsync
2026-04-22 09:23:35 +02:00
Mika Kuns
93ee7b72d5
feat(git): add GetCurrentBranchAsync
2026-04-22 09:22:41 +02:00
Mika Kuns
fb89e02b02
docs: note ResetTask hub method and TaskResetService
2026-04-21 17:46:00 +02:00
Mika Kuns
58c8210afa
fix(ui): correct Reset button tooltip wording
2026-04-21 17:44:50 +02:00
Mika Kuns
2ce6b7bd3a
feat(ui): add Continue and Reset buttons to agent strip
2026-04-21 17:44:00 +02:00
Mika Kuns
f90d3d8375
fix(ui): early-return in ResetAsync when ConfirmAsync is unwired
2026-04-21 17:42:36 +02:00
Mika Kuns
b03e858a8f
feat(ui): add Continue and Reset commands to DetailsIslandViewModel
2026-04-21 17:40:32 +02:00
Mika Kuns
2278b516ea
feat(ui): add ContinueTaskAsync and ResetTaskAsync to WorkerClient
2026-04-21 17:37:41 +02:00
Mika Kuns
219a231f32
feat(worker): expose ResetTask hub method
...
Wire TaskResetService into DI and add WorkerHub.ResetTask with the
same InvalidOperationException/KeyNotFoundException error-translation
pattern as ContinueTask.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 17:35:37 +02:00
Mika Kuns
74eb36d3c0
feat(worker): add TaskResetService for discard + reset flow
...
Orchestrates worktree discard, task reset to Manual, and SignalR broadcast.
Includes integration tests (happy path + running-task rejection).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 17:31:52 +02:00
Mika Kuns
202236a45b
feat(data): add TaskRepository.ResetToManualAsync
2026-04-21 17:26:01 +02:00
Mika Kuns
44203f3c67
feat(worker): add WorktreeManager.DiscardAsync for task reset
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 17:21:08 +02:00
Mika Kuns
a180e8446c
chore(worker): tweak launchSettings
2026-04-21 15:56:14 +02:00
Mika Kuns
0406d35b61
style(ui): polish islands and remove terminal traffic-light dots
2026-04-21 15:56:07 +02:00
Mika Kuns
e6b37624a1
feat(ui): add settings modal and wire to worker hub
2026-04-21 15:55:53 +02:00
Mika Kuns
fca5d57fef
feat(worker): extend ClaudeArgsBuilder with MaxTurns and PermissionMode
2026-04-21 15:55:40 +02:00
Mika Kuns
cfb9ca1ca4
feat(worker): add WorktreeMaintenanceService for idle-worktree cleanup
2026-04-21 15:55:35 +02:00
Mika Kuns
62a1121571
feat(data): add AppSettings entity, migration, and repository
2026-04-21 15:55:29 +02:00
Mika Kuns
4283c67d81
fix(worker): prefix broadcast lines with [stdout] so UI parser routes them
2026-04-21 15:35:40 +02:00
Mika Kuns
374e811e78
feat(ui): render user tool_result blocks as one-line summaries
2026-04-21 15:13:00 +02:00
Mika Kuns
ec679e45ed
fix(ui): truncate WebFetch URL in tool_use arg
2026-04-21 15:11:17 +02:00
Mika Kuns
3a67fe81b4
feat(ui): render assistant tool_use blocks with per-tool args
2026-04-21 15:08:35 +02:00
Mika Kuns
dc6e3fe442
feat(ui): render assistant text blocks, skip thinking
2026-04-21 15:05:40 +02:00