Commit Graph

328 Commits

Author SHA1 Message Date
mika kuns
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 kuns
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 kuns
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 kuns
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 kuns
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 kuns
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