Commit Graph
100 Commits
Author SHA1 Message Date
mika kunsandClaude Opus 4.7 09b52140ce refactor(ui): remove unused Instance statics on bool converters
App.axaml registers these converters via the resource dictionary; the static
Instance members were never referenced.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 19:46:52 +02:00
mika kunsandClaude Opus 4.7 e7d595244e fix(ui): Planned status uses blue badge style
Previously both Planning and Planned rendered the same amber badge because a
single <Border class="badge planning"> was used. Split into two borders gated
by IsPlanning / IsPlanned so Planned picks up the blue badge.planned style.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 19:46:39 +02:00
mika kuns 450e685580 docs(open): add planning-session manual verification checklist 2026-04-23 19:32:34 +02:00
mika kuns 0e116bec7b feat(ui): friendly error when deleting task with children 2026-04-23 19:22:28 +02:00
mika kunsandClaude Sonnet 4.6 47b49743c0 feat(ui): unfinished planning session dialog
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 19:19:16 +02:00
mika kuns 506caa2c53 feat(ui): draft and planning badge styles 2026-04-23 19:04:26 +02:00
mika kuns 388a8c1fae feat(ui): planning entries in task context menu 2026-04-23 19:02:06 +02:00
mika kunsandClaude Sonnet 4.6 42b208ff28 feat(ui): TaskRowView hierarchy indentation, chevron, badges, draft italic
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 18:58:08 +02:00
mika kunsandClaude Sonnet 4.6 309f84b388 feat(ui): planning commands and expand/collapse in TasksIslandViewModel
- Add IWorkerClient interface; WorkerClient implements it
- TasksIslandViewModel accepts IWorkerClient? and gains OpenPlanningSession,
  ResumePlanningSession, DiscardPlanningSession, FinalizePlanningSession,
  and ToggleExpand commands
- Regroup() is hierarchy-aware: children of collapsed planning parents are hidden
- InternalsVisibleTo ClaudeDo.Worker.Tests for Regroup()
- 4 new unit tests covering collapse/expand and guard logic

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 18:51:22 +02:00
mika kuns 00608401aa feat(ui): WorkerClient planning-session methods 2026-04-23 18:41:04 +02:00
mika kunsandClaude Sonnet 4.6 229d4bbb2b feat(ui): TaskRowViewModel gains planning hierarchy flags
Adds ParentTaskId, IsExpanded, IsChild, IsPlanningParent, IsDraft, and
PlanningBadge to TaskRowViewModel with property-changed notifications.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 18:39:44 +02:00
mika kunsandClaude Sonnet 4.6 d4a46420c9 feat(worker): hook TryCompleteParentAsync after MarkDone/MarkFailed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 18:18:50 +02:00
mika kuns f704244b84 test(data): parent delete with children is restricted 2026-04-23 18:15:12 +02:00
mika kuns 782110604b fix(data): enable foreign_keys pragma in MigrateAndConfigure 2026-04-23 18:15:06 +02:00
mika kuns 19bf032a2e test(data): queue skips Planning/Planned/Draft 2026-04-23 18:09:29 +02:00
mika kuns b7464c9a11 feat(data): TaskRepository.TryCompleteParentAsync 2026-04-23 18:08:14 +02:00
mika kuns 524aaf85af feat(data): TaskRepository.DiscardPlanningAsync 2026-04-23 18:04:40 +02:00
mika kuns a9e7479326 feat(data): TaskRepository.FinalizePlanningAsync 2026-04-23 18:03:10 +02:00
mika kuns 2e80cc606e feat(data): TaskRepository.FindByPlanningTokenAsync 2026-04-23 17:59:42 +02:00
mika kuns d099138487 feat(data): TaskRepository.UpdatePlanningSessionIdAsync 2026-04-23 17:58:28 +02:00
mika kuns 2278d97b7e feat(data): TaskRepository.SetPlanningStartedAsync 2026-04-23 17:56:19 +02:00
mika kuns 74255ddc82 feat(data): TaskRepository.CreateChildAsync 2026-04-23 17:54:43 +02:00
mika kuns b466246c1b feat(data): TaskRepository.GetChildrenAsync 2026-04-23 17:52:51 +02:00
mika kuns b3eb39a28b feat(data): migration AddPlanningSupport 2026-04-23 17:48:10 +02:00
mika kuns 253e6f05e0 feat(data): configure planning columns and self-ref FK with Restrict 2026-04-23 17:45:31 +02:00
mika kuns 042a1b47c2 feat(data): add planning columns and self-ref navigations to TaskEntity 2026-04-23 17:44:55 +02:00
mika kuns 7a20534e7c feat(data): add Planning, Planned, Draft task statuses 2026-04-23 17:44:29 +02:00
mika kuns ee2cbc92ef feat(ui): move list-settings access from lists pane to tasks header
The gear button on list rows became noisy and overlapped with row
selection. Moves it into the tasks island header where it targets the
currently selected list. Lists pane regains a cleaner row layout.
Also: swallow GetListConfig errors on fresh lists that have no row yet.
2026-04-23 17:40:27 +02:00
mika kuns 373f04a034 build: manage version via MinVer with AssemblyInformationalVersion
Uses MinVer to derive the version from git tags (prefix "v"), stored in
AssemblyInformationalVersion. Program.cs reads that attribute (stripping
the "+sha" build metadata) so the update-check compares against a clean
semver. CI overrides the tag via /p:MinVerVersionOverride=$VERSION.
2026-04-23 17:40:01 +02:00
mika kunsandClaude Opus 4.7 43d517dcfc docs(plans): add planning sessions implementation plans A, B, C
- Plan A (Foundation): schema, enum, repos, auto-status hook
- Plan B (Worker MCP + Launcher): MCP server, SignalR endpoints, wt.exe launcher
- Plan C (UI): context menu, hierarchy rendering, dialog, client methods

