mika kuns
ef3fba1690
feat(ui): add batch-merge row state to worktrees cockpit VM
2026-06-05 10:44:18 +02:00
mika kuns
4bf4a27036
feat(ui): route single-task merge conflicts into a resolution seam
2026-06-05 10:30:43 +02:00
mika kuns
2dfc4559b1
feat(ui): add conflict-resolution worker contract (foundation for merge rework)
2026-06-05 10:20:42 +02:00
mika kuns
6c65158be8
feat(ui): add IsGitTab flag to work console view model
2026-06-05 08:28:12 +02:00
mika kuns
0d8999dc20
feat(ui): show mergeability and surface approve conflicts in the work console
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 23:35:53 +02:00
mika kuns
3202c76674
feat(ui): wire merge-aware approve and preview into the worker client
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 23:32:12 +02:00
mika kuns
98b0d58e03
fix(worker-tests): update TaskMergeService ctor calls after ITaskStateService injection
2026-06-04 23:25:03 +02:00
mika kuns
b817c87656
feat(worker): approve merges worktree before marking task done
2026-06-04 23:24:50 +02:00
mika kuns
4098f7f341
feat(git): add non-destructive merge-tree conflict probe
2026-06-04 23:18:54 +02:00
mika kuns
82390047d2
feat(ui): add RefineTask client call and refine events
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 23:16:58 +02:00
mika kuns
e523ed85eb
feat(refine): wire RefineTask hub method, broadcaster events, and DI
2026-06-04 23:14:00 +02:00
mika kuns
0460d7bea5
feat(refine): add RefineRunner, prompt/args helper, and interfaces
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 23:09:30 +02:00
mika kuns
22830d3ea8
feat(mcp): add add_subtask tool to claudedo MCP
2026-06-04 23:03:07 +02:00
mika kuns
299867d8df
feat(worker): compose task prompt from title + description + open steps only
...
Resolved sub-tasks are no longer appended to the prompt. Extracted into a
shared TaskPromptComposer so the UI's description preview can render the same
'what Claude gets' text.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-04 19:16:37 +02:00
mika kuns
cc7355eaa4
fix(ui): stop app crash when approving review after Merge all
...
The Details island review commands (Approve/Reject/Park/Cancel) invoked the
hub without catching exceptions. After "Merge all" folds the parent out of
WaitingForReview, pressing Approve made the hub throw a HubException, which
escaped the generated AsyncRelayCommand as an unobserved async-void exception
and crashed the app. Wrap the calls in try/catch like the Tasks island does;
the TaskUpdated broadcast reconciles the UI.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-04 18:04:37 +02:00
mika kuns
176b9855bf
feat(prompt): focused custom prompt for improvement children so they stay narrow
2026-06-04 16:53:41 +02:00
mika kuns
f60becaf06
feat(prompt): instruct agents to offload out-of-scope work via SuggestImprovement
2026-06-04 16:10:39 +02:00
mika kuns
519bfbe6b3
feat(merge): fold parent branch into tree-merge for improvement parents
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 16:09:44 +02:00
mika kuns
06e3acd5ac
feat(runner): mint per-run MCP token + emit run-scoped --mcp-config
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 16:03:51 +02:00
mika kuns
f3052dc5fc
feat(mcp): resolve per-run tokens in MCP auth + register TaskRunMcpService
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 15:57:12 +02:00
mika kuns
9d133e227b
feat(mcp): add SuggestImprovement tool (server-stamped, one layer deep)
2026-06-04 15:51:57 +02:00
mika kuns
ef86a8c29b
feat(mcp): add per-run TaskRunTokenRegistry
2026-06-04 15:50:06 +02:00
mika kuns
da23b6cd3a
feat(worktree): base improvement-child worktree on parent HEAD
2026-06-04 15:46:44 +02:00
mika kuns
c10f564265
feat(runner): route standalone success with children to WaitingForChildren + enqueue them
2026-06-04 15:46:38 +02:00
mika kuns
6f4b5d5544
feat(state): add SubmitForChildrenAsync (Running -> WaitingForChildren)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 15:38:15 +02:00
mika kuns
f25c7599bd
fix(children): exempt improvement children from orphan-dequeue sweep
2026-06-04 15:35:06 +02:00
mika kuns
ee0d1257dd
feat(status): add WaitingForChildren task status value
2026-06-04 15:32:11 +02:00
mika kuns
d8b86e33a3
feat(ui): host review actions in the details panel; show review state and diff meter
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 15:03:19 +02:00
mika kuns
49b9f1ffde
feat(roadblock): persist roadblock count on the task
2026-06-04 14:58:59 +02:00
mika kuns
9a117a5429
fix(prompts): apply system default on every run; dedupe roadblocks
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 14:25:55 +02:00
mika kuns
1e547dea18
feat(roadblock): surface reported roadblocks in the review result
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 14:18:51 +02:00
mika kuns
cf7f0da400
feat(roadblock): collect and strip CLAUDEDO_BLOCKED markers in StreamAnalyzer
2026-06-04 14:15:45 +02:00
mika kuns
79bfc79d33
feat(prompts): daily-prep prompt from file, English default
2026-06-04 14:11:30 +02:00
mika kuns
edc9f77357
feat(prompts): retry prompt from file, append only real captured errors
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 14:03:32 +02:00
mika kuns
9bdf99d95f
feat(prompts): externalize prompt kinds with defaults and token renderer
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 13:55:47 +02:00
mika kuns
925b72ae83
test(worker): cover max-turns in ConfigMcpTools round-trip
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-04 12:41:54 +02:00
mika kuns
92cee125cc
feat(ui): add inheritance resolver returning value and source
2026-06-04 12:28:12 +02:00
mika kuns
beae2d639d
feat(worker): resolve max-turns from task then list then global default
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 12:20:35 +02:00
mika kuns
ac137f7c1c
feat(data): persist max_turns in list and task repositories
...
Add MaxTurns to ListRepository.SetConfigAsync upsert branch and
TaskRepository.UpdateAgentSettingsAsync; fix positional CancellationToken
call in ConfigMcpTools. Covered by MaxTurnsRoundTripTests (2 tests).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 12:18:32 +02:00
mika kuns
2dfa9956c5
revert: drop real-claude smoke test; track as manual verification
...
A test that spawns the actual claude binary shouldn't live in the suite —
dotnet test must never invoke Claude. §1.0 step 3 stays a manual check.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-04 11:39:20 +02:00
mika kuns
773811d060
test(worker): add opt-in real-claude smoke test
...
Spawns the actual claude binary and asserts exit code 0, a session id,
non-empty result, and output tokens > 0 (plan-verification §1.0 step 3).
Inert unless CLAUDE_AUTHENTICATED=1, since it needs an authenticated CLI.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-04 11:36:51 +02:00
mika kuns
cc46019622
test(worker): cover External MCP worktree/git tools
...
Add error-path + git-backed happy-path tests for the five previously
untested ExternalMcpService tools: GetTaskWorktree, GetTaskDiff,
MergeTask (dry-run + not-Done guard), ListWorktrees, CleanupTaskWorktree.
Git-backed cases skip when git is unavailable.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-04 11:24:45 +02:00
mika kuns
71ac48162a
fix(worker): clean up orphaned worktree when the DB row insert fails
...
If WorktreeAddAsync succeeds but the worktrees-row insert throws, the
worktree was left on disk and branch undeleted with nothing tracking it.
Wrap the insert in try/catch and best-effort remove the worktree+branch
(non-cancellable) before rethrowing.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-04 11:21:40 +02:00
mika kuns
7d743f17c6
feat(daily-prep): trigger planning from inside the prep-log window with an empty-state hint
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 10:01:27 +02:00
mika kuns
914095dc99
feat(daily-prep): load persisted prep log into the terminal on open
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 09:44:38 +02:00
mika kuns
4d82079cac
feat(daily-prep): persist last prep run to a log file and serve it via GetLastPrepLog
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 09:39:11 +02:00
mika kuns
c45f892591
feat(daily-prep): add Prep-log and Clear-day buttons to MyDay header
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 08:18:30 +02:00
mika kuns
a8670ee23a
feat(daily-prep): add live prep-output mode to the Details island
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 08:14:09 +02:00
mika kuns
7676ecf0d4
feat(daily-prep): expose prep stream events and ClearMyDay on the UI worker client
2026-06-04 08:09:41 +02:00
mika kuns
fa83d7f441
feat(daily-prep): add ClearMyDay hub method
2026-06-04 08:05:33 +02:00