Commit graph

252 commits

Author SHA1 Message Date
Hanjin Bae
ac26fc9524
Merge pull request #82 from delibae/fix/vcpkg-build-tools
fix: install autotools before vcpkg on macOS CI
2026-03-17 17:47:08 +09:00
delibae
03fcd08d34 fix: install autotools build deps before vcpkg on macOS
vcpkg ports (gperf, fontconfig) need autoconf/automake/libtool to
build from source. These are compile-time tools only — they don't
create runtime dylib dependencies.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 17:46:50 +09:00
Hanjin Bae
f9ff9bbf3f
Merge pull request #81 from delibae/fix/v1.0.9-static-macos
chore: bump version to v1.0.9
2026-03-17 17:42:02 +09:00
delibae
a772b5833c chore: bump version to 1.0.9
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 17:41:48 +09:00
Hanjin Bae
f900319d86
Merge pull request #80 from delibae/fix/static-link-macos-vcpkg
fix: static link macOS builds via vcpkg (closes #77)
2026-03-17 17:40:57 +09:00
Hanjin Bae
a477605af1
Merge pull request #78 from delibae/fix/remove-cargo-config
fix: remove .cargo/config.toml from git tracking
2026-03-17 17:40:54 +09:00
delibae
956695665f fix: switch macOS builds from Homebrew (dynamic) to vcpkg (static)
Replace `brew install icu4c harfbuzz ...` + pkg-config with vcpkg
for both Apple Silicon (arm64-osx) and Intel (x64-osx) macOS builds.

vcpkg's macOS triplets default to static linking, so the resulting
binary no longer depends on /opt/homebrew dylibs. This fixes the
crash reported in #77 where users without Homebrew get:
  Library not loaded: /opt/homebrew/*/libicuuc.78.dylib

The Windows build already used vcpkg — this makes all platforms
consistent.

Refs:
- https://tectonic-typesetting.github.io/book/latest/howto/build-tectonic/
- https://learn.microsoft.com/en-us/vcpkg/users/triplets
- https://github.com/orgs/Homebrew/discussions/4672

Closes #77

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 17:39:11 +09:00
delibae
37ca06db35 fix: remove .cargo/config.toml from git and add to .gitignore
This file hardcodes /opt/homebrew paths (Apple Silicon only) for local
development. It should not be tracked — each developer sets up their
own local paths. Added to .gitignore to prevent re-committing.

Relates to #77 (crash on start due to dynamically linked ICU).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 17:31:20 +09:00
Hanjin Bae
29d9935812
Merge pull request #76 from delibae/feat/landing-intel-mac
chore: remove landing submodule reference from parent repo
2026-03-17 04:03:22 +09:00
delibae
492ac17124 chore: remove landing submodule reference from parent repo
The apps/landing gitlink (160000) was tracked in the index without
a .gitmodules entry. Remove it so the parent repo no longer references
the landing page as a submodule.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 04:02:53 +09:00
Hanjin Bae
0eb69850e5
Merge pull request #75 from delibae/docs/readme-intel-mac
docs: add Intel Mac download link to READMEs
2026-03-17 03:51:32 +09:00
delibae
a1e01f19da docs: add Intel Mac download link to all READMEs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 03:51:06 +09:00
Hanjin Bae
151cc1889b
Merge pull request #74 from delibae/feat/v1.0.8-intel-mac
feat: add Intel Mac build workflow, bump to v1.0.8
2026-03-17 03:19:44 +09:00
delibae
b5ced3a7fa feat: add Intel Mac build workflow, bump version to 1.0.8
Add build-macos-intel job using macos-15-intel runner with
x86_64-apple-darwin target. Includes code signing, notarization,
and updater support (darwin-x86_64 platform key in latest.json).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 03:19:05 +09:00
Hanjin Bae
54eddc1f11
Merge pull request #73 from delibae/fix/lint-format
style: fix biome formatting
2026-03-17 02:42:14 +09:00
delibae
4bd5bf3bc8 style: fix biome formatting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:42:03 +09:00
Hanjin Bae
c1e780948a
Merge pull request #72 from delibae/feat/v1.0.7-improvements
feat: v1.0.7 — subprocess tectonic, editor shortcuts, UX fixes
2026-03-17 02:40:36 +09:00
delibae
da2f76c51a chore: fix lint warnings, bump version to 1.0.7
- Remove unused imports (hasPdfData, contentGeneration, lastCompiledGenerations)
- Bump version 1.0.6 → 1.0.7

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:39:49 +09:00
delibae
63483a2d2c feat: subprocess tectonic, editor shortcuts, and UX improvements
- Isolate tectonic compilation in subprocess to prevent font cache
  assertion crash on retry (fixes #67)
- Fix unreachable pattern warning in lib.rs by merging duplicate
  WindowEvent::Focused match arms
- Add editor shortcuts: Cmd+B (bold), Cmd+I (italic), Cmd+/ (comment)
- Add Tab/Shift-Tab indent support in CodeMirror editor
- Fix WebKit rendering artifacts with translateZ(0) on .cm-scroller
- Force recompile on button click and Cmd+Enter (skip generation check)
- Add minimum 500ms compile spinner for visual feedback

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:38:56 +09:00
Hanjin Bae
11a75e0b3c
Merge pull request #71 from delibae/fix/quickstart-url
fix: update quickstart URL to include locale path
2026-03-17 01:53:26 +09:00
delibae
16d636592a fix: update quickstart URL to include locale path
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 01:53:04 +09:00
Hanjin Bae
e147711501
Merge pull request #70 from delibae/release/v1.0.6
chore: bump version to v1.0.6
2026-03-17 01:13:33 +09:00
delibae
90d351bca9 chore: bump version to 1.0.6
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 01:13:07 +09:00
Hanjin Bae
8f86109caf
Merge pull request #69 from delibae/fix/linux-appimage-compat
fix: improve Linux AppImage compatibility and login reliability
2026-03-17 01:11:35 +09:00
delibae
a10afacd6c fix: improve Linux AppImage compatibility and login reliability
- Add sanitize_appimage_env() to restore original LD_LIBRARY_PATH/PATH
  when spawning child processes from AppImage (fixes xdg-open, curl)
- Pass DISPLAY, WAYLAND_DISPLAY, XDG_*, DBUS_SESSION_BUS_ADDRESS to
  child processes for Linux desktop integration
- Add stdin(Stdio::null()) to install_claude_cli to prevent interactive
  prompt hangs
- Add 120s timeout to login_claude to prevent indefinite hang when
  browser fails to open
- Show "Setup Guide" link to code.claude.com/docs/quickstart on login
  failure
- Keep releases as draft in CI workflow for manual publish

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 01:11:02 +09:00
Hanjin Bae
f368a62859
Merge pull request #68 from delibae/fix/linux-download-appimage
fix: change Linux download link from .deb to .AppImage
2026-03-16 23:22:20 +09:00
delibae
8063fac03f fix: change Linux download link from .deb to .AppImage
AppImage is distribution-agnostic and works across most Linux distros,
making it a better default download option than .deb.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 23:21:54 +09:00
Hanjin Bae
3c08bc347b
Merge pull request #65 from delibae/chore/lint-cleanup
chore: fix all lint and formatting issues
2026-03-16 17:17:17 +09:00
delibae
16b4c469b5 chore: add husky pre-commit hook and CI lint workflow
- Add husky with biome check --staged --write pre-commit hook
- Add GitHub Actions lint workflow (biome ci on PR/push to main)
- Update CONTRIBUTING.md with pre-commit and CI documentation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:15:58 +09:00
delibae
95c4072ec1 chore: fix all lint and formatting issues (biome check)
- Fix unused imports and variables
- Apply biome formatting (template literals, semicolons, line width)
- Fix a11y issues (label associations, anchor content)
- Fix Node.js import protocol (node:fs, node:path)
- Use self.onmessage in web worker

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:04:36 +09:00
Minsoo Kim
ea04d34bb4
Merge pull request #63 from delibae/feat/debug-and-black-screen-fix
fix: black screen on app switch + debug infrastructure
2026-03-16 16:47:20 +09:00
Hanjin Bae
0c831856a2
Merge pull request #64 from delibae/release/v1.0.5
fix: macOS WKWebView black screen on focus restore & bump v1.0.5
2026-03-16 16:41:05 +09:00
delibae
2480715f22 fix: macOS WKWebView black screen on focus restore & bump v1.0.5
- Add dual workaround for WKWebView failing to repaint after returning
  from background (1px resize nudge + DOM reflow)
- Use version-free download links in landing page
- Resolve app version dynamically from Tauri in sidebar
- Bump version to 1.0.5

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:40:10 +09:00
Minsoo Kim
585c631a86 fix: debug window log sync, auto-scroll, and IPC efficiency
- Fix echo loop: only debug window listens for debug-log-entry events
- Gate emit on _debugWindowConnected flag (no IPC when debug window closed)
- Simplify bulk sync: replace buffer on open instead of timestamp dedup
- Auto-scroll: use instant behavior, only scroll when already at bottom
- Fix systemInfo useEffect to run once ([] deps instead of [systemInfo])
2026-03-16 16:31:54 +09:00
Minsoo Kim
363b8c3482 refactor: separate debug window, cross-window log sync, simplify
- Debug panel is now a separate Tauri window (survives main window
  black screen) opened via Cmd+Shift+D or open_debug_window command
- Cross-window log bridging via Tauri events: main window emits
  entries, debug window receives them + bulk sync on open
- Log store uses mutable ring buffer + version counter instead of
  array spread per log; caches localStorage debug flag
- Debounce app-visibility-restored (200ms) to coalesce duplicate
  visibilitychange + Tauri Focused events
- Single getImageData(2x2) call in isCanvasBlank instead of 3x 1x1
- Extract shared getGpuRenderer (cached), SystemInfo type,
  getVisibilityLogs into log-store.ts
- Event name constants (APP_VISIBILITY_RESTORED)
- Remove debug UI from error-fallback.tsx and App.tsx
- Fix misplaced import in document-store.ts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:31:54 +09:00
Minsoo Kim
cc5011b98a feat: add structured logging, debug panel, and bug report generation
Add comprehensive debugging infrastructure:

- Structured log store (Zustand ring buffer, 2000 entries) with
  level/source filtering and auto-forwarding warn/error to Rust stderr
- createLogger() factory replacing ad-hoc console.log("[prefix]") calls
  across 16 files (claude-event, pdf-viewer, mupdf, sidebar, etc.)
- Debug panel UI (Cmd+Shift+D) with Logs/System/Visibility tabs
- Bug report generator collecting logs, system info, GPU renderer,
  and visibility events into copyable JSON
- "Copy Debug Info" button on error fallback screen
- get_system_info Tauri command for OS/arch/version data
2026-03-16 16:31:53 +09:00
Minsoo Kim
db97ea59ad fix: resolve black screen on app switch (macOS M1)
Add visibility/focus recovery to prevent black screen when returning
from another app. When macOS reclaims GPU/WebView resources during app
switching, canvas contexts are silently invalidated. This adds:

- visibilitychange + Tauri Focused event listeners in main.tsx
- Canvas blank detection and auto-re-render in mupdf-page.tsx
- IntersectionObserver reconnection via focusGen in pdf-viewer.tsx
- MuPDF worker error recovery and resetMupdfClient() in mupdf-client.ts
- Cmd+Shift+D debug panel keyboard shortcut
2026-03-16 16:31:53 +09:00
Hanjin Bae
990200a292
Merge pull request #62 from delibae/release/v1.0.4
chore: release v1.0.4
2026-03-16 16:13:21 +09:00
delibae
3d329af3a6 chore: bump version to v1.0.4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:13:10 +09:00
Hanjin Bae
661af8bf51
Merge pull request #61 from delibae/fix/suppress-build-warnings
fix: resolve all platform-specific Rust build warnings
2026-03-16 16:12:12 +09:00
delibae
b6b7085db3 fix: resolve all platform-specific Rust warnings
- lib.rs: #[allow(unused_mut)] on builder (mut only needed on macOS)
- claude.rs: move CommandExt import to module level with #[cfg(windows)]
- claude.rs: #[allow(unused_variables)] on home (used only on Unix)
- claude.rs: add #[cfg(not(windows))] to Unix-only dir helper functions
- uv.rs: move CommandExt import to module level with #[cfg(windows)]
- skills.rs: fix unreachable Ok(()) after #[cfg] return branches

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:11:55 +09:00
Hanjin Bae
43bbace42d
Merge pull request #60 from delibae/fix/readme-download-links
fix: version-free direct download links in READMEs
2026-03-16 15:55:46 +09:00
delibae
dbb785fadc fix: use version-free direct download links in all READMEs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 15:55:32 +09:00
Hanjin Bae
56976d9469
Merge pull request #59 from delibae/feat/versionless-filenames-v1.0.3
feat: version-free release filenames, inline updater UI (v1.0.3)
2026-03-16 15:40:29 +09:00
delibae
51e038495f feat: version-free release filenames, inline updater UI (v1.0.3)
- Rename build artifacts to fixed names (ClaudePrism-macOS.dmg, etc.)
- Update latest.json URLs to use fixed filenames
- Update README download links to /releases/latest
- Inline update UI on home screen with version badge
- Gitignore Tauri gen/schemas
- Bump to v1.0.3

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 15:40:18 +09:00
Hanjin Bae
523032ab76
Merge pull request #58 from delibae/feat/updater-ui-v1.0.2
feat: inline update UI on home screen (v1.0.2)
2026-03-16 15:26:39 +09:00
delibae
2f3276a80e feat: inline update UI on home screen, gitignore gen/schemas (v1.0.2)
- Replace toast-based updater with inline version badge on home screen
- Show version + check/update/progress states directly in ProjectPicker
- Move Toaster to App level for workspace toast support
- Remove auto-generated Tauri schemas from git tracking
- Bump to v1.0.2

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 15:26:21 +09:00
Hanjin Bae
156614b4cc
Merge pull request #57 from delibae/fix/toaster-and-version-v1.0.1
fix: move Toaster to App level, add version display (v1.0.1)
2026-03-16 15:04:06 +09:00
delibae
15b0a24103 fix: move Toaster to App level, add version display, set v1.0.1
Toaster was only in WorkspaceWithClaude so update toasts didn't show
on the home screen. Moved to App level. Also shows version on home.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 15:03:54 +09:00
Hanjin Bae
4270989dea
Merge pull request #56 from delibae/feat/version-display-v1.0.2
feat: show app version on home screen (v1.0.2)
2026-03-16 14:47:38 +09:00