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
mika kuns
e48475d6cd
feat(daily-prep): stream prep output via PrepStarted/PrepLine/PrepFinished
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 08:02:24 +02:00
mika kuns
2d00160283
feat(daily-prep): add RunDailyPrepNow hub method and expose DailyPrepMaxTasks
2026-06-03 16:30:23 +02:00
mika kuns
20b3a29d08
feat(daily-prep): run daily prep from PrimeRunner via allowed MCP tools
2026-06-03 16:24:09 +02:00
mika kuns
fd7f8ac78f
feat(daily-prep): add set_my_day MCP tool with cap-guard
2026-06-03 16:19:36 +02:00
mika kuns
0bb809445e
feat(daily-prep): add get_daily_prep_candidates MCP tool
2026-06-03 16:15:27 +02:00
mika kuns
3c66d65160
feat(daily-prep): add DailyPrepMaxTasks app setting
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 16:11:30 +02:00
mika kuns
350a89f364
feat(i18n): localize ViewModel-built strings via ambient Loc accessor
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 12:43:30 +02:00
mika kuns
070f5de1b1
feat(i18n): add language dropdown to settings and persist selection
2026-06-03 11:51:36 +02:00
mika kuns
6a85d82fcf
feat(i18n): add Language preference and Save() to AppSettings
2026-06-03 11:45:06 +02:00
mika kuns
35ad1715d3
feat(i18n): add Avalonia loc:Tr markup extension and LocalizedString
2026-06-03 11:44:16 +02:00