feat: productivity suite — task loop, workflow, theming, docs & more #197

Merged
naomi merged 16 commits from feat/productivity into main 2026-03-07 03:08:33 -08:00

16 Commits

Author SHA1 Message Date
hikari 105f87cf64 feat: replace help modal with full embedded docs (paginated with prev/next navigation)
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 1m0s
CI / Lint & Test (pull_request) Successful in 16m32s
CI / Build Linux (pull_request) Successful in 21m29s
CI / Build Windows (cross-compile) (pull_request) Successful in 31m40s
2026-03-07 02:10:31 -08:00
hikari b820fa25a2 feat: add auto-commit after task completion in Task Loop 2026-03-07 01:14:08 -08:00
hikari f60e45e486 feat: add wave-based parallel task execution to Task Loop 2026-03-07 01:02:14 -08:00
hikari 7a07958b65 feat: add back-to-workflow button in PRD Creator and Task Loop panels 2026-03-07 00:33:23 -08:00
hikari 7911d67d0d feat: add guided project workflow panel (Discuss → Plan → Execute → Verify) 2026-03-07 00:17:38 -08:00
hikari 987598a47c feat: add community preset themes (Dracula, Catppuccin, Nord, Solarized, Gruvbox, Rosé Pine) 2026-03-06 23:50:22 -08:00
hikari 793043e192 fix: preserve Ctrl+C copy behaviour when text is selected
Resolves #195. Before sending an interrupt signal, check whether
the user has text selected. If so, let the browser handle Ctrl+C
as a native copy rather than interrupting Claude.
2026-03-06 22:51:54 -08:00
hikari 80a59a0b22 fix: correct autoscroll race conditions and lazy load trigger
- Move isRestoringScroll = true before await tick() so scroll events
  fired during the DOM transition cannot incorrectly set shouldAutoScroll
  to false, breaking autoscroll for all tabs except the first
- Guard the windowStart reactive block with isSwitchingConversation so
  stale lines from the previous conversation cannot override the correct
  windowStart after a tab switch
- Fix lazy load threshold to trigger relative to the visible window top
  (windowStart * AVG_LINE_HEIGHT + 300) rather than the absolute scroll
  container top, so older messages load without scrolling through the spacer
2026-03-06 22:25:31 -08:00
hikari e9a9ffc9ab fix: prevent stale windowStart when switching conversations 2026-03-06 21:06:14 -08:00
hikari 93b3aa379c feat: automated task loop panel with per-task conversation orchestration
Implements issue #179. Adds a Task Loop panel that imports hikari-tasks.json
files and automatically runs Claude Code through each task in sequence, one
per conversation tab. Includes Start/Pause/Stop/Resume controls, real-time
status indicators per task, and a StatusBar badge. WSL UNC paths from the
file picker are normalised to Unix paths at import time.
2026-03-06 20:34:18 -08:00
hikari a98e544b52 feat: changelog panel with runtime release fetching
Adds a Changelog panel accessible from the nav menu. Fetches all
releases from the Gitea API on open and renders each entry with
version badge, date, pre-release tag, and markdown release notes.
Highlights the currently installed version with a pink "current" badge.
2026-03-06 19:29:38 -08:00
hikari 93c11a05b7 feat: replace nav icon cluster with single dropdown menu
Consolidates 21 toolbar buttons into a single Menu trigger that
opens a scrollable dropdown with icon + label per item. Clicking
any item auto-closes the menu; backdrop click also closes it.

All panel state migrated to NavMenu; StatusBar trimmed ~480 lines.
2026-03-06 18:51:27 -08:00
hikari 46339a040a perf: virtual windowing, markdown memoisation, and search debounce
- Terminal: virtual windowing renders max 150 lines, loads 50 older on
  scroll-up with scroll position compensation; auto-advances window
  forward during auto-scroll so old DOM nodes are unloaded continuously
- Markdown: two-stage derived rendering separates expensive parse step
  (marked + hljs + spoilers, runs on content change) from cheap search
  highlight step (runs on query change only)
- Achievements: fix double Object.keys() call in derived store
- Terminal: 150ms debounce on search query to reduce redundant updates
- Tests: add Markdown.test.ts for processSpoilers and highlightSearchMatches;
  extend Terminal.test.ts with virtual windowing helper coverage
2026-03-06 18:03:42 -08:00
hikari 55d65fa244 feat: prd creator panel with hikari-tasks.json format and distinct icon
Adds a PRD Creator panel accessible from the status bar that lets Naomi
describe a goal and have Claude break it down into actionable tasks
written to hikari-tasks.json. Tasks can be reviewed, edited, reordered,
and executed directly from the panel. Uses the Lucide ScrollText icon to
distinguish it visually from the Todo List clipboard icon.

Also adds CODEBASE.md to the repo and gitignores hikari-tasks.json as a
user-generated data file.
2026-03-06 17:04:23 -08:00
hikari 9136f3351d feat: codebase mapper with CODEBASE.md generation (#190)
- Add scan_project Rust command that walks the directory tree and detects project type
- Add CODEBASE as a managed ProjectFile type alongside PROJECT/REQUIREMENTS/ROADMAP/STATE
- Add mapCodebase() store function that scans and sends an analysis prompt to Claude
- Add CODEBASE tab to ProjectContextPanel with Map/Remap buttons and auto-reload on idle
- Update PROJECT_CONTEXT_SYSTEM_ADDENDUM to include CODEBASE.md reference
2026-03-06 13:39:29 -08:00
hikari 78dc838f36 feat: project context panel for persistent PROJECT/REQUIREMENTS/ROADMAP/STATE files (#188)
- Add projectContext store with load/save via existing Tauri file commands
- Add ProjectContextPanel modal with tabbed editor, file-exists badges, and templates
- Add injectTextStore signal so StatusBar can inject content directly into InputBar
- Add PROJECT_CONTEXT_SYSTEM_ADDENDUM auto-appended to custom_instructions on connect
- Add open-book button to StatusBar to open the panel
- Add PROJECT.md example file for the hikari-desktop project itself
- 34 tests covering all store methods, exports, and signal behaviour
2026-03-06 12:09:30 -08:00