- Updated @haexhub/sdk dependency from 1.9.7 to 1.9.10
- Imported HAEXTENSION_METHODS and HAEXTENSION_EVENTS from SDK
- Updated all handler files to use new nested method constants
- Updated extensionMessageHandler to route using constants
- Changed application.open routing in web handler
- All method names now use haextension:subject:action schema
Added new filesystem handler for opening files with the system's default viewer:
- Implemented haextension.fs.openFile handler in filesystem.ts
- Writes files to temp directory and opens with openPath from opener plugin
- Added Tauri permissions: opener:allow-open-path with $TEMP/** scope
- Added filesystem permissions for temp directory access
This enables extensions to open files (like images) in the native system viewer where users can zoom and interact with them naturally.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Split extensionMessageHandler into separate handler files
- Created handlers directory with individual files for database, filesystem, http, permissions, context, and storage
- Reduced main handler file from 602 to 342 lines
- Improved code organization and maintainability
- Add viewport utilities for safe area handling
- New viewport.ts utility with helpers for fullscreen dimensions
- Proper safe area inset calculations for mobile devices
- Fixed window positioning on small screens to start at 0,0
- Create UiDrawer wrapper component
- Automatically applies safe area insets
- Uses TypeScript DrawerProps interface for code completion
- Replaced all UDrawer instances with UiDrawer
- Improve window management
- Windows on small screens now use full viewport with safe areas
- Fixed maximize functionality to respect safe areas
- Consolidated safe area logic in reusable utilities
- Add missing filesystem permissions in capabilities
- fs:allow-applocaldata-read-recursive
- fs:allow-applocaldata-write-recursive
- fs:allow-write-file
- fs:allow-mkdir
- fs:allow-exists
- fs:allow-remove
- Fix Android photo picker URI handling
- Detect file type from binary signature (PNG, JPEG, WebP)
- Use manual path construction to avoid path joining issues
- Works with Android photo picker content:// URIs
- Improve error handling with detailed toast messages
- Show specific error at each step (read, mkdir, write, db)
- Better debugging on Android where console is unavailable
- Fix window activation behavior
- Restore minimized windows when activated
- Remove unused imports in launcher component
Moved database schemas from src-tauri/database/schemas/ to src/database/schemas/
to fix bundling issues and resolved circular import dependency that caused
"Cannot access uninitialized variable" error in production builds.
Key changes:
- Moved crdtColumnNames definition into haex.ts to break circular dependency
- Restored .$defaultFn(() => crypto.randomUUID()) calls
- Kept AnySQLiteColumn type annotations
- Removed obsolete TDZ fix script (no longer needed)
- Updated all import paths across stores and configuration files
- Configure signingConfigs to read from environment variables
- Apply signing to release builds when keystore is available
- Support both signed and unsigned builds
- Add UiButtonContext component for context menu support on buttons
- Implement vault trash functionality using trash crate
- Move vaults to system trash on desktop (with fallback to permanent delete on mobile)
- Add context menu to vault list items for better mobile UX
- Keep hover delete button for desktop users