Tauri fixes and build fixes #21
Conversation
- Upgrade @tiptap/core and extensions to v3.19.0 for consistency - Add @tiptap-pro/extension-ai and @tiptap-pro/provider for AI capabilities - Add collaboration extensions: @tiptap/extension-collaboration, @tiptap/extension-collaboration-caret, and @tiptap/extension-table-of-contents - Add @tiptap/extension-mathematics for mathematical content support - Add @tiptap/extension-drag-handle-react for improved drag interactions - Add @tiptap/extension-unique-id for element identification - Update @tiptap/extension-code-block from v2.0.0 to v3.19.0 - Update @tiptap/extension-mention from v2.0.0 to v3.19.0 - Update lowlight from v2.3.0 to v3.3.0 - Add is-hotkey and react-textarea-autosize dependencies - Add @hocuspocus/common and @hocuspocus/provider for real-time collaboration support - Add @lifeomic/attempt for retry logic - Ensure all Tiptap packages are aligned to v3.19.0 for better compatibility
…tures - Upgrade @tiptap/core and extensions to ^3.19.0 for consistency - Add @tiptap-pro/extension-ai and @tiptap-pro/provider for AI capabilities - Add collaboration extensions: collaboration, collaboration-caret, and drag-handle-react - Add new extensions: mathematics, table-of-contents, and unique-id - Update @tiptap/extension-code-block from ^2.0.0 to ^3.19.0 - Update @tiptap/extension-mention from ^2.0.0 to ^3.19.0 - Upgrade lowlight from ^2.3.0 to ^3.3.0 - Add is-hotkey ^0.2.0 for keyboard shortcut handling - Add react-textarea-autosize ^8.5.9 for dynamic textarea support - Ensures all Tiptap packages are aligned on version 3.19.0 for better compatibility
- Remove unused TableActionMenu export from table-cell-handle-menu component - Clean up unnecessary blank line at end of file - Reduce unused exports to improve code clarity
- Change CellCoordinates interface from exported to private - Remove unnecessary export since interface is only used internally - Improve encapsulation by limiting public API surface
- Add type definitions for is-hotkey library to resolve module resolution - Define isHotkey function signature with hotkey string and event parameters - Enable proper TypeScript support for hotkey detection in editor
- Add new selectNodeAndHideFloating function to handle node selection with floating toolbar suppression - Function creates a NodeSelection at specified position and marks transaction with HIDE_FLOATING_META - Dispatches transaction through editor view to apply selection and hide floating toolbars - Provides centralized utility for selecting nodes while preventing floating toolbar visibility until next explicit selection change
- Remove unused WebkitScrollbar inline style from SlashMenu container - Simplify scrollbar hiding implementation by relying on scrollbarWidth and msOverflowStyle - Clean up unnecessary type assertion that was used for WebkitScrollbar property
- Delete package-lock.json to prevent lock file conflicts in repository - Allow team members to use their preferred package manager lock files - Reduce repository size and merge conflicts from dependency updates - Lock file will be regenerated locally during npm install
- Extract Tauri builder logic into separate run() function - Add proper error handling with Result return type - Replace expect() with explicit error propagation - Improve error messaging for application startup failures - Remove outdated FUTURE comments about filesystem bridge - Simplifies error handling and makes startup flow more explicit
There was a problem hiding this comment.
Pull request overview
This PR focuses on build/runtime fixes across the Tauri wrapper and the rich-text editor stack (Tiptap), including dependency alignment and a few small UI/editor behavior adjustments.
Changes:
- Refactors the Tauri entrypoint to return a
tauri::Resultand handle startup failures explicitly. - Updates/aligns Tiptap (and related) dependencies, introducing additional extensions and adding missing typings for
is-hotkey. - Adds an editor helper for node selection that suppresses floating toolbars, plus minor UI/type export cleanups.
Reviewed changes
Copilot reviewed 6 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
src-tauri/src/main.rs |
Wraps Tauri startup in run() and handles errors instead of panicking. |
package.json |
Updates editor dependencies (Tiptap v3 alignment) and adds new packages (incl. Tiptap Pro). |
editor/ui/SlashMenu.tsx |
Removes unsupported inline scrollbar styling attempt. |
editor/types/is-hotkey.d.ts |
Adds a local type declaration for is-hotkey. |
editor/hooks/use-floating-toolbar-visibility.ts |
Adds selectNodeAndHideFloating() helper and keeps hide/show logic centralized. |
editor/components/.../table-grid-selector.tsx |
Makes CellCoordinates internal-only (non-exported). |
editor/components/.../table-cell-handle-menu.tsx |
Removes re-export of an internal menu component. |
bun.lock |
Lockfile updates for the dependency changes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <div | ||
| className="flex flex-col divide-y divide-gray-100 overflow-y-auto" | ||
| style={{ | ||
| scrollbarWidth: 'none', | ||
| msOverflowStyle: 'none', | ||
| WebkitScrollbar: { display: 'none' } as any | ||
| msOverflowStyle: 'none' | ||
| }} |
There was a problem hiding this comment.
The inline scrollbar-hiding styles only cover Firefox (scrollbarWidth) and legacy MS (msOverflowStyle). If the intent is to hide scrollbars in Chromium/WebKit as well, it needs a CSS rule using the ::-webkit-scrollbar pseudo-element (inline styles can’t express that). Consider moving the scrollbar styling into a CSS/SCSS class for .slash-menu (or the inner scroll container) for consistent cross-browser behavior.
| if let Err(error) = run() { | ||
| eprintln!("failed to start Pulm Notes: {error}"); | ||
| std::process::exit(1); |
There was a problem hiding this comment.
Because this binary uses windows_subsystem = "windows" in release builds, eprintln! output will not be visible to end users on Windows. Consider routing startup errors to a visible surface (e.g., Tauri dialog/logging plugin and/or a log file) instead of only stderr before exiting.
| "@tiptap-pro/extension-ai": "^3.4.1", | ||
| "@tiptap-pro/provider": "^3.4.1", |
There was a problem hiding this comment.
New dependencies are pulled from Tiptap’s Pro registry (registry.tiptap.dev). There’s no repo-level configuration or documentation referencing that registry, so fresh installs/CI may fail or be non-reproducible unless the required registry/auth setup is documented and wired into CI.
No description provided.