Commit Graph

961 Commits

Author SHA1 Message Date
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
43f8f7f7d8 feat(worker): expose PreviewMerge hub method and merge-on-approve 2026-06-04 23:29:05 +02:00
mika kuns
f1cf29b58d fix(worker): guard blank working dir in approve-merge before resolving target
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 23:27:59 +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
2a6781f80f feat(ui): add Refine button, icon, and command to task card 2026-06-04 23:21:30 +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
75ad7b1735 docs(merge): add approve-merge + conflict-preview implementation plan
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 23:16:11 +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
66a7b2377f docs(merge): add approve-merge + conflict-preview design spec
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 23:07:25 +02:00
mika kuns
eca6813cdb feat(prompts): add Refine prompt kind and default 2026-06-04 23:04:24 +02:00
mika kuns
22830d3ea8 feat(mcp): add add_subtask tool to claudedo MCP 2026-06-04 23:03:07 +02:00
mika kuns
3573548348 docs(refine): add Refine Task implementation plan
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 23:00:01 +02:00
mika kuns
0867bc8296 docs(refine): add Refine Task design spec
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 22:53:17 +02:00
mika kuns
1603be0c78 fix(ui): stop the console clipping the last log line
The tab body ran flush into the console's rounded bottom corner, so the final
log line was shaved off. Inset the tab body from the bottom so the scroll
viewport ends above the corner and ScrollToEnd reveals the whole last line.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 22:51:49 +02:00
mika kuns
71a3765c07 fix(ui): render Output log directly on the console, not as a nested card
The Output tab embedded SessionTerminalView, which is itself a bordered terminal
card with its own header — a card inside the console card. Render the log lines
directly on the console body instead (the console already provides the terminal
chrome, traffic lights, and status chip), with auto-scroll moved to code-behind.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 20:27:03 +02:00
mika kuns
b840655163 feat(ui): resize detail split by dragging the console's top edge
Replace the standalone GridSplitter bar between the details card and the work
console with a transparent splitter over the gap above the console, so the user
drags the console's top edge to resize. Restore the prep-log terminal's inset
now that SessionTerminalView no longer hard-codes its own margin.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 20:18:44 +02:00
mika kuns
ac9bae9546 feat(ui): rework work console — single Session tab, right-aligned header, turns x/y
- Merge "Actions" + "Session" into one state-aware Session tab: review controls
  on top, then merge/worktree management, then child outcomes — each gated on the
  current state, with an empty-state hint when there's nothing to manage. This is
  the home the real merge/diff work (task 09eb5d52) will slot into.
- Move the model · turns · diff info block to the right of the title bar.
- Show turns as current/max using the resolved turn budget (task → list → global).
- Output terminal now fills the console body cleanly: clip the console to its
  rounded corners and inset the embedded terminal instead of clipping its bottom.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 20:18:36 +02:00
mika kuns
99c6bf4478 feat(ui): make steps visible at a glance; lift details card off background
The single flip-icon hid that steps existed until toggled. Replace it with an
always-visible "STEPS" summary strip below the description (open/total count,
click to expand and manage). Description is now always the card body. Give the
card a Surface2 background + LineBrush border so it separates from the window.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 20:18:24 +02:00
mika kuns
3e848710b8 refactor(ui): remove dead inline-layout handlers from DetailsIslandView
The redesigned detail island moved the title, subtask rows, and copy/edit
controls into TaskHeaderBar and DescriptionStepsCard, leaving four unused
code-behind handlers (OnSubtaskTitleTapped, OnSubtaskEditLostFocus,
OnTaskIdTapped, OnCopyDescriptionClick) and their imports.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 20:17:45 +02:00
mika kuns
a2c339cd87 docs(web): add ClaudeDo distribution website design spec
Approved design for a Nuxt 3 site at claudedo.kuns.dev: "the page is the
app" concept (3-island layout), build-time release fetch, and a Nitro
release proxy that fronts the self-updater to hide the Gitea URL.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 20:07:58 +02:00
mika kuns
c71026d125 feat(ui): wire redesigned detail island (header + description/steps card + work console)
Replace the long scrolling DetailsIslandView with the new pinned layout: a
separated TaskHeaderBar (trash↔skull, gear), a DescriptionStepsCard (text⇄steps
toggle, Preview = composed prompt), and a pinned WorkConsole (Output/Actions/
Session tabs). The three components now bind to DetailsIslandViewModel; their
scaffolding sample VMs are removed. Drops the old inline sections + AgentStripView.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 19:49:41 +02:00
mika kuns
ce50f9fcce feat(ui): add WorkConsole detail component
Standalone terminal-styled card with traffic-light title bar, roadblock
band, and three tabs (Output / Actions / Session). Renders fully via
design-time sample data; does not touch DetailsIslandView.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 19:35:35 +02:00
mika kuns
c323953f8c feat(ui): add DescriptionStepsCard detail component
Standalone UserControl combining Description + Steps into one card with
a top-right toggle. Description view shows raw editor or composed
MarkdownView (title + description + open steps). Steps view has an
add-step input and subtask rows with inline editing and check circles.
Adds Icon.Text geometry to IslandStyles for the steps→description toggle.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 19:35:28 +02:00
mika kuns
9f95942dd1 feat(ui): add TaskHeaderBar detail component
Standalone UserControl for the task detail island redesign.
Grid layout: id badge + editable title | trash/skull toggle | gear flyout.
Skull geometry added to IslandStyles.axaml (Icon.Skull, EvenOdd fill).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 19:35:21 +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
8f7e2898fe docs(ui): task-detail island redesign spec + component build prompts 2026-06-04 19:12:04 +02:00
mika kuns
9f37b1e21e feat:(workflows) Add Changelogs to Relase 2026-06-04 19:07:05 +02:00
mika kuns
c5a4e350e9 docs(logging): implementation plan for build-config logging + traceability
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 18:27:49 +02:00
mika kuns
e547921fdd docs(logging): runtime build-config detection, Warning in Release, retain 2
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 18:20:37 +02:00
mika kuns
f1316dfd0e docs(logging): design for build-config debug logging + task traceability
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 18:12:46 +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
22a1ba7f30 refactor(ui): share color-coded diff rendering between per-task and combined diff viewers
Extract the unified-diff parser into UnifiedDiffParser and the styled line
renderer into a reusable DiffLinesView control. The combined (planning) diff
now parses its unified-diff string and renders color-coded rows (green
additions / red deletions, file headers) identical to the per-task viewer
instead of dumping plain text into a TextBox.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 17:56:06 +02:00
mika kuns
a3f407b0e5 fix(ui): live-update child outcomes + enable Review combined diff for improvement parents 2026-06-04 16:53:43 +02:00
mika kuns
469e68bbc8 feat(merge): fold parent branch into combined-diff for improvement parents 2026-06-04 16:53:42 +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
5d34f95fe0 feat(ui): show improvement-child outcomes on the parent review card + enable tree-merge 2026-06-04 16:32:37 +02:00
mika kuns
0e130177fc feat(ui): mark agent-suggested improvement children in the task tree
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 16:22:38 +02:00
mika kuns
5363570fb4 feat(ui): surface WaitingForChildren status (chip, color, agent-strip, labels)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 16:19:31 +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
7542bc2058 feat(mcp): add TaskRunMcpContext + accessor 2026-06-04 15:50:30 +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