- Improved video blob retrieval by adding network fallback if not found in cache.
- Updated service worker to allow GitHub API requests to bypass caching for better performance.
- Enhanced task queue management by allowing tasks in the SUBMITTING phase to be retried without marking them as failed.
- Introduced a transparent placeholder response for missing video thumbnails to prevent playback issues.
- Added detailed logging for task retries and execution phases to aid in debugging.
- Introduced a new badge for identifying the master Gist in the SyncSettings component.
- Removed unused functions related to switching and creating Gists to streamline the code.
- Updated the GitHubSyncContext to include a flag for identifying master Gists.
- Enhanced the GitHub API service to prioritize master Gists during sync operations.
- Improved logging for better debugging and tracking of sync processes.
- Added a caching mechanism to store failed external image URLs for 5 minutes to avoid repeated requests for known 404 errors.
- Introduced functions to check if a URL is likely expired and to mark URLs as failed based on their response status.
- Enhanced the fetch event listener to skip requests for recently failed URLs, improving performance and reducing unnecessary network traffic.
- Updated build time in version.json to reflect recent changes.
- Refactored imports in various components to utilize @aitu/utils for consistency and improved maintainability.
- Removed unnecessary console logs and debug statements across multiple files to clean up the codebase.
- Added fake-indexeddb as a dev dependency for improved testing.
- Refactored media executor by extracting utility functions for building image request bodies, parsing image responses, and polling video status.
- Updated workflow engine to utilize new utility functions for better code clarity and maintainability.
- Adjusted version.json build time to reflect recent changes.
- Added a new media executor to handle image, video, and AI analysis tasks, allowing for asynchronous execution and improved task management.
- Introduced new RPC methods for executor operations, including PING and EXECUTOR_EXECUTE.
- Updated workflow executor to support pending main thread steps, ensuring proper handling of canvas operations and media generation tools.
- Enhanced workflow status synchronization with a new hook for better UI updates and reliability.
- Removed deprecated tool response handling for improved code clarity and efficiency.
- Updated documentation to reflect changes in workflow and executor functionalities.
- Implemented a timeout mechanism for workflow submissions, allowing for better handling of long-running operations.
- Added retry logic to ensure successful submission after initialization failures, improving robustness against transient errors.
- Updated the new workflow detection logic to consider a 60-second window for new workflows instead of 10 seconds.
- Removed unnecessary debugger statement from the AI analyze tool.
- Bumped build time in version.json to reflect recent changes.
- Introduced a new Gist management panel in the SW debug interface, allowing users to manage Gist configurations and view shard statistics.
- Updated sync services to utilize a unified logging system for better tracking of sync operations, including success and error logging.
- Enhanced error handling and logging in the MediaSyncService and ShardSyncService to provide clearer insights during synchronization processes.
- Bumped app version to 0.5.68 to reflect these changes.
- Improved error handling during manifest decryption to check for local data before deciding to overwrite remote data.
- Added checks to prevent data loss by refusing to overwrite remote data if local data is empty, ensuring safer synchronization.
- Updated SyncManifest to include records for deleted prompts and tasks, enhancing data recovery capabilities.
- Introduced PromptTombstone and TaskTombstone interfaces to track deleted items with metadata such as deletion time and device ID.
- Enhanced data-serializer and sync-engine to support detection and application of deletions, ensuring safe data synchronization.
- Added UI components in SyncSettings for managing deleted items, including a recycle bin for restoring and permanently deleting items.
This update significantly improves the synchronization process by allowing users to recover deleted items while maintaining data integrity.
- Introduced a new `crypto-service` for AES-256-GCM encryption, allowing secure data storage in Gists.
- Updated `data-serializer` to support both encrypted and plaintext serialization, ensuring backward compatibility.
- Enhanced `sync-engine` to handle encrypted data during synchronization, including custom password support.
- Added batch synchronization functionality in `MediaLibraryGrid` for local media uploads.
- Improved UI in `SyncSettings` for managing encryption passwords, enhancing user experience and security.
This update significantly enhances data security and user interaction with the synchronization features.
- Introduced a new parameter priority system for thumbnail requests, allowing for `bypass_sw` and `_retry` to take precedence over thumbnail processing.
- Updated logic to ensure thumbnail requests are only processed when neither `bypass_sw` nor `_retry` are present.
- Cleaned up cache key construction by removing control parameters from the original URL for better cache management.
This change improves the efficiency and clarity of thumbnail request handling in the Service Worker.
Remove verbose debug logs from main thread, Service Worker, and workflow services to reduce console noise in production. Also fix winbox icon container creation when icon prop changes after window initialization.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add useToolFromUrl hook to handle ?tool=xxx URL parameter
- Auto-maximize and auto-pin tools when opened via URL
- Add icon support to WinBox window title bar via React Portal
- Extend tool-window-service with autoMaximize and autoPin options
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added functions to retrieve and update the board ID from the URL, allowing for seamless board switching without page refresh.
- Updated the app to prioritize the board ID from the URL over the previous state when loading boards.
- Enhanced logging for board switch actions in both the App and ProjectDrawer components.
- Adjusted cursor style in project-drawer.scss for better user experience.
- Updated version to 0.5.63 and adjusted build time in version.json.
- Refined styles in unified-toolbar.tsx for consistent button sizes and padding.
- Ensured consistent type exports across various components in the drawnix package.
- Updated the session model state initialization to read the default value from global settings, ensuring consistency with the workflow text model.
- Enhanced the chat handler to use a ref for the temporary model, ensuring the latest model selection is passed during message sending.
- Updated completed tasks retrieval to eliminate duplicates by ID using a Set.
- Introduced a mapping from task IDs to preview indices for efficient lookups.
- Enhanced preview click handling to prevent event propagation and ensure correct behavior.
- Adjusted related components to utilize the new mapping for improved performance and clarity.
- 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>
- Added UI elements for selecting and batch deleting LLM API logs in sw-debug.html.
- Introduced functions for toggling selection mode, selecting all logs, and batch deleting selected logs in llmapi-logs.js.
- Updated event listeners in app.js to handle new actions related to LLM API logs.
- Enhanced pagination and filtering capabilities for LLM API logs in sw-communication.js and llm-api-logger.ts.
- Implemented server-side deletion of selected logs with appropriate feedback to the user.
This update improves user interaction with LLM API logs, allowing for more efficient management of log entries.