Remove Cargo.lock from .gitignore and commit lockfile with:
- tectonic sub-crates pinned to v1.1.6 build versions
- tauri 2.11.1 + plugins matching NPM packages
Without Cargo.lock, CI resolves latest sub-crate versions which
have breaking API changes, and tauri plugins may not match NPM.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three issues prevented Linux builds with Rust 1.95+ and vcpkg:
1. graphite2 hidden symbols: vcpkg builds with -fvisibility=hidden,
rust-lld errors on STV_HIDDEN refs. Fix: overlay port that adds
GRAPHITE2_EXPORTING and removes -fvisibility=hidden.
2. Rust version scripts: ld.bfd can't mix anonymous + named version
tags. Fix: use mold linker which handles both correctly.
3. ICU version mismatch: system ICU (v70/74) found before vcpkg ICU
(v78), causing _78 suffix undefined symbols. Fix: move system ICU
.so out of linker path during build.
vcpkg dynamic libs remain for portable distribution (issue #91).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Rust tauri crate was bumped to 2.11.1 in PR #146 but the NPM
@tauri-apps/api package stayed at 2.10.1, causing the Tauri build to
fail with a version mismatch error.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update all version references to 1.1.7. Fix TypeScript errors in test
mocks caused by tauri 2.11 changing fs API signatures from string to
string | URL.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add drawSelection() so vim visual mode selections render with a visible
background. Without this extension, the .cm-selectionBackground CSS
rule had no elements to style.
Adds the ability to hide/show the right-side PDF preview pane:
- Cmd+\ / Ctrl+\ keyboard shortcut
- Floating button at the editor's bottom-right corner (icon switches
between PanelRightCloseIcon and PanelRightOpenIcon based on state)
- Editor expands to fill freed space when preview is hidden
- Preview defaults to visible (no behaviour change for existing users)
State is held in a small Zustand store (preview-store.ts).
Co-authored-by: opalsaints <242018735+opalsaints@users.noreply.github.com>
- Refactor: extract shared find_git_bash() function used by both
create_command and check_claude_status (eliminates code duplication)
- Validate user-specified CLAUDE_CODE_GIT_BASH_PATH exists before using it,
falling back to auto-detection if the path is invalid
- Check existing error state before setting stderr errors to avoid
masking more specific earlier errors
- Make zero-output error message platform-aware (git-bash hint only on Windows)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The env var cleanup logic was stripping CLAUDE_CODE_GIT_BASH_PATH along
with other CLAUDE_CODE_* vars, causing Claude Code to fail even when the
user had explicitly set it. This also adds auto-detection of git-bash
from common install paths and git.exe on PATH.
Additionally, surface git-bash related stderr errors to the UI and show
a clear error message when the process fails with zero output.
Closes#109
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The separate debug webview failed in dev mode due to CORS preflight
blocking Tauri IPC calls, resulting in a blank window (#109 reporter
also experienced this).
Replace it with a bottom panel overlay in the main window:
- Same webview = no IPC issues, direct access to log buffer
- Toggle with Ctrl+Shift+D (same shortcut)
- Lazy-loaded DebugPage component
- Click backdrop or press shortcut again to close
- Revert log-store.ts cross-window emitTo back to emit
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Expand %USERPROFILE% etc. via ExpandEnvironmentStringsW when reading
registry PATH entries
- Use is_file() instead of exists() for binary detection
- Fix debug window showing blank: use emitTo() for cross-window events
instead of emit() which only targets the current window
- Update step numbering and doc comments
- Improve error message to avoid double-wrapping
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GUI apps inherit a stale PATH from login time, so if Claude was
installed afterwards it won't be found by which::which(). Read the
real User + System PATH from the Windows registry (HKCU/HKLM) and
search for claude.exe / claude.cmd there.
Also adds fallback paths for Volta, Scoop, pnpm global, and standard
Node.js installs, and replaces the bare "claude" fallback with a
proper error.
Addresses #109
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>