Commit graph

413 commits

Author SHA1 Message Date
Gerard-Devlin
6dd567c7d9 feat(provider): add Ollama local model support 2026-06-09 21:06:58 +08:00
Gerard-Devlin
39c2b4d000 fix(chat): enforce minimum composer drawer height 2026-06-09 20:49:26 +08:00
Gerard-Devlin
80957d066d feat(provider): run OpenAI-compatible models through Claude Code proxy
Replace the hand-written direct-provider runtime with a local Anthropic-to-OpenAI-compatible proxy so Qwen, DeepSeek, GLM, Gemini, and other compatible providers use the Claude Code CLI tool/session experience.

Normalize strict OpenAI tool_call/tool_result pairing to avoid provider 400 errors, keep session titles stable and synced, allow switching sessions while another chat is streaming, show running indicators, add provider deletion with confirmation, and auto-refresh the file sidebar with refresh feedback.
2026-06-09 20:42:51 +08:00
Gerard-Devlin
07c8acaeb6 feat(provider): run OpenAI-compatible models through Claude Code proxy
Replace the hand-written direct-provider runtime with a local Anthropic-to-OpenAI-compatible proxy so Qwen, DeepSeek, GLM, Gemini, and other compatible providers use the Claude Code CLI tool/session experience.

Normalize strict OpenAI tool_call/tool_result pairing to avoid provider 400 errors, keep session titles stable and synced, allow switching sessions while another chat is streaming, show running indicators, add provider deletion with confirmation, and auto-refresh the file sidebar with refresh feedback.
2026-06-09 20:41:20 +08:00
Gerard-Devlin
1b8ec314e5 Improve direct provider parity and session UX
Add Claude Code-style context compaction for OpenAI-compatible direct providers, including no-tools summaries and retry handling.

Generate cached model-backed session titles and auto-resume the latest project chat without delaying on title generation.