Plans B and C depend on Plan A merging first (marker: migration file
AddPlanningSupport). B and C can run in parallel after A.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 17:36:02 +02:00
mika kunsandClaude Opus 4.7 8891d48af2 docs(spec): add planning sessions design
Interactive "Open planning Session" context menu: launches a scoped
MCP-backed Claude CLI session in Windows Terminal, letting the user
brainstorm and Claude break a rough task into concrete child-tasks
under a flat parent-child hierarchy. Includes schema, MCP tool surface,
terminal launch, UI changes, lifecycle, testing, and a three-plan
phasing (A foundation, then B worker + C UI in parallel).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 17:21:24 +02:00
mika kuns 0b72c0fb53 Merge branch 'feat/self-update'
Self-update for app and installer. Integrates cleanly with the
worker-log-footer feature that landed on main in parallel — the
shell VM now carries both worker-log state and update-check state,
and MainWindow hosts both the update banner and the footer log line.

Conflict resolved in IslandsShellViewModel.cs: kept nullable property
types from main's test-only parameterless constructor work, and added
the UpdateCheck property exposing the injected service.
2026-04-23 15:24:07 +02:00
mika kuns a41e5b5b2d docs(open): add self-update manual verification checklist 2026-04-23 15:11:39 +02:00
mika kuns 00c62178e1 feat(ui): add update banner and Help menu to MainWindow 2026-04-23 15:10:43 +02:00
mika kuns bbe7d73de2 feat(ui): wire update-check state and commands into shell VM 2026-04-23 15:05:56 +02:00
mika kuns 0934b294c2 feat(app): register UpdateCheckService and InstallerLocator in DI 2026-04-23 15:03:28 +02:00
mika kuns b28d8f2f4a feat(ui): show worker log line in footer 2026-04-23 14:59:28 +02:00
mika kunsandClaude Sonnet 4.6 ec4ec44603 feat(ui): add worker log state and 30s timer to shell VM
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 14:56:58 +02:00
mika kuns ee09706811 feat(ui): add InstallerLocator 2026-04-23 14:56:57 +02:00
mika kuns c06d1d6afb feat(ui): add UpdateCheckService 2026-04-23 14:53:20 +02:00
mika kunsandClaude Sonnet 4.6 f906e7086c feat(ui): add WorkerLogLevelToBrushConverter with tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 14:53:03 +02:00
mika kuns caf900b02d feat(installer): self-update pre-flight before wizard 2026-04-23 14:49:48 +02:00
mika kuns e80e3fccc0 feat(ui): subscribe to WorkerLog SignalR event 2026-04-23 14:49:43 +02:00
mika kuns e8056553fd feat(worker): emit WorkerLog for merge, discard, reset 2026-04-23 14:47:45 +02:00
mika kuns ea4d2d7c0c feat(worker): emit WorkerLog events from TaskRunner 2026-04-23 14:46:10 +02:00
mika kuns 98c188a5da feat(releases): add SelfUpdater.DownloadAndVerifyAsync 2026-04-23 14:45:13 +02:00
mika kuns 0c3dcb0052 feat(releases): add SelfUpdater.HandleReplaceSelfAsync 2026-04-23 14:42:41 +02:00
mika kuns e017d66023 feat(releases): add SelfUpdater.DecideUpdateAsync 2026-04-23 14:40:45 +02:00
mika kuns ba0b38b4f1 feat(releases): add SelfUpdater installer-asset matching 2026-04-23 14:38:20 +02:00
mika kuns 5b4cdd366e refactor(installer): use shared VersionComparer in InstallModeDetector 2026-04-23 14:36:45 +02:00
mika kuns 7c0f8d8408 feat(releases): add VersionComparer 2026-04-23 14:21:25 +02:00
mika kuns 0a7fcae137 feat(worker): add WorkerLog SignalR event 2026-04-23 14:19:04 +02:00
mika kunsandClaude Sonnet 4.6 5346737e2b test(releases): port ReleaseClient + ChecksumVerifier tests to new project
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 14:18:17 +02:00
mika kuns 80f6669585 feat(data): add WorkerLogLevel enum 2026-04-23 14:17:31 +02:00
mika kuns 27054e6715 chore: ignore .worktrees/ for local dev worktrees 2026-04-23 14:15:53 +02:00
mika kuns ea7694566d docs(superpowers): add worker-log footer implementation plan 2026-04-23 14:11:39 +02:00
mika kuns 46e01aefed refactor(releases): move release-API + checksum types to ClaudeDo.Releases 2026-04-23 14:09:40 +02:00
mika kuns 41e0bea162 docs(superpowers): add worker-log footer implementation plan 2026-04-23 14:03:09 +02:00
mika kuns 86012e02b9 feat(releases): add empty ClaudeDo.Releases library 2026-04-23 13:59:45 +02:00
mika kuns da19eb807b docs(superpowers): add worker-log footer design spec 2026-04-23 13:56:09 +02:00
mika kuns 0d37473575 docs(self-update): add implementation plan 2026-04-23 13:52:36 +02:00
mika kuns 6a4bf676ff docs(self-update): add design spec for app + installer self-update 2026-04-23 13:44:52 +02:00
mika kuns a135485339 docs(superpowers): add default-agents plan and design spec 2026-04-23 13:08:23 +02:00
mika kuns 3c420acd54 style(ui): polish list sidebar, kbd chips, and session terminal
- Introduce .list-count style for sidebar badges (brighter on active row).
- Bind list header More button to the correct OpenSettingsCommand.
- Give the per-list gear the standard icon-btn look.
- Center-align kbd chip content and title-bar/icon button content.
- Drop the kind-marker column in SessionTerminal and always show the
  scrollbar so the terminal feels like one.
