- Exported `prefersReducedMotion` function for broader accessibility.
- Updated E2E tests for job drawer performance and rendering behavior.
- Integrated Rollup visualizer plugin for Vite to analyze bundle size.
- Added Apache License for frontend design guidelines.
- Created comprehensive frontend design skill documentation.
- Implemented virtual list actions for efficient rendering of variable-height rows.
- Developed shared overlay component for modals and drawers.
- Introduced running jobs list component with optimized rendering.
- Added WebGL exposure scene for enhanced visual effects.
- Implemented WebGL support detection for improved compatibility.
- Initialized skills lock file for frontend design skill.
- Introduced new image model picker component for selecting models and qualities.
- Updated image model utilities to handle new models and quality options.
- Implemented backend logic for validating image model options and handling requests.
- Added tests for image model selection, quality handling, and API interactions.
- Adjusted existing tests to accommodate new model features and ensure compatibility.
- Introduced new motion transitions for dialogs and overlays to improve user experience.
- Added `overlayIn`, `overlayOut`, `dialogIn`, and `dialogOut` animations in motion.ts.
- Updated various components (AccessGate, ConfirmDialog, EditGalleryDialog, etc.) to utilize the new animations.
- Ensured accessibility and usability with reduced motion preferences.
- Enhanced visual feedback for user interactions with overlays and dialogs.
- Added background options ('auto', 'opaque', 'transparent') to the prompt form.
- Updated the EditSourcePicker component for improved styling and user experience.
- Refactored the GalleryGrid component to utilize Lucide icons for better visual consistency.
- Enhanced the PromptForm layout for better organization and clarity.
- Introduced a new gallery job events handling mechanism for improved job status management.
- Updated translations for new background options in English and Chinese.
- Improved the theme store initialization to prevent flash of incorrect theme on load.
- Adjusted tests to validate new background options and UI changes.
- Implemented EditGalleryDialog component for editing gallery images.
- Added functionality to reuse or clear prompts when editing images from the gallery.
- Updated PromptForm to handle new parameters and conditions for editing.
- Enhanced workspace logic to manage gallery edits and integrate with existing prompt forms.
- Added translations for new dialog and edit source messages.
- Improved tests for gallery editing, including drag-and-drop functionality and image removal.
- Created error context files for multiple failed tests related to gallery functionality.
- Each file includes instructions, test info, and detailed error logs to assist in debugging.
- Tests covered include:
- AI batch analysis using SSE without status polling
- Thumbnails ready state handling
- Batch upload cancellation and result retention
- Selection of filtered results through a batch token
- Handling legacy responses without filenames
- Metadata retention without reverse prompt action
- Add settings drawer test for saving NodeImage API key reference.
- Update mock API to include NodeImage settings and upload handling.
- Implement gallery tests for uploading images to NodeImage and handling results.
- Create NodeImage integration module with API client for image uploads.
- Define schemas for NodeImage upload responses.
- Add contract tests for NodeImage upload success and error handling.
- Implement NodeImage result dialog component for displaying upload results.
- Create settings section for NodeImage configuration in the UI.
- Introduce Svelte store for managing NodeImage upload results.
- Introduced a new `claim_loop.py` module to encapsulate common logic for claiming and running background jobs.
- Updated various services (assistant_batch, gallery_jobs, image_unit_dispatcher, thumbnail_dispatcher) to utilize the new claim loop for improved code reuse and maintainability.
- Removed redundant code and improved error handling in job dispatchers.
- Added tests for new functionality and ensured existing tests pass.
- Enhanced thumbnail cache invalidation logic to self-heal missing files.
- Improved AI assistant health check to handle timeout scenarios gracefully.
- Added a set to track webhook delivery tasks in app state for better management and cleanup.
- Implemented a function to create and track webhook delivery tasks, ensuring proper error handling and logging.
- Refactored database operation calls in gallery job processing to use the new run_db_operation_in_current_thread function for improved performance and error handling.
- Updated tests to verify the correct behavior of webhook delivery tasks and database operations.
- Introduced ADMIN_KEY in .env.example and README.md for settings management step-up.
- Updated app_state.py to enforce ADMIN_KEY validation and log warnings if it matches ACCESS_KEY.
- Refactored access.py to utilize database operations for access failure tracking and lockout management.
- Enhanced prompt.py and settings.py to support asynchronous operations and validation.
- Implemented async validation for R2 endpoint URLs and upstream URLs across various modules.
- Added database schema for access failures and corresponding migration.
- Updated tests to cover new ADMIN_KEY functionality and access lockout persistence.
- Adjusted docker-compose.yml to include ADMIN_KEY environment variable.
- Updated galleryDeferredActions to include GalleryLoadOptions in loadGallery method.
- Improved jobs store to handle active job polling and event streaming more efficiently.
- Added snippet matching and sorting functionality in promptSnippets store.
- Optimized version loading by using Promise.all for concurrent API requests.
- Enhanced e2e tests to ensure startup data requests do not wait for access responses.
- Implemented mock API responses for gallery batch analysis and thumbnail status.
- Refactored gallery tests to validate thumbnail refresh and AI batch analysis behavior.
- Updated i18n tests to ensure correct locale loading behavior.
- Added new tests for job history management and performance.
- Introduced JobHistoryList component for better job history rendering and interaction.
- Created adminGate feature for secure access to management settings.
- Introduced asynchronous database operation handling in job_executor.py to prevent blocking the event loop.
- Replaced synchronous calls with async counterparts in job scheduling and job queue services.
- Added a new blocking.py module to manage bounded executors for database and image processing tasks.
- Enhanced runtime metrics collection with new runtime_metrics.py for better observability.
- Updated Docker configuration to include new environment variables for performance tuning.
- Improved test coverage for performance regressions and database connection handling.
- Adjusted version check logic to utilize process caching for efficiency.
- Refactor GalleryGrid component to use a lightweight placeholder for thumbnails and update button styles for better visibility.
- Update Header component styles for version updates and job count notifications.
- Implement prefetching logic in Workspace component to optimize loading of non-critical panels based on network conditions.
- Introduce network utility functions to determine if prefetching is appropriate based on connection type.
- Modify lightbox and gallery components to utilize new prefetching logic for large media.
- Update tests to reflect changes in API request handling and ensure proper functionality with new prefetching logic.
- Changed favicon from ICO to SVG format for better scalability and quality.
- Updated README files to link to the new SVG favicon and corrected language links.
- Added support for serving the new SVG favicon in the middleware.
- Enhanced test cases to verify the availability of the new favicon.
- Created a new README in Simplified Chinese to support additional users.
fix: update assistant health check to conditionally use API key
refactor: change gallery cache control to private and no-store
fix: update gallery job response to include cache control
feat: implement import upload reservation release in gallery jobs
fix: enhance job webhook URL validation for signing secret length
feat: add sensitive text redaction for webhook service errors
test: enhance contract tests for CSRF protection and secret registry
chore: update docker image to version 1.3.3
feat: extend API key source options in common types
feat: add secret ID field to various settings types
feat: implement admin access gate in workspace settings
refactor: update gallery store to use new search body structure
feat: add CDN signing secret handling for media URLs
feat: implement secret registry for managing sensitive values
test: add tests for secret registry functionality and error handling
- Implemented image prompt optimization functionality in the assistant store.
- Added new translations for optimization-related terms in English and Simplified Chinese.
- Enhanced the mock API to support optimization requests and responses.
- Created end-to-end tests for the optimization process, including success and failure scenarios.
- Added backend tests to validate the optimization logic and error handling.
- Added loading and error handling for original images in the Lightbox component.
- Introduced thumbnail previews while the original image loads.
- Updated translations for loading and error messages in English and Chinese.
- Added an end-to-end test to verify Lightbox behavior during image loading.
- Created a design system configuration file for consistent UI components.
- Documented design principles and product overview in new markdown files.