Polish editor search theming and keyboard navigation.
2026-06-09 16:16:04 +08:00
Gerard-Devlin
e9dda90604 Improve chat session recovery and titles 2026-06-09 15:11:40 +08:00
Gerard-Devlin
c0573db89a Polish workspace toolbar alignment 2026-06-09 01:46:10 +08:00
Gerard-Devlin
4946bafc27 Merge upstream main and resolve PR conflicts 2026-06-09 01:19:55 +08:00
Gerard-Devlin
00ad21e388 Address provider security review and desktop UX regressions 2026-06-09 01:12:22 +08:00
Hanjin Bae
8004b08a0b
Merge pull request #172 from delibae/fix/linux-use-bfd-linker
fix: use ld.bfd linker for Linux to resolve hidden graphite2 symbols
2026-06-09 02:10:35 +09:00
Hanjin Bae
803ea5f054 fix: use ld.bfd instead of lld for Linux build
rust-lld treats hidden symbol references as hard errors, but ld.bfd
resolves them. vcpkg's graphite2 has STV_HIDDEN on gr_* symbols which
lld refuses to link. Switch to ld.bfd via RUSTFLAGS.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 02:10:29 +09:00
Hanjin Bae
a325a78963
Merge pull request #171 from delibae/fix/linux-grep-exit-code
fix: handle grep no-match exit code in objcopy script
2026-06-09 02:02:02 +09:00
Hanjin Bae
d3be1f0281 fix: prevent grep exit code 1 from aborting objcopy script
grep returns exit 1 when no match found, which aborts the script
under set -e. Wrap with { ... || true; } to prevent this.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 02:01:56 +09:00
Hanjin Bae
5d9264a393
Merge pull request #170 from delibae/fix/linux-objcopy-no-procsubst
fix: use temp file instead of process substitution for objcopy
2026-06-09 01:59:25 +09:00
Hanjin Bae
84bf979885 fix: avoid process substitution in objcopy graphite2 fix
Use a temp file for symbol list instead of <() process substitution,
which fails in GitHub Actions shell. Also add explicit shell: bash.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:59:19 +09:00
Hanjin Bae
8e92a1e750
Merge pull request #169 from delibae/fix/linux-objcopy-archive-members
fix: extract archive members before objcopy for graphite2
2026-06-09 01:57:24 +09:00
Hanjin Bae
dd4454d5e1 fix: extract .a archive before objcopy to fix graphite2 symbols
objcopy cannot modify symbols inside .a archives directly. Extract
individual .o files with ar, globalize gr_* symbols in each, then
repack the archive.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:57:18 +09:00
Hanjin Bae
56a1981f6f
Merge pull request #168 from delibae/fix/linux-objcopy-graphite2
fix: globalize hidden graphite2 symbols with objcopy on Linux
2026-06-09 01:48:11 +09:00
Hanjin Bae
e1954b6050 fix: use objcopy to globalize hidden graphite2 symbols on Linux
vcpkg builds graphite2 with -fvisibility=hidden, making gr_* API
symbols invisible to the linker. Use objcopy --globalize-symbol to
make them visible again before the Tauri build.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:48:05 +09:00
Hanjin Bae
fa9f7b3794
Merge pull request #167 from delibae/fix/linux-graphite2-symlink
fix: symlink system graphite2 into vcpkg path on Linux
2026-06-09 01:42:33 +09:00
Hanjin Bae
750ed00853 fix: symlink system graphite2 into vcpkg path on Linux
tectonic's dep_support requires graphite2 at the vcpkg path.
Replace vcpkg's hidden-visibility graphite2 with symlinks to
the system libgraphite2 (from libgraphite2-dev) which exports
all symbols properly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:42:28 +09:00
Hanjin Bae
d47acf5b7c
Merge pull request #166 from delibae/fix/linux-remove-vcpkg-graphite2
fix: use system graphite2 instead of vcpkg on Linux
2026-06-09 01:37:44 +09:00
Hanjin Bae
aaebdafdef fix: remove vcpkg graphite2 to use system library on Linux
vcpkg builds graphite2 with hidden symbol visibility, causing
undefined symbol errors at link time. Remove vcpkg's graphite2
before building so the linker falls back to the system
libgraphite2-dev which exports all symbols properly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:37:38 +09:00
Hanjin Bae
38678cf1d9
Merge pull request #165 from delibae/fix/restore-linux-vcpkg-cache
fix: restore Linux vcpkg cache key to v1
2026-06-09 01:28:18 +09:00
Hanjin Bae
5cffbd15ed fix: restore Linux vcpkg cache key to v1
The graphite2 hidden symbol issue is caused by fresh vcpkg builds,
not by tectonic version. The old v1 cache had a working graphite2
build. Restore the cache key to reuse it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:28:12 +09:00
Hanjin Bae
5bc587e89a
Merge pull request #164 from delibae/fix/tauri-plugin-versions
fix: update tauri plugin crates to match NPM packages
2026-06-09 01:19:18 +09:00
Hanjin Bae
1454c16ce9 fix: update tauri plugin crates to match NPM packages
tauri-plugin-dialog 2.6.0 → 2.7.1, tauri-plugin-fs 2.4.5 → 2.5.1
to match their NPM counterparts and fix version mismatch build error.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:19:12 +09:00
Hanjin Bae
78826d5407
Merge pull request #163 from delibae/fix/revert-tectonic-keep-tauri
fix: keep tauri 2.11.1 in Cargo.lock after tectonic revert
2026-06-09 01:16:58 +09:00
Hanjin Bae
46edcb69b7 fix: revert tectonic to 0.15, keep tauri 2.11.1
Previous commit reverted Cargo.lock too far, bringing tauri back to
2.10.3 which mismatches NPM @tauri-apps/api 2.11.0. This commit
keeps tauri at 2.11.1 while reverting tectonic to 0.15.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:16:52 +09:00
Gerard-Devlin
5aba0d2296 feat: update render scale debounce time and enhance zoom anchor functionality in PDF viewer 2026-06-09 00:13:55 +08:00
Hanjin Bae
53f647be37
Merge pull request #162 from delibae/fix/revert-tectonic-016
fix: revert tectonic to 0.15 to fix Linux build
2026-06-09 01:11:56 +09:00
Hanjin Bae
a8d6957506 fix: revert tectonic to 0.15 to fix Linux build
tectonic 0.16 causes undefined hidden symbol gr_label_destroy on
Linux due to graphite2 visibility issues in vcpkg builds. Revert to
tectonic 0.15 which works correctly with the existing vcpkg setup.

Security fixes retained:
- rand 0.8.5 → 0.8.6, 0.9.2 → 0.9.4

