feat: another wave of features #61

Merged
naomi merged 11 commits from feat/more-things into main 2026-01-23 19:07:23 -08:00
Owner

Explanation

This PR bundles several user-facing improvements and feature additions for the v0.3.0 release, including quality-of-life improvements to the UI, new slash commands, better state persistence, and auto-update checking.

Included Changes

  • Resizable chat input with drag handle (#58 partial)
  • Arrow key navigation fix - cursor keys now navigate text when user has typed input (#58)
  • Scroll position persistence per conversation tab
  • /skill command for invoking Claude Code skills (#57)
  • Stats persistence fix - stats now persist across session changes, only reset on disconnect (#59)
  • Auto-update checker on startup (#17)
  • Resizable character panel with full-height sprites (#10)
  • Font size and zoom settings with keyboard shortcuts (Ctrl++/Ctrl+-/Ctrl+0) (#19)

Closes

Closes #10, #17, #19, #57, #58, #59

Attestations

  • I have read and agree to the Code of Conduct
  • I have read and agree to the Community Guidelines
  • My contribution complies with the Contributor Covenant
  • I have run the linter and resolved any errors
  • My pull request uses an appropriate title, matching the conventional commit standards
  • My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request
  • All new and existing tests pass locally with my changes
  • Code coverage remains at or above the configured threshold

Documentation

N/A - Internal app features

Versioning

Minor - My pull request introduces new non-breaking features.


This PR was created with help from Hikari~ 🌸

## Explanation This PR bundles several user-facing improvements and feature additions for the v0.3.0 release, including quality-of-life improvements to the UI, new slash commands, better state persistence, and auto-update checking. ## Included Changes - **Resizable chat input** with drag handle (#58 partial) - **Arrow key navigation fix** - cursor keys now navigate text when user has typed input (#58) - **Scroll position persistence** per conversation tab - **/skill command** for invoking Claude Code skills (#57) - **Stats persistence fix** - stats now persist across session changes, only reset on disconnect (#59) - **Auto-update checker** on startup (#17) - **Resizable character panel** with full-height sprites (#10) - **Font size and zoom settings** with keyboard shortcuts (Ctrl++/Ctrl+-/Ctrl+0) (#19) ## Closes Closes #10, #17, #19, #57, #58, #59 ## Attestations - [x] I have read and agree to the Code of Conduct - [x] I have read and agree to the Community Guidelines - [x] My contribution complies with the Contributor Covenant - [x] I have run the linter and resolved any errors - [x] My pull request uses an appropriate title, matching the conventional commit standards - [x] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request - [x] All new and existing tests pass locally with my changes - [x] Code coverage remains at or above the configured threshold ## Documentation N/A - Internal app features ## Versioning Minor - My pull request introduces new non-breaking features. --- ✨ This PR was created with help from Hikari~ 🌸
naomi added 11 commits 2026-01-23 18:25:03 -08:00
- Added custom resize handle above textarea that expands upward
- Fixed send button alignment to stay at bottom of textarea
- Replaced native resize with custom drag-to-resize logic
- Height constraints: min 48px, max 200px
- Added userHasTyped flag to track manual input vs history navigation
- Arrow keys only navigate history when input is empty or from history
- Clearing input re-enables history navigation

Closes #58
- Added scrollPosition to Conversation interface
- Save scroll position when switching away from a tab
- Restore exact scroll position when switching back
- Uses -1 to indicate auto-scroll mode (scroll to bottom)
- Prevents interference between scroll restore and auto-scroll
- New slash command: /skill <name> <data>
- Sends prompt to Claude to run skills from ~/.claude/skills/
- Shows usage help if skill name is missing

Closes #57
- Add list_skills Tauri command to scan ~/.claude/skills/
- Only lists directories containing a SKILL.md file
- Show helpful message when no skills are found
- Display bullet-point list of available skills with usage hint
- Reuse existing WslBridge when reconnecting (preserves stats)
- Move reset_session() from start() to stop() so stats only clear on explicit disconnect
- Stats now persist through permission prompts, interrupts, and question prompts

Closes #59
Implements issue #17 - the app now checks for updates on startup and shows
a notification when a newer version is available. Users can disable this
in settings. Uses Gitea releases API with semver comparison.

Closes #17
- Change sprite to use full height instead of full width for better scaling
- Add draggable divider between character panel and terminal
- Persist panel width preference in config (min: 200px, max: 600px)

Closes #10
- Add font_size config field (10-24px, default 14px)
- Add keyboard shortcuts: Ctrl++/- to adjust, Ctrl+0 to reset
- Add font size slider in Settings > Appearance
- Apply font size to Terminal and InputBar via CSS variable
- Persist font size preference between sessions

Closes #19
chore: crop sprites
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 51s
CI / Lint & Test (pull_request) Successful in 14m29s
CI / Build Linux (pull_request) Successful in 17m51s
CI / Build Windows (cross-compile) (pull_request) Successful in 27m40s
60e4d3593b
naomi changed title from feat: v0.3.0 release features to feat: another wave of features 2026-01-23 18:26:05 -08:00
naomi merged commit 3f30997f0e into main 2026-01-23 19:07:23 -08:00
naomi deleted branch feat/more-things 2026-01-23 19:07:24 -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#61