Commit graph

308 commits

Author SHA1 Message Date
Merlin
1f4055a730
feat: add vim mode toggle to LaTeX editor (#140)
* feat: add vim mode toggle to LaTeX editor

* fix: re-apply vim mode when switching files in editor
2026-05-29 22:14:25 +09:00
Weilin Cai
eb1e300c81
fix: skip Python cache files during project scan (#129)
Some checks failed
Lint / lint (push) Has been cancelled
2026-04-10 13:42:28 +09:00
Hanjin Bae
c0c0ce4255
chore: bump version to 1.1.6 (#127)
Some checks failed
Lint / lint (push) Has been cancelled
2026-04-08 21:31:39 +09:00
Hanjin Bae
640f38e706
Merge pull request #123 from delibae/dependabot/npm_and_yarn/npm_and_yarn-672fb18816
Some checks are pending
Lint / lint (push) Waiting to run
chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates
2026-04-07 20:35:15 +09:00
Hanjin Bae
7ea1bd89f6
Merge pull request #126 from WhiskyChoy/codex/dev-mupdf-wasm-fix
fix: resolve MuPDF wasm correctly in desktop dev
2026-04-07 20:35:01 +09:00
Hanjin Bae
313f47d969
Merge pull request #125 from WhiskyChoy/codex/windows-stdin-prompt
fix: send long Windows Claude prompts via stdin
2026-04-07 20:34:52 +09:00
Hanjin Bae
d9cf9d461e
Merge pull request #124 from WhiskyChoy/codex/windows-recent-project-scope
fix: re-authorize recent project directories before opening
2026-04-07 20:34:38 +09:00
Weilin Cai
7ab99b5b5e style: format MuPDF dev loading files 2026-04-07 16:19:01 +08:00
Weilin Cai
d4a79375ca style: format Claude prompt transport test 2026-04-07 16:18:30 +08:00
Weilin Cai
c8e9926c20 fix: surface Claude stdin transport failures 2026-04-07 16:13:46 +08:00
Weilin Cai
29f6fd936d test: strengthen recent project authorization coverage 2026-04-07 16:13:24 +08:00
Weilin Cai
1c4eaf3e6d fix: resolve MuPDF wasm correctly in desktop dev 2026-04-07 16:03:06 +08:00
Weilin Cai
cf672e44d5 fix: send long Windows Claude prompts via stdin 2026-04-07 16:02:39 +08:00
Weilin Cai
037e033f35 fix: re-authorize recent project directories before opening 2026-04-07 16:02:23 +08:00
dependabot[bot]
995acd18c9
chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates
Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.4.1 to 6.4.2
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.4.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.4.2/packages/vite)

Updates `picomatch` from 2.3.1 to 4.0.3
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...4.0.3)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.4.2
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: picomatch
  dependency-version: 4.0.3
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-07 05:23:54 +00:00
Hanjin Bae
0f2635ab7a
Merge pull request #120 from delibae/chore/bump-v1.1.5
chore: bump version to v1.1.5
2026-04-02 14:23:46 +09:00
delibae
fcbcbc4c2d chore: bump version to v1.1.5
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:22:39 +09:00
Hanjin Bae
e57162f7b1
Merge pull request #119 from WhiskyChoy/codex/macos-cli-discovery
fix: improve macOS Claude CLI discovery
2026-04-02 14:03:40 +09:00
Weilin Cai
9fa07c1b8b fix: improve macOS Claude CLI discovery 2026-04-02 00:25:41 +08:00
Hanjin Bae
9b6a662e16
Merge pull request #117 from WhiskyChoy/fix/windows-texlive-console-window
fix: hide Windows TeXLive compiler console windows
2026-04-01 13:18:37 +09:00
Weilin Cai
9318ea632e fix: hide Windows TeXLive compiler console windows 2026-04-01 12:01:26 +08:00
Hanjin Bae
4effb83cf6
Merge pull request #113 from delibae/chore/bump-v1.1.4
chore: bump version to 1.1.4
2026-03-30 23:24:50 +09:00
delibae
52cfd79e43 chore: bump version to 1.1.4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 23:24:20 +09:00
Hanjin Bae
d152fa1d6a
Merge pull request #112 from GunwoongP/fix/windows-git-bash-detection
fix: preserve CLAUDE_CODE_GIT_BASH_PATH and auto-detect git-bash on W…
2026-03-30 23:23:49 +09:00
GunwoongP
6434f176e1 fix: address Copilot review — refactor git-bash detection and improve error handling
- 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>
2026-03-30 23:03:02 +09:00
GunwoongP
ef5cd94f4d fix: preserve CLAUDE_CODE_GIT_BASH_PATH and auto-detect git-bash on Windows
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>
2026-03-30 22:45:56 +09:00
Hanjin Bae
4971a7d91a
Merge pull request #111 from delibae/chore/bump-v1.1.3
chore: bump version to 1.1.3
2026-03-30 20:13:13 +09:00
delibae
863b62b826 chore: bump version to 1.1.3
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 20:12:42 +09:00
Hanjin Bae
e473ce0a66
Merge pull request #110 from GunwoongP/fix/windows-find-claude-binary
fix: find Claude CLI via Windows registry PATH for GUI apps
2026-03-30 20:12:13 +09:00
GunwoongP
083eed94f1 style: fix biome lint CSS class sort and formatting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 18:09:59 +09:00
GunwoongP
ce32bb071b fix: replace debug window with in-app panel to fix IPC issue
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>
2026-03-30 18:05:11 +09:00
GunwoongP
dd6ca0cb54 fix: expand registry PATH vars and fix debug window sync
- 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>
2026-03-30 17:43:38 +09:00
GunwoongP
e37cf55367 fix: find Claude CLI via Windows registry PATH for GUI apps
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>
2026-03-30 16:34:15 +09:00
Hanjin Bae
7e5e395e30
Merge pull request #107 from delibae/fix/multi-file-pdf-preview
fix: resolve PDF preview to correct root file in multi-file LaTeX projects
2026-03-30 12:09:23 +09:00
delibae
f69de4ef12 chore: bump version to 1.1.2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 12:09:01 +09:00
delibae
cc4ad9d668 fix: resolve PDF preview to correct root file in multi-file LaTeX projects
resolveTexRoot now detects \documentclass to find the actual root file
instead of treating the active sub-file as the compilation target.
This fixes incorrect PDF preview when editing non-main .tex files.

Closes #106

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 12:08:46 +09:00
Hanjin Bae
69bcb494f4
Merge pull request #104 from L-N1988/feat/zoom-inout 2026-03-27 22:45:50 +09:00
L-N1988
593a7e2301 feat: enable zooom in/out via ctrl +/-. 2026-03-27 19:29:17 +08:00
Hanjin Bae
7c874a7139
Merge pull request #103 from delibae/chore/bump-v1.1.1
chore: bump version to 1.1.1
2026-03-27 15:54:32 +09:00
delibae
baea3e32a9 chore: bump version to 1.1.1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 15:53:17 +09:00
Hanjin Bae
0f9755d7e1
Merge pull request #102 from delibae/fix/windows-project-creation-and-linux-segfault
fix: resolve Windows project creation failure (#101) and Linux segfault (#100)
2026-03-27 15:50:44 +09:00
delibae
37957aacb8 fix: resolve Windows project creation failure and Linux segfault
Windows (#101): Add explicit FS scopes to each permission in
default.json so Tauri's scope validator accepts Windows paths.
Remove silent .catch(() => {}) on mkdir/writeTextFile so errors
surface via toast instead of failing silently. Replace all
.split("/").pop() with .split(/[/\\]/).pop() (14 occurrences)
for correct path parsing on Windows.

Linux (#100): Add ELF linker version script (symbols.map) that
hides statically linked ICU/HarfBuzz/FreeType/Fontconfig/Graphite2
symbols from the dynamic symbol table. This prevents symbol
collisions with WebKit2GTK's own dynamic copies of these libraries,
which caused a segfault at startup. The static linking introduced
in v1.0.10 to fix #91 is preserved—ICU remains embedded in the
binary so it works across distros.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 15:50:11 +09:00
Hanjin Bae
a790fa8f30
Merge pull request #99 from cityuaaronzhu/contrib-latex-errors
Improve LaTeX error context and sync speed
2026-03-27 12:02:32 +09:00
Hanjin Bae
fd6725347b
Merge pull request #98 from Landon-Molt/feature/texlive-backend
feat: add local TeXLive as alternative LaTeX compilation backend
2026-03-27 12:02:21 +09:00
aaronzhu
5d61977df6 Improve LaTeX error context and sync speed 2026-03-27 09:51:29 +08:00
Peter-Bot
51b6d6abec feat: add local TeXLive as alternative LaTeX compilation backend
Tectonic's limited package support makes it unusable for academic work
with custom .sty/.cls files. This adds opt-in support for shelling out
to a locally installed TeXLive distribution.

Backend (latex.rs):
- compile_with_texlive(): multi-pass compilation (2-3 engine passes +
  optional bibtex/biber), with xdvipdfmx fallback for .xdv → .pdf
- find_texlive_binary(): resolves binaries via PATH, standard install
  locations, and macOS login-shell fallback for GUI apps
- detect_bib_tool(): scans .tex for biblatex/bibliography to choose
  biber vs bibtex
- texlive_env_path(): injects TeXLive bin dir into subprocess PATH so
  xelatex can find xdvipdfmx internally
- detect_texlive Tauri command: reports available engines and version
- compile_latex gains use_texlive parameter; error messages show which
  backend ran (e.g. "Compilation failed (TeXLive/xelatex)")
- All paths passed to TeX are relative to avoid tilde expansion in
  iCloud paths (com~apple~CloudDocs)

Frontend:
- New settings-store.ts with persisted compilerBackend preference
- Backend selector dropdown in PDF preview toolbar
- All compile call sites pass the setting through to the backend
- detectTexlive() and TexliveStatus for engine availability checks

Tectonic remains the default. TeXLive is opt-in via the toolbar
dropdown. All existing tests pass (152/152).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 00:02:38 +01:00
Hanjin Bae
0301f904bf
Merge pull request #97 from delibae/chore/bump-v1.1.0
chore: bump version to 1.1.0
2026-03-26 20:01:47 +09:00
delibae
a6ace1a8d2 chore: bump version to 1.1.0
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 20:00:50 +09:00
Hanjin Bae
3bce19d6a0
Merge pull request #96 from delibae/fix/macos12-window-not-showing
fix: resolve macOS 12 window not showing (WebKit TLA bug)
2026-03-26 19:59:18 +09:00
delibae
bdc57978ba fix: resolve macOS 12 window not showing due to WebKit top-level-await bug
On macOS 12 (Monterey), the app launches but no main window appears.
The root cause is WebKit bug #242740: Safari 15's WKWebView has a race
condition with top-level await in ES modules, causing silent JS failure
that prevents `getCurrentWindow().show()` from ever being called.

Three complementary fixes:

1. Change Vite build target from `esnext` to `safari14` (Tauri recommended)
   and add `vite-plugin-top-level-await` to transform TLA into compatible
   Promise chains, avoiding the WebKit bug entirely.

2. Replace top-level `await import("./App")` in main.tsx with a `.then()`
   chain, removing TLA dependency at the source level.

3. Add a Rust-side 8-second timeout safety net in `setup()` that
   force-shows the main window if the frontend JS fails to do so,
   preventing permanently hidden windows regardless of the failure cause.

Closes #95

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 19:57:52 +09:00