v0.1.7
Pre-release
Pre-release
AI Provider Architecture
- New
ai-providercrate:AiProvidertrait with 17 methods across 7 capability groups (identity, detection, headless execution, specialized actions, interactive launch, session/worktree introspection, config/attribution) - Shared types:
AiProviderKind,AiSession,AiWorktree,AiConfigFile,ExecuteOptions,AttributionPattern - Trait builds
std::process::Commandobjects without executing — execution delegated toTaskManager(headless) orTerminalManager(interactive) - Default implementations return empty/None/NotSupported — providers override what they support
Claude Code (First Provider)
- New
claude-codecrate implementingAiProviderfor Claude Code CLI - Binary detection via
which+ version parsing fromclaude --version - Repo artifact detection (
.claude/directory,CLAUDE.mdfile) - Headless command builder:
--print,--output-format,--model,--max-budget-usd - Interactive launch: spawns
claudebinary directly in PTY terminal - Worktree support:
--worktree [name]flag - Session introspection: parses
~/.claude/sessions/*.json, PID liveness checks (kill(pid, 0)on Unix) - Worktree introspection:
git worktree list --porcelainparser, filtersworktree-*branches, status detection (Active/Clean/Orphaned) - Config discovery: user/project/local settings.json,
.claude/agents/*.md,.claude/skills/*/SKILL.md, CLAUDE.md hierarchy - Commit attribution: detects
Authored-by:footer,Co-authored-by:trailer with Claude/Anthropic mention, author name matching
16 Tauri Commands
- Detection:
ai_get_providers,ai_get_repo_status,ai_refresh_detection - Headless actions (via TaskManager):
ai_generate_commit_message,ai_analyze_code,ai_generate_pr_description,ai_review_code,ai_review_pr - Interactive launch (via TerminalManager):
ai_launch_interactive,ai_launch_worktree - Introspection:
ai_list_sessions,ai_list_worktrees,ai_cleanup_worktree,ai_get_config_files - Preference:
ai_get_preferred_provider,ai_set_preferred_provider
AI Provider Settings
- New "AI Provider" section in Settings replacing the WIP "Editor" section
- Shows all known providers (Claude Code, Codex, OpenCode) with detection status
- Detected providers show version and "Detected" badge; unavailable ones are greyed out
- Click to set default provider, click again to reset to auto-detect
- Preference persisted in
AppConfig.preferred_ai_provideracross restarts - Refresh button to re-scan PATH for provider binaries
AI Button Validation
- AI Commit Message button now shows a warning toast when no staged changes exist
- AI Code Review button now shows a warning toast when no changes exist at all
- Previously both buttons silently triggered tasks with no input
Terminal AI Launch
- Terminal dropdown "Claude Code" now calls
ai_launch_interactive— spawns theclaudebinary directly in PTY (Claude Code starts automatically) - Terminal tabs show Claude Code SVG brand icon (coral
#d97757) instead of generic terminal icon - Brand-colored status dots: Claude (#d97757), Codex (#10a37f), OpenCode (#8b8b8b)
- Same icon treatment in both standalone
TerminalTaband composite tab terminal segments TerminalTabInfoextended with optionalproviderfield for brand identification
Changes Section Redesign
- Pinned commit box at bottom with toolbar row: amend toggle, AI buttons, overflow menu
- AI Commit Message button (purple accent) with loading spinner; Code Review button (blue accent)
- Overflow menu: Create Patch, Clean, History (reflog), Push — replacing scattered buttons
- Commit message textarea with Cmd+Enter shortcut
- Single commit button replacing separate stage+commit actions
Reflog Section Overhaul
- Fixed broken "Create Branch" context menu action — was creating branch at HEAD instead of at the reflog entry's commit. New
create_branch_at(name, oid)backend operation - Fixed misleading "Checkout" action — was performing
reset --mixed(destructive). Newcheckout_detached(oid)backend operation for proper detached HEAD checkout - Fixed selection model —
selectedReflogOidused just the OID which is not unique across reflog entries. Switched to index-based selection - Removed duplicate
repo-changedlisteners — SplitView now handles lifecycle exclusively - Added action buttons to detail pane: Checkout, Create Branch, Reset (dropdown with Soft/Mixed/Hard), Copy SHA
- Added refresh button to list header
- Context menu actions now refresh the reflog list after operations
- Selection cleared when navigating away to prevent stale state on return
- File diff panel: clicking a file in the reflog commit detail now shows a resizable diff editor below
Submodule Management — Add & Remove
- New "Add Submodule" button in header — opens inline form with URL and path inputs
- New
add_submodule(url, path)backend operation (git submodule add) - New "Remove Submodule" in right-click context menu with confirmation dialog
- New
remove_submodule(path)backend operation (git submodule deinit -f+git rm -f) - Empty state no longer blocks the "Add Submodule" button
UI Polish
- Folder icons changed from orange to blue for better visual cohesion
- Tab badge style changed from solid orange pill to subtle green tint with green text
- Tab hover tooltips with project snapshot (branch, changes, last commit)
- Project snapshot cache for instant tooltip display
- Task panel command bar truncated to single line with ellipsis (fixes output being pushed off-screen by long AI commands)
Bug Fixes
- Fixed task panel output not visible when AI commands have long prompts (command bar had no max-height)
- Fixed
width: 100%missing on SplitView — right pane not reaching container edge in flex layouts - Fixed graph tooltip positioning and content
- Fixed terminal resize on tab switch
- Fixed project switch clearing stale data (reflog, conflict state, diffs)
- Fixed unstaged file diff preview not loading after project tab switch
- Removed gitignore editor component (functionality preserved via context menu)
E2E Test Infrastructure
- Global vitest setup mocking
@tauri-apps/api/core,@tauri-apps/api/event,@tauri-apps/api/window,@tauri-apps/plugin-dialog - Configurable
mockInvokeResponse()helper for per-test IPC mocking - 6 E2E workflow test suites: repo-open, staging-commit, branch-ops, tag-ops, stash-ops, ai-provider
- 103 new tests (149 total frontend tests, all passing)