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
Owner

Summary

A large productivity-focused feature branch delivering a suite of improvements across automation, project management, theming, performance, and documentation.

Features

  • Guided Project Workflow (#189) — Four-phase workflow panel (Discuss → Plan → Execute → Verify) to keep projects structured from idea to completion
  • Automated Task Loop (#179) — Per-task conversation orchestration with wave-based parallel execution, blocked-task detection, and concurrency control
  • Wave-Based Parallel Execution (#191) — Tasks run in dependency-aware waves with configurable concurrency; independent tasks execute in parallel
  • Auto-Commit After Task Completion (#192) — Task Loop optionally commits after each completed task so progress is never lost
  • PRD Creator (#180) — AI-assisted PRD and task list panel that outputs hikari-tasks.json for the Task Loop to consume
  • Project Context Panel (#188) — Persistent PROJECT.md, REQUIREMENTS.md, ROADMAP.md, and STATE.md files injected into Claude's context automatically
  • Codebase Mapper (#190) — Generates a CODEBASE.md architectural summary so Claude always understands the project structure
  • Community Preset Themes (#181) — Six built-in community themes: Dracula, Catppuccin Mocha, Nord, Solarized Dark, Gruvbox Dark, and Rosé Pine
  • In-App Changelog Panel (#193) — Fetches release notes from GitHub at runtime and displays them inside the app
  • Full Embedded Documentation (#196) — Replaced the single-page help modal with a 12-page paginated docs browser featuring a sidebar TOC, prev/next navigation, keyboard navigation (arrow keys, ? shortcut), and comprehensive coverage of every feature

Performance & Fixes

  • Lazy Loading & Virtualisation (#194) — Virtual windowing for conversation history, markdown memoisation, and debounced search for smooth rendering of large sessions
  • Ctrl+C Copy Fix (#195) — Ctrl+C now copies selected text as expected; interrupt-Claude behaviour only fires when no text is selected

UX

  • Back-to-workflow button in PRD Creator and Task Loop panels for easy navigation
  • Navigation icon cluster replaced with a single clean dropdown menu

Closes

Closes #179
Closes #180
Closes #181
Closes #188
Closes #189
Closes #190
Closes #191
Closes #192
Closes #193
Closes #194
Closes #195
Closes #196


This PR was created with help from Hikari~ 🌸

## Summary A large productivity-focused feature branch delivering a suite of improvements across automation, project management, theming, performance, and documentation. ### Features - **Guided Project Workflow** (#189) — Four-phase workflow panel (Discuss → Plan → Execute → Verify) to keep projects structured from idea to completion - **Automated Task Loop** (#179) — Per-task conversation orchestration with wave-based parallel execution, blocked-task detection, and concurrency control - **Wave-Based Parallel Execution** (#191) — Tasks run in dependency-aware waves with configurable concurrency; independent tasks execute in parallel - **Auto-Commit After Task Completion** (#192) — Task Loop optionally commits after each completed task so progress is never lost - **PRD Creator** (#180) — AI-assisted PRD and task list panel that outputs `hikari-tasks.json` for the Task Loop to consume - **Project Context Panel** (#188) — Persistent `PROJECT.md`, `REQUIREMENTS.md`, `ROADMAP.md`, and `STATE.md` files injected into Claude's context automatically - **Codebase Mapper** (#190) — Generates a `CODEBASE.md` architectural summary so Claude always understands the project structure - **Community Preset Themes** (#181) — Six built-in community themes: Dracula, Catppuccin Mocha, Nord, Solarized Dark, Gruvbox Dark, and Rosé Pine - **In-App Changelog Panel** (#193) — Fetches release notes from GitHub at runtime and displays them inside the app - **Full Embedded Documentation** (#196) — Replaced the single-page help modal with a 12-page paginated docs browser featuring a sidebar TOC, prev/next navigation, keyboard navigation (arrow keys, `?` shortcut), and comprehensive coverage of every feature ### Performance & Fixes - **Lazy Loading & Virtualisation** (#194) — Virtual windowing for conversation history, markdown memoisation, and debounced search for smooth rendering of large sessions - **Ctrl+C Copy Fix** (#195) — `Ctrl+C` now copies selected text as expected; interrupt-Claude behaviour only fires when no text is selected ### UX - Back-to-workflow button in PRD Creator and Task Loop panels for easy navigation - Navigation icon cluster replaced with a single clean dropdown menu ## Closes Closes #179 Closes #180 Closes #181 Closes #188 Closes #189 Closes #190 Closes #191 Closes #192 Closes #193 Closes #194 Closes #195 Closes #196 --- ✨ This PR was created with help from Hikari~ 🌸
hikari added 16 commits 2026-03-07 02:12:27 -08:00
- 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
- 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
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.
- 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
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.
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.
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.
- 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
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.
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
105f87cf64
naomi merged commit e6e9f7ae59 into main 2026-03-07 03:08:33 -08:00
naomi deleted branch feat/productivity 2026-03-07 03:08:34 -08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nhcarrigan/hikari-desktop#197