Workflow: revert to x64-linux triplet with libgraphite2-dev, fresh
cache key v3.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 01:11:50 +09:00
Gerard-Devlin
4aa9353900 Expand provider support and refine desktop UX
Add OpenAI-compatible provider workflows, improve Claude/provider switching behavior, refresh desktop window theming and app icons, smooth PDF toolbar and touchpad zoom handling, and add Windows-friendly build scripts.
2026-06-09 00:07:43 +08:00
Hanjin Bae
af10adb7d2
Merge pull request #161 from delibae/fix/linux-graphite2-link
fix: add system libgraphite2-dev for Linux build
2026-06-09 00:53:39 +09:00
Hanjin Bae
291df60c5f fix: revert Linux to x64-linux vcpkg triplet and add system graphite2
Revert the custom static triplet (didn't fix the issue) and instead
install libgraphite2-dev via apt. The vcpkg-built graphite2 marks
gr_label_destroy as a hidden symbol, but tectonic 0.16's bridge
crate references it. The system graphite2 package exports it properly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 00:53:33 +09:00
Hanjin Bae
5f538b7bb3
Merge pull request #160 from delibae/fix/linux-vcpkg-triplet-env
fix: set VCPKGRS_TRIPLET for Linux static vcpkg build
2026-06-09 00:39:34 +09:00
Hanjin Bae
620056f710 fix: set VCPKGRS_TRIPLET for Linux static build
tectonic's vcpkg dep_support looks for packages under the default
x64-linux triplet, but we install them under x64-linux-static.
Set VCPKGRS_TRIPLET=x64-linux-static so the Rust vcpkg crate
finds libpng and other dependencies in the correct location.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 00:39:28 +09:00
Hanjin Bae
44fb8babc3
Merge pull request #159 from delibae/fix/linux-static-triplet
fix: use static vcpkg triplet for Linux build
2026-06-09 00:23:38 +09:00
Hanjin Bae
c3befa6ee7 fix: use static vcpkg triplet for Linux build
The default x64-linux triplet builds dynamic libraries, causing
graphite2's gr_label_destroy symbol to be hidden and unlinkable
after tectonic 0.15 → 0.16 upgrade.

Switch to a custom x64-linux-static triplet (static library linkage)
to match the approach used by macOS and Windows builds.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 00:23:21 +09:00
Hanjin Bae
d43c1686d0
Merge pull request #158 from delibae/fix/linux-vcpkg-cache
fix: bump Linux vcpkg cache for tectonic 0.16
2026-06-09 00:00:59 +09:00
Hanjin Bae
1f380ef447 fix: bump Linux vcpkg cache key for tectonic 0.16 compat
Force fresh vcpkg rebuild on Linux CI to resolve graphite2
gr_label_destroy linker error after tectonic 0.15 → 0.16 upgrade.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 00:00:45 +09:00
Hanjin Bae
9c1e5e7a34
Merge pull request #157 from delibae/fix/security-vulnerabilities
fix: resolve Dependabot security vulnerabilities
2026-06-08 23:50:15 +09:00
Hanjin Bae
659c53b7c4 fix: resolve Dependabot security vulnerabilities
NPM (via pnpm.overrides):
- ws 8.19.0 → 8.21.0 (uninitialized memory disclosure)
- postcss 8.5.6 → 8.5.15 (XSS via unescaped style tags)
- uuid 10.0.0 → 14.0.0 (missing buffer bounds check)

Cargo (via tectonic 0.15 → 0.16 + cargo update):
- rand 0.8.5 → 0.8.6, 0.9.2 → 0.9.4 (unsound with custom logger)
- gix-validate 0.7.7 → 0.10.1 (submodule name validation bypass)
- gix-fs 0.18.2 remains at 0.18.x (upstream constraint, cannot
  reach 0.21.1 until watchexec/ignore-files updates gix deps)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-08 23:48:17 +09:00
Hanjin Bae
9b1a8825d1
Merge pull request #156 from delibae/fix/tauri-api-version-mismatch
fix: update @tauri-apps NPM packages to match tauri 2.11
2026-06-08 23:39:19 +09:00
Hanjin Bae
e09e6ddfd2 fix: update @tauri-apps NPM packages to match tauri 2.11 crate
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>
2026-06-08 23:39:02 +09:00
Hanjin Bae
87a89c4c2c
Merge pull request #155 from delibae/chore/bump-v1.1.7
chore: bump version to 1.1.7
2026-06-08 23:18:21 +09:00
Hanjin Bae
0dbd06e5ed chore: bump version to 1.1.7 and fix tauri type compat in tests
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>
2026-06-08 23:17:58 +09:00
Hanjin Bae
97180c0fed
Merge pull request #148 from delibae/dependabot/npm_and_yarn/npm_and_yarn-6b5db82cdb
Reviewed: vitest major bump, CI passing
2026-06-08 23:14:05 +09:00
Hanjin Bae
1b2b7c3222
Merge pull request #146 from delibae/dependabot/cargo/apps/desktop/src-tauri/cargo-15d2aa67de
Reviewed: tauri patch update, Cargo.lock only
2026-06-08 23:14:02 +09:00
Hanjin Bae
17a9b3caaa
Merge pull request #153 from TimothyMerlin/fix/vim-selection-highlight
Reviewed: clean bugfix, adds drawSelection() for vim visual mode
2026-06-08 23:13:58 +09:00