Commit graph

52 commits

Author SHA1 Message Date
delibae
cc3469290c test: add tests for zotero, document, setup stores and Rust edge cases
Add 45 new frontend tests: zotero-store (storeKey, sanitizeFileName,
parseBibEntries), document-store (insertAtCursor, replaceSelection,
findAndReplace, updateFileContent, addFile, setActiveFile),
claude-setup-store (advanceSteps state transitions).
Add 17 new Rust tests: create_command, clean_user_message_title edge
cases (multibyte truncation, nested brackets), get_sessions_dir
(Windows paths, dots), extract_error_lines (mixed formats, short logs),
parse_synctex_node (negative coords, factor scaling, zero values),
parse_synctex_data (multiple inputs, multiple pages).
Total: 154 tests (89 frontend + 65 Rust), all passing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 15:25:36 +09:00
delibae
c2234ba7e8 test: add test infrastructure with Vitest (frontend) and Rust unit tests
Set up Vitest with jsdom environment and Tauri mocks for frontend testing.
Add 44 frontend tests covering Zustand stores (claude-chat, project, proposed-changes,
template) and lib utilities (template-registry, file type classification).
Add 48 Rust unit tests across zotero (OAuth helpers), slash_commands (markdown parsing),
latex (error extraction, SyncTeX parsing), and claude (session dir encoding, message
title cleaning). Update README with test commands.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 15:08:22 +09:00
delibae
029fe0bae4 ci: fix Windows vcpkg deps and macOS codesign skip
- 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>
2026-03-02 15:05:30 +09:00
delibae
d7238dae9e docs: enhance README to clarify data privacy and offline capabilities of ClaudePrism 2026-03-02 15:00:28 +09:00
delibae
9765b39775 docs: update README to clarify ClaudePrism's offline-first approach and features 2026-03-02 14:46:48 +09:00
delibae
eead431198 fix: use bundled HarfBuzz on Windows, update README
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>
2026-03-02 14:45:45 +09:00
delibae
0fce16f89c fix: center align the ClaudePrism screenshot in README 2026-03-02 14:29:18 +09:00
delibae
8d09eac810 ci: drop macOS x64 build, arm64 only
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>
2026-03-02 14:28:29 +09:00
delibae
7dd6b8325e ci: use macos-13 (Intel) runner for x86_64 macOS build
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>
2026-03-02 14:26:36 +09:00
delibae
1b14c490f7 ci: use continue-on-error for Apple signing step
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>
2026-03-02 14:21:16 +09:00
delibae
69fda868cc ci: skip signing when certificate not configured, improve release notes
- 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>
2026-03-02 14:20:22 +09:00
delibae
480976c15a feat: add Homebrew Cask support and update SHA256 for macOS builds
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
2026-03-02 14:11:28 +09:00
delibae
6f82e67350 feat: integrate Tectonic for LaTeX compilation and update project structure
- 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.
2026-03-02 12:47:10 +09:00
delibae
2ecb218f29 fix: remove unused dependencies from Cargo.lock and improve selection toolbar behavior in LatexEditor 2026-03-02 12:03:41 +09:00
delibae
3ed156af22 docs: improve macOS installation instructions in release notes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 16:14:52 +09:00
delibae
1cf79dc00e fix: add ad-hoc code signing for macOS builds
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>
2026-02-27 15:45:40 +09:00
delibae
802d7f8ded docs: add macOS xattr workaround to release notes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:42:17 +09:00
delibae
0216700e16 fix: enable bundle creation and use tauri-action@v0
- 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>
2026-02-27 15:16:45 +09:00
delibae
16c0b9446d fix: use tauri-action@v0.6 (v1 does not exist)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:06:05 +09:00
delibae
b0a42c109a fix: resolve CI build failures for cross-platform builds
- Remove OpenSSL dependency by disabling git2 default features (only local ops needed)
- Remove non-existent hidden_title() call from WebviewWindowBuilder
- Upgrade tauri-action v0 → v1 for artifact detection fixes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:05:10 +09:00
delibae
71aedaffb4 fix: use macos-14 runner for Intel builds (macos-13 deprecated) 2026-02-27 14:47:53 +09:00
Hanjin Bae
ebc19be429
Merge pull request #3 from delibae/demo
Demo
2026-02-27 14:43:53 +09:00
delibae
20f0968803 feat: implement desktop build workflow and enhance editor detection 2026-02-27 14:43:06 +09:00
delibae
e0eac1c19b refactor: simplify TemplateGallery and TemplatePreview components
- Removed onSelectTemplate prop from TemplateGallery, simplifying its interface.
- Updated TemplatePreview to handle template selection and project creation internally.
- Enhanced TemplatePreview with a new details step for project creation, including purpose input and file attachments.
- Implemented drag-and-drop functionality for adding reference files.
- Added project folder selection and dynamic project name generation.
- Improved modal layout and responsiveness based on the current step.
2026-02-26 23:06:29 +09:00
delibae
dc1827a2e5 feat: add slash commands, model/effort picker, and LaTeX compiler improvements
- Implement slash command system with Rust backend (YAML frontmatter parsing)
  and React picker UI for project/user-scoped commands