2026-04-23 13:08:17 +02:00
mika kuns 5ced1b97a6 refactor(ui): redesign list settings and merge modals with custom chrome
Both modals now use SystemDecorations=None with a draggable title bar,
sectioned layout matching the rest of the island shell, Escape-to-cancel,
and themed brushes instead of hard-coded colours. ListSettings adds a
Browse... button that reads agent frontmatter from arbitrary .md files.
2026-04-23 13:08:09 +02:00
mika kuns 1344beba56 fix(ui): select task on left-click even when reorder is disabled
The tunnel pointer handler returned early when CanReorder was false,
so clicking a row in smart/virtual lists never updated the details
pane. Select first, then bail out of the drag path; also skip drag
initialisation on nested buttons so the done-toggle click still fires.
2026-04-23 13:08:02 +02:00
mika kuns c8c8bb4a47 feat(ui): replay persisted task log when selecting a task
Read the task's LogPath on selection and feed each line through the
live-stream parser so Claude output stays visible across app restarts.
Tail-caps at 2000 lines to avoid flooding the UI.
2026-04-23 13:07:54 +02:00
mika kuns 6f725d12f5 feat(ui): add queueing and scheduling from task row context menu
- Right-click on a task row exposes Send to queue / Remove from queue
  and Schedule for... / Clear schedule actions.
- New virtual:queued list in the sidebar with live count.
- Sidebar counts are now computed (open per list, running, queued,
  review) and refreshed on task- and worker-side events.
- Sending a task to the queue wakes the worker so it starts immediately.
2026-04-23 13:07:48 +02:00
mika kuns 9952ff98f2 feat(ui): use ClaudeTask icon for window and taskbar
Expose the .ico as an Avalonia resource, set it on MainWindow, and
swap the custom SystemDecorations=None for BorderOnly so the icon
appears on the taskbar and window can be resized normally.
2026-04-23 13:07:38 +02:00
mika kuns 4a6d96b90e feat(installer): show version info and offer worker restart in settings
- Surface Latest version and flag unparseable pre-release tags in
  VersionLabel so users know why auto-update was skipped.
- Prompt to stop/start the worker service after Save, since the
  worker only reads its config at process start.
2026-04-23 13:07:31 +02:00
mika kuns 2690332d13 feat(installer): record data directory in install manifest
Write the resolved DbPath parent into the manifest so UninstallRunner
can honour customised data locations instead of always assuming
~/.todo-app. Older manifests fall back to the default path.
2026-04-23 13:07:23 +02:00
mika kuns 31218fc205 feat(installer): harden database init and service setup steps
- InitDatabaseStep: create DbPath parent directory so custom paths work
- RegisterServiceStep: pass obj= argument so ServiceAccount is honoured
- StartServiceStep: poll for RUNNING state so downstream steps don't race
2026-04-23 13:07:16 +02:00
mika kuns cc01871407 chore(settings): allow context7 MCP tools 2026-04-23 13:07:07 +02:00
mika kuns e70ae7f6ce feat(ui): add Restore default agents button to Settings modal 2026-04-23 12:21:02 +02:00
mika kuns 1830273a9d feat(ui): add RestoreDefaultAgentsAsync to WorkerClient 2026-04-23 12:19:44 +02:00
mika kuns 1a10e6fa09 feat(worker): expose RestoreDefaultAgents hub method 2026-04-23 12:18:49 +02:00
mika kuns df57c2bc05 feat(worker): seed default agents on startup 2026-04-23 12:15:28 +02:00
mika kunsandClaude Sonnet 4.6 990be09bd7 feat(worker): add DefaultAgentSeeder for first-launch agent seeding
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 12:12:55 +02:00
mika kuns e275f67a5e build(worker): ship DefaultAgents folder in build output 2026-04-23 12:09:13 +02:00
mika kunsandClaude Sonnet 4.6 ff3de1d100 feat(worker): add bundled default agent definitions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 12:08:16 +02:00
Mika Kuns a4e313dbad improve Frontend 2026-04-22 17:09:00 +02:00
Mika Kuns 7de5510735 fix(ui): session terminal scrolls to end after layout so last line is fully visible 2026-04-22 15:42:02 +02:00
Mika Kuns 5e54275842 fix(ui): pin AgentStrip above metadata footer, terminal sits above it 2026-04-22 15:38:34 +02:00
Mika Kuns 6ac88235a7 fix(ui): session terminal auto-sizes to output, caps at 420px before scrolling 2026-04-22 15:34:47 +02:00
Mika Kuns c599fdcb8c refactor(ui): single scrollable DetailsIsland body with agent-settings gear flyout, remove Notes 2026-04-22 15:16:40 +02:00
Mika Kuns b0b15e474e feat(ui): always-visible Steps section at top of DetailsIsland with add-step input 2026-04-22 15:08:07 +02:00
Mika Kuns 839f862b7d fix(ui): move agent-settings expander out of capped scroller so it expands properly 2026-04-22 13:50:35 +02:00
Mika Kuns 2901a769d8 fix(ui): use PlaceholderText instead of obsolete Watermark in ListSettingsModalView 2026-04-22 13:33:49 +02:00
Mika Kuns e74e7eecf4 docs: refresh CLAUDE.md files for agent settings UI 2026-04-22 13:31:28 +02:00
Mika KunsandClaude Sonnet 4.6 bba577888b feat(ui): per-task agent settings in DetailsIsland
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 13:29:57 +02:00
Mika KunsandClaude Sonnet 4.6 5784dbee94 feat(ui): open ListSettingsModal via context menu and gear button
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 13:27:05 +02:00
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 KunsandClaude Sonnet 4.6 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 02464b7f89 docs(plans): agent settings UI implementation plan 2026-04-22 12:06:31 +02:00
Mika Kuns 68f461d0e1 docs(specs): agent settings per list and per task UI reimplementation 2026-04-22 12:01:20 +02:00
Mika Kuns cfb410dd4d Merge task: Improve the Readme 2026-04-22 11:34:13 +02:00