- Introduced a new restore button in the SW debug panel for restoring data from ZIP backups.
- Implemented `BackupPartManager` to handle automatic chunking during backup processes.
- Enhanced the backup process to include tasks, prompts, and assets, with progress updates.
- Updated version to 0.6.7 and adjusted build time in `version.json`.
- Refactored existing backup logic to support the new restoration features.
- Added new canvas functionalities as Plait plugins, including laser pointer and tool management through `board.pointer`.
- Introduced a command palette for enhanced user interaction, allowing quick access to commands with keyboard shortcuts.
- Implemented a canvas search feature to facilitate content discovery within the drawing area.
- Updated documentation to reflect new coding rules and cross-React root state sharing practices.
- Added guidance on managing third-party session replay and analytics to avoid main thread blocking and 413 errors.
- Updated CLAUDE.md and CODING_RULES.md with best practices for session recording, including default disabling and error handling.
- Implemented error handling for 413 responses in session recording configuration to prevent retry storms and improve performance.
- Removed obsolete init.json file to streamline project structure.
- Standardized the logic for checking Service Worker availability to include both channel initialization and ping success.
- Enforced the use of the main thread executor during fallback scenarios to prevent repeated timeouts when the Service Worker is not ready.
- Updated documentation to reflect these changes and provide clear examples for correct implementation.
This update enhances the reliability of workflow submissions and ensures smoother operation during degraded modes.
- Add tool-sync-service for syncing user custom tools across devices
- Add syncedFromRemote flag to prevent remote tasks from being resumed
- Update toolbox-service with import/export methods for sync
- Document the remote task resumption prevention rule
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- Changed all instances of `http://localhost:4200` to `http://localhost:7200` across multiple documentation files, including CODEBUDDY.md, GEMINI.md, README_en.md, and various specs.
- Ensured consistency in development server instructions and debugging documentation to reflect the new port configuration.
- Added a new method to clean up stale pending requests in the task queue.
- Implemented timeout protection for Service Worker initialization to prevent hangs.
- Updated error handling in various Service Worker methods to ensure errors are logged instead of silently ignored.
- Added detailed logging for task operations and cleanup processes to improve traceability.
- Updated coding rules to prohibit empty catch blocks, ensuring at least debug-level logging is present.
- Remove DDD layers (domain/application/infrastructure) - 30 files deleted
- Create shared type definitions for main thread and Service Worker
- Eliminate type duplication between main thread and SW (no more "Keep in sync" comments)
- Update CLAUDE.md with 3 architecture rules (avoid over-design, delete unused code, refactor with purpose)
- Add detailed architecture guidelines to CODING_RULES.md with examples
This refactoring reduces codebase by 29 files and ~2900 lines while maintaining
all functionality. The shared types approach ensures type consistency without
manual synchronization.
Net result: -29 files, -2900 lines of code
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Bumped application version to 0.5.72 in index.html and version.json.
- Updated build time in version.json.
- Added remoteId support in LLM API logging functions for better tracking of asynchronous tasks.
- Improved logging in image generation API for better debugging and monitoring.
- Move ai_analyze tool execution to Service Worker to avoid postMessage
timeouts; system prompt built in app layer and passed to SW
- Add full response JSON display for LLM API logs (fetch on expand)
- Improve PostMessage logging: use source labels (应用页面/SW) instead
of direction, filter debug panel messages, support request-response linking
- Add waitForStorageRestore() to ensure RPC handlers return complete data
- Remove syncTasksToClients() in favor of paginated RPC queries
- Better VideoGenerationFailedError detection for business failures
- Clean up debug console.log statements
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated project references across various files to reflect the new name "Opentu" instead of "Aitu".
- Adjusted ESLint configuration, documentation, and user manuals to ensure consistency with the rebranding.
- Removed outdated README backup file.
This change marks a significant rebranding effort to align the project identity with its new vision.