- Add model selector (Sonnet/Opus/Haiku/OpusPlan) and effort level control
  (Low/Medium/High) to chat composer
- Extract common Claude CLI args and add configurable effort level support
- Add per-project compilation locks to prevent concurrent LaTeX builds
- Fix empty document compilation with \AtEndDocument{\null} injection
- Improve chat UX with smooth auto-scroll and updated placeholder

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 22:45:12 +09:00
delibae
08ce221e22 feat: implement external editor detection and opening functionality 2026-02-25 10:27:27 +09:00
delibae
1e35ba2ae3 Refactor Claude integration and enhance chat messaging features
- Simplified environment variable handling in `create_command` to prevent nested session detection.
- Improved logging in `spawn_claude_process` for better debugging of stdout and stderr streams.
- Updated `execute_claude_code`, `continue_claude_code`, and `resume_claude_code` to accept optional model parameters.
- Introduced a new `ThinkingWidget` to display thinking status in chat messages.
- Enhanced `ChatMessages` component to manage auto-scrolling behavior and display streaming indicators.
- Updated `useClaudeEvents` to maintain session-specific state and improve message handling.
- Added keyboard shortcut for toggling capture mode (Cmd+X / Ctrl+X).
- Modified `ContentBlock` interface to include new "thinking" message type.
- Improved error handling and logging throughout the Claude chat store.
2026-02-25 00:39:19 +09:00
delibae
610917d677 Refactor code structure for improved readability and maintainability 2026-02-24 23:02:57 +09:00
delibae
c5c3085626 feat: extract template gallery into dedicated components with expanded template library
Refactor the project wizard's inline template grid into a full-featured
template gallery system with search, category filtering, and rich previews.

Template data architecture (template-registry.ts):
- Define TemplateDefinition schema with categories, subcategories, tags,
  packages, accent colors, and bibliography flag
- Expand from 8 to 12 templates: add IEEE, ACM, Technical Report, Newsletter
- Provide registry API: getAllTemplates, getTemplateById, searchTemplates,
  getTemplatesByCategory

Template gallery UI (components/template-gallery/):
- template-gallery.tsx: main layout with search bar (Cmd+K), category
  sidebar, responsive grid, grouped-by-category default view, empty state
- template-card.tsx: cards with 9 CSS-based document thumbnail layouts
  (paper, slides, poster, CV, letter, book, report, newsletter, blank)
  and hover preview button
- category-sidebar.tsx: category navigation with per-category template counts
- template-preview.tsx: dialog showing LaTeX source, package list, tags,
  document class metadata, and "Use Template" CTA

State management (template-store.ts):
- Zustand store for gallery state: search query, category filter, template
  selection, and preview modal state with computed filtered results

Project wizard refactor (project-wizard.tsx):
- Replace inline TemplateGrid and hardcoded template array with the new
  TemplateGallery component
- Use template.hasBibliography flag instead of hardcoded ID check for
  references.bib generation
- Fix overflow handling for step 2 scrollable content
2026-02-22 06:15:12 +09:00
delibae
34224e51cd chore: remove CI workflow configuration file 2026-02-22 05:33:19 +09:00
Hanjin Bae
4c2e26b7da
Merge pull request #2 from delibae/claude/angry-hermann
initialized project
2026-02-22 05:26:12 +09:00
delibae
e178921dbc feat: Implement project wizard for creating new LaTeX projects
- Added ProjectWizard component to guide users through project creation.
- Integrated template selection with predefined LaTeX templates.
- Implemented folder selection and file creation logic for new projects.
- Updated ProjectPicker to launch the ProjectWizard instead of direct project creation.
- Enhanced user experience with improved UI elements and tooltips.
- Added keyboard shortcut for creating new windows.
- Updated global styles for macOS titlebar compatibility.
- Refactored existing components for better structure and maintainability.
2026-02-22 05:25:27 +09:00
delibae
a2af6513d0 feat: update placeholder text in ChatComposer and enhance ChatMessages with typewriter effect; add BibTeX language support in LatexEditor; refactor PDF export functionality in PdfPreview; improve sidebar button styles and ZoteroPanel text sizes 2026-02-22 04:58:33 +09:00
delibae
b296fdd35f feat: enhance proposed changes handling with auto-navigation and merging logic 2026-02-22 04:38:35 +09:00
delibae
c78deabac8 feat: update HistoryPanel and PdfPreview components for improved UI and interaction 2026-02-22 04:18:00 +09:00
delibae
8cb42b2154 feat: integrate history review stop functionality in editor and PDF components 2026-02-22 04:11:37 +09:00
delibae
2430aeca7c feat: implement history review feature with popover UI
- Add Popover component for displaying history in a popover.
- Integrate history review functionality in the LatexEditor component.
- Create HistoryDiffView for displaying differences between snapshots.
- Update HistoryPanel to manage linear history and snapshot restoration.
- Refactor sidebar to remove direct history panel integration.
- Enhance PDF preview with history button to access history panel.
- Update history store to manage reviewing snapshots and related actions.
2026-02-22 04:02:42 +09:00
delibae
d6df454736 feat: implement inline PDF viewer and adjust scaling logic in PdfViewer 2026-02-22 03:33:22 +09:00
delibae
2185a3f85b feat: add macOS app icon support and update project configuration 2026-02-22 03:24:34 +09:00
delibae
5b3518b3cd feat: implement drag-and-drop functionality in sidebar with native file drop support
- Added dnd-kit for drag-and-drop interactions in the sidebar.
- Integrated native OS file drop handling using Tauri's onDragDropEvent.
- Enhanced file and folder movement logic to support drag-and-drop.
- Updated sidebar to display active drag items with a drag overlay.
- Introduced Droppable components for root and folder targets.
- Improved file type handling to include PDF files.
- Added unique filename generation for imported files to avoid conflicts.
- Implemented history snapshots before and after Claude edits.
- Created a new history store for managing snapshots and diffs.
- Updated document store to support file and folder movement.
2026-02-22 03:09:02 +09:00
delibae
7992be7fcb refactor: remove unused components, hooks, and storage logic
- Deleted WorkspaceLayout component and its dependencies.
- Removed useDocumentContext, useKeyboardShortcuts, useMobile, useProjectInit, useStorageReady hooks.
- Eliminated indexedDB storage implementation and migration logic.
- Cleaned up related files including schema, utils, and global styles.
- Removed package.json and configuration files for a cleaner project structure.
2026-02-22 01:22:32 +09:00
delibae
53a24452af feat: integrate Zotero support with resizable sidebar panels
- Added ZoteroPanel and ZoteroHeader components for managing Zotero collections.
- Implemented OAuth and API key authentication for Zotero integration.
- Created a new store (zotero-store) to manage Zotero state and sync collections.
- Introduced functions for fetching collections, importing, and syncing data with Zotero API.
- Refactored Sidebar component to include resizable sections for Files, Outline, and Zotero.
- Enhanced document-store to handle .bib file creation and updates based on Zotero data.
- Added utility functions for API interactions and data parsing.
2026-02-22 01:21:35 +09:00
delibae
3fdd78d6bb feat: Enhance chat functionality with @ mention support and error handling in chat and PDF preview 2026-02-22 00:04:57 +09:00
delibae
10e8405601 feat: Add ProblemsPanel component to display diagnostics and integrate with chat for lint error fixes 2026-02-21 04:18:17 +09:00
delibae
bc3df82f01 feat: Rename project from Open-Prism to ClaudePrism and update related configurations 2026-02-21 04:07:08 +09:00
delibae
b4b3fa406b feat: Enhance chat functionality with context-aware prompts and selection toolbar for PDF and LaTeX editing 2026-02-21 03:46:58 +09:00
delibae
6adac08494 feat: Implement proposed changes management for LaTeX files
- Added `useProposedChangesStore` to track changes made by Claude.
- Integrated proposed change registration in `useClaudeEvents` for LaTeX file modifications.
- Updated `handleComplete` to refresh files and auto-recompile if LaTeX files were modified.
- Enhanced `document-store` to support folder creation and file import functionality.
- Improved file type detection in `fs.ts` to include style files and ignore LaTeX build artifacts.
- Created a new `synctexEdit` function in `latex-compiler.ts` for synchronization with LaTeX edits.
- Updated project overview documentation to reflect new features and architecture.
2026-02-21 03:04:34 +09:00
delibae
b2ef194899 Refactor desktop application to integrate Claude chat functionality
- Removed outdated assistant UI components and dependencies from package.json and pnpm-lock.yaml.
- Introduced new Claude chat components including ChatComposer, ChatMessages, and ClaudeChatDrawer for enhanced user interaction.
- Updated App component to utilize the new Claude chat functionality, replacing the previous assistant UI.
- Added markdown rendering capabilities for chat messages and tool widgets to improve content display.
- Enhanced the overall structure and organization of the chat-related components for better maintainability.
2026-02-20 17:28:08 +09:00
delibae
e4b86097bb Update pdfjs-dist dependency and enhance ProjectPicker component
- Upgraded pdfjs-dist from version 4.10.38 to 5.4.296 in package.json and pnpm-lock.yaml.
- Added functionality to create a new LaTeX project with a default template in the ProjectPicker component.
- Introduced new icons and buttons for project management, improving user interaction.
2026-02-20 15:58:06 +09:00
delibae
e9e300d8f3 Implement loading screen and enhance desktop application functionality
- Updated package.json to modify the development script for the desktop application.
- Added a loading screen in index.html with CSS for better user experience during app initialization.
- Enhanced the App component to trigger a callback when the app is ready, allowing the loading screen to be hidden.
- Integrated sidecar management in the Tauri application to handle development and production environments.
- Introduced new icons and configuration files for the Tauri setup, including capability schemas and permissions.
- Added a check for port availability in the desktop-sidecar to prevent conflicts during startup.
2026-02-20 15:47:18 +09:00