Commit Graph

265 Commits

Author SHA1 Message Date
Mika Kuns
365ecba990 feat(ui): add StreamLineFormatter for NDJSON stream parsing
Parses Claude CLI stream-json output into human-readable text.
Handles text deltas, tool use, results, API retries, and trims large files.
All 13 tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 16:22:36 +02:00
Mika Kuns
aaaa93323c test(ui): add ClaudeDo.Ui.Tests project to solution
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 16:22:26 +02:00
Mika Kuns
945a1eef11 feat(worker): default to claude-sonnet-4-6 when no model configured
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 16:20:48 +02:00
Mika Kuns
026df8d8f6 feat(ui): add RunNowRequestedEvent and GetAgentsAsync to WorkerClient
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 16:20:39 +02:00
Mika Kuns
a6fe91d106 docs(ui): add implementation plan for UI fixes
23 tasks covering: StreamLineFormatter (TDD), LiveText display,
start feedback, log reload, modal theming, and config editors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 16:15:15 +02:00
Mika Kuns
fb3c96c405 docs(ui): add design spec for post-integration UI fixes
Covers four issues from first real test: raw NDJSON display,
missing start feedback, lost live output, and config editor gaps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 16:08:12 +02:00
Mika Kuns
3eb040f618 chore(claudedo): Add a Readme to the repo
ClaudeDo-Task: 6a119bda-2368-443e-b9b2-55584527bcfb
2026-04-14 15:37:17 +02:00
Mika Kuns
95c8cc8372 fix(ui): allow RunNow for any non-running task, not just queued 2026-04-14 15:35:02 +02:00
Mika Kuns
c1c4c75979 refactor(worker): remove MessageParser (replaced by StreamAnalyzer) 2026-04-14 14:12:21 +02:00
Mika Kuns
03728c8e4a docs(worker): update CLAUDE.md with CLI modernization changes 2026-04-14 14:10:46 +02:00
Mika Kuns
c98a29c086 test(worker): add integration test for auto-retry flow
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 14:10:44 +02:00
Mika Kuns
26c2445bb5 fix(tests): update QueueServiceTests for new TaskRunner constructor signature 2026-04-14 14:09:06 +02:00
Mika Kuns
adc5a16afc feat(worker): add ContinueTask routing to QueueService 2026-04-14 14:04:28 +02:00
Mika Kuns
6cb8012d82 feat(worker): add ContinueTask, GetAgents, RefreshAgents hub methods and RunCreated broadcast 2026-04-14 14:04:17 +02:00
Mika Kuns
76473dd92a refactor(worker): rewrite TaskRunner with config resolution, retry, and continue support 2026-04-14 14:02:57 +02:00
Mika Kuns
1cdaaf9fd2 refactor(worker): simplify ClaudeProcess to accept pre-built args and use StreamAnalyzer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 11:45:23 +02:00
Mika Kuns
8825351526 feat(worker): add AgentFileService for filesystem agent management
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:39:24 +02:00
Mika Kuns
54c4d3cf93 feat(worker): extend RunResult with structured output, session ID, and token metrics
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:38:39 +02:00
Mika Kuns
f57cdb7cb4 feat(data): extend TaskRepository with model, system_prompt, agent_path columns
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:37:08 +02:00
Mika Kuns
8b342bcc21 feat(worker): add StreamAnalyzer for rich NDJSON stream parsing 2026-04-14 11:36:58 +02:00
Mika Kuns
dab461cc41 feat(worker): add ClaudeArgsBuilder for dynamic CLI argument construction
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:35:46 +02:00
Mika Kuns
5232d5f130 feat(data): add GetConfigAsync and SetConfigAsync to ListRepository
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:34:16 +02:00
Mika Kuns
19a210406e feat(data): add TaskRunRepository with CRUD and query methods
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:31:34 +02:00
Mika Kuns
02aaa9da64 feat(data): add ListConfigEntity, TaskRunEntity, AgentInfo models and task config fields
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:27:04 +02:00
Mika Kuns
36ae6532b4 feat(data): add list_config, task_runs tables and task config columns
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:25:12 +02:00
Mika Kuns
221640a203 feat(ui): UX redesign — Microsoft To Do style with Rider island layout
- Inline task creation (Enter to add, Escape to cancel)
- Editable detail pane with auto-save on focus-lost
- Tag chips with inline add/remove
- Circular checkboxes with status colors
- Keyboard shortcuts (Ctrl+N, Ctrl+L, Ctrl+R, Delete, Space, F2)
- Rider-style island layout with rounded panels
- Warm Charcoal theme with Forest Teal accent
- Reactive proportional column sizing
- Completed task strikethrough and dimming

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:18:27 +02:00
Mika Kuns
028cd9a061 style(ui): replace blue selection highlight with dimmed green
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:58:41 +02:00
Mika Kuns
cd91120552 style(ui): increase text contrast for better readability
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:54:35 +02:00
Mika Kuns
c3fed45481 style(ui): island layout with Warm Charcoal theme (Rider-style)
Replace flat columns with rounded island panels on a dark base.
Remove GridSplitters, add gap-based spacing between islands.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:52:52 +02:00
Mika Kuns
5f51fe9621 fix(ui): replace deprecated Watermark with PlaceholderText
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:38:06 +02:00
Mika Kuns
c44aefde77 style(ui): add strikethrough and dimming for completed tasks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:36:06 +02:00
Mika Kuns
ff5e56a6f0 feat(ui): add global keyboard shortcuts (Ctrl+N, Ctrl+L, Ctrl+R, Ctrl+Shift+N)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:33:48 +02:00
Mika Kuns
2dcfc7e352 feat(ui): add inline add handlers, checkbox click, and task keyboard shortcuts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:33:45 +02:00
Mika Kuns
a44c104940 feat(ui): add auto-save LostFocus handlers and tag input KeyDown
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:31:54 +02:00
Mika Kuns
df132e8be1 style(ui): redesign TaskDetailView with editable fields, tag chips, and accent styling
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:30:17 +02:00
Mika Kuns
eb7c1ebf69 style(ui): redesign task rows with checkboxes, inline add field, remove toolbar
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:29:44 +02:00
Mika Kuns
2d6b5bbaff style(ui): redesign MainWindow with reactive layout, sidebar polish, and list header
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:27:49 +02:00
Mika Kuns
5b6c095a89 fix(di): register TagRepository in TaskDetailViewModel constructor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:25:22 +02:00
Mika Kuns
f51278e1aa feat(ui): wire TaskDetail changes back to task list refresh
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:25:16 +02:00
Mika Kuns
28a0d9b11f feat(ui): make TaskDetailViewModel editable with auto-save and tag CRUD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:24:10 +02:00
Mika Kuns
a4da2e23a1 feat(ui): add inline task creation, toggle-done, and list name to TaskListViewModel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:23:58 +02:00
Mika Kuns
0796b3c2d5 feat(ui): add ToggleDone command and checkbox state to TaskItemViewModel 2026-04-14 10:21:47 +02:00
Mika Kuns
3c52e9c67f feat(ui): add colored dot brush to ListItemViewModel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:20:59 +02:00
Mika Kuns
d8c628c15a style: add Forest Teal accent resources and force dark theme
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:20:58 +02:00
Mika Kuns
a548d41d18 feat(ui): add CheckboxBorderConverter for task status circles
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 10:20:22 +02:00
Mika Kuns
9f61cd1449 docs: add UX redesign implementation plan (16 tasks)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 10:07:13 +02:00
Mika Kuns
0e41c37d37 docs: add UX redesign spec (Microsoft To Do style)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 09:54:45 +02:00
Mika Kuns
473e0f71d5 fix(ui): re-evaluate RunNow CanExecute when worker connection changes
Subscribe to WorkerClient.PropertyChanged in TaskListViewModel and call
NotifyCanExecuteChanged on every TaskItemViewModel.RunNowCommand when
IsConnected flips, so the button enables immediately on reconnect without
waiting for the next task DB refresh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:46:10 +02:00
Mika Kuns
981b8e4a3d fix(ui): make list and task rows fully hit-testable for clicks
Add Background="Transparent" and HorizontalAlignment="Stretch" to the
DataTemplate roots in MainWindow.axaml and TaskListView.axaml so that
DoubleTapped, PointerPressed and ContextFlyout fire reliably across the
entire row surface.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:41:23 +02:00
Mika Kuns
7838f081dd refactor(ui): harden context menu event handling and simplify bindings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:16:09 +02:00