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>
Three related environment issues are addressed:
1. Linux ICU version mismatch (#91):
The Linux build used pkg-config to dynamically link against the host's
ICU (libicuuc.so.70 on Ubuntu 22.04). Users on newer distros (e.g.
Ubuntu 25.10 with ICU 76) get "cannot open shared object" errors.
Switch to vcpkg static linking, mirroring the macOS fix (commit 9566956).
2. MCP servers fail on macOS GUI app (#87):
macOS GUI apps inherit a minimal PATH (/usr/bin:/bin) that lacks
/opt/homebrew/bin, so MCP server commands like `uv` silently fail.
Prepend common tool directories (~/.local/bin, ~/.cargo/bin,
/opt/homebrew/bin, NVM paths, etc.) to the child process PATH in
create_command().
3. Existing NVM-installed Claude Code ignored (#90):
find_claude_binary() relied on `which` which fails in GUI apps without
NVM in PATH. Add NVM_BIN env var check and login shell fallback
(`$SHELL -l -c "which claude"`) to discover claude through the user's
actual shell configuration.
Closes#87, closes#90, closes#91
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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>
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>
- 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>
- 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>
- 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>
Previous key generated with --ci had unusable password. Regenerated
with explicit password and updated pubkey + workflow.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add tauri-plugin-updater with signed update artifacts
- Add backgroundThrottling: disabled to prevent WKWebView black screen
- Add update check UI with toast notifications (sonner)
- Update build scripts to generate latest.json for GitHub Releases
- Add multi-platform CI workflow (macOS/Linux/Windows) with draft releases
- Bump version to 1.0.1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Windows users without Git for Windows see "Install Claude Code" loop
because Claude Code requires git-bash but the app never checks for it.
Now check_claude_status reports missing_git on Windows, and the setup UI
shows a dedicated "Git for Windows Required" screen with a download link
and re-check button.
Also adds Windows-essential env vars to uv installer and improves the
CI workflow to support manual release_tag input.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace tauri-action's built-in release management with gh CLI to
avoid overwriting macOS/Linux assets. The workflow now creates a
release only if one doesn't exist, and uploads Windows binaries
with --clobber to update only the Windows assets.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Simplify build-desktop.yml to Windows only (with vcpkg cache)
- Add scripts/build-macos.sh for local macOS builds with signing/notarization
- Remove Travis CI (macOS unsupported, Windows too slow)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
gh release edit doesn't support --generate-notes flag,
use repos/{owner}/{repo}/releases/generate-notes API instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GITHUB_TOKEN tag pushes don't trigger other workflows (GitHub limitation).
Use gh workflow run to explicitly trigger Build Desktop after creating the
unified v* tag.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covector creates per-package tags (e.g. claude-prism-desktop-v0.5.3) which
don't match the build workflow's v* trigger pattern. This adds a step to
create a unified vX.Y.Z tag after publish, bridging covector and the build.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Updated Tectonic build configuration for local macOS development.
- Modified git2 dependency to use vendored-libgit2 feature.
- Improved the `find_claude_binary` function to check for native installation paths first.
- Added functions to ensure required directories for Claude are created and writable, with elevation handling on macOS.
- Updated `install_claude_cli` to ensure necessary directories exist before installation.
- Refactored scientific skills installation to include directory permission checks and logging.
- Enhanced error handling and logging during installation processes.
- Improved UI components for displaying installation progress and logs.
- Added tests for new directory handling functions and installation logic.
- Updated LaTeX template for poster presentation with improved formatting and content.
${{ env.VCPKG_INSTALLATION_ROOT }} may not resolve in 'with' context.
Set path explicitly via GITHUB_ENV in a shell step first.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add covector config and CI workflow for automated versioning
- Bump all package versions to 0.4.0
- Add .changes/ directory with README for change management
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The previous key was based on hashFiles('build-desktop.yml'), which
invalidated the cache on every workflow change. Use a static key with
package names and a version suffix (bump v1→v2 when deps change).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Set CXXFLAGS=/std:c++17 on Windows CI (ICU 78+ requires C++17 features
like nested-namespace-definition and auto in non-type template params)
- Add Vitest tests validating tauri.conf.json CSP configuration to prevent
regressions (dangerousDisableAssetCspModification, style-src, connect-src,
font-src directives)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use external-harfbuzz globally (vendored harfbuzz build.rs has a
header copy bug on Windows)
- Install harfbuzz[graphite2] via vcpkg on Windows instead of
standalone graphite2
- Clear CXXFLAGS/CFLAGS on Windows to prevent macOS-specific
.cargo/config.toml values from leaking
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add vcpkg setup for Windows to provide graphite2, freetype, ICU,
fontconfig (tectonic_bridge_graphite2 has no vendoring support)
- Use --no-sign flag on macOS when Apple certificate is not available
(Tauri's var_os treats empty string as Some, triggering codesign)
- Cache vcpkg packages for faster subsequent builds
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use platform-specific tectonic features so Windows CI builds with
bundled HarfBuzz/Graphite2 instead of requiring pkg-config.
Rewrite README with updated feature list and install instructions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GitHub Actions no longer supports macos-13 Intel runners.
macOS Intel users can run the arm64 build via Rosetta 2.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
macos-14 is Apple Silicon and cannot cross-compile x86_64 with
pkg-config. Use macos-13 which is an Intel runner.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signing step now uses continue-on-error so invalid or missing
certificates produce a warning instead of failing the build.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Skip Apple code signing with warning when secrets are not set
- Categorize changelog by feat/fix/chore
- Add download table with per-OS install instructions
- Add contributor avatars to release notes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: enhance slash command picker with loading state and tab filtering
fix: improve PDF preview button styling and functionality
fix: update PDF viewer layout for better responsiveness
fix: handle user cancellation in Claude event processing
chore: add cancelledByUser state to Claude chat store
docs: update README with installation instructions for macOS
- Added Tectonic as a dependency for LaTeX compilation in Cargo.toml.
- Created Entitlements.plist for macOS app sandboxing and security permissions.
- Refactored latex.rs to utilize Tectonic for PDF generation, removing legacy compilation logic.
- Updated compile_latex function to handle Tectonic's processing and error handling.
- Enhanced synctex editing functionality to read and parse synctex data correctly.
- Modified project-wizard and template-preview components to improve project creation prompts.
- Adjusted tauri.conf.json to include entitlements for macOS and set minimum system version.
- Cleaned up unused code and improved overall code readability and maintainability.
Enables "Open Anyway" in System Settings instead of "damaged" error.
Uses APPLE_SIGNING_IDENTITY="-" for ad-hoc signing (no Apple Developer account needed).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add bundle.active=true (defaults to false, causing no artifacts)
- Revert tauri-action to @v0 as recommended by official Tauri docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>