- Added `artifact-bundle.mjs` for creating and verifying release bundles.
- Updated macOS and Windows release scripts to create and upload release bundles.
- Introduced `--package-e2e` flag to run end-to-end tests on packaged releases.
- Modified `package.json` scripts to remove deprecated commands and streamline release process.
- Enhanced E2E testing to utilize release bundles instead of building from source.
- Added unit tests for artifact bundle creation and verification.
- Removed obsolete `route-windows.mjs` script in favor of a unified `windows.mjs` script.
- Introduced E2EResourceScope for managing resources during E2E tests.
- Updated test cases to register resources and handle disposal in a structured manner.
- Enhanced error handling during resource disposal to capture and report errors.
- Modified workspace setup functions to ensure proper cleanup after tests.
- Adjusted imports and added necessary utility functions for resource management.
- Deleted the `update-real.mjs` and `update-real-windows.mjs` scripts as they are no longer needed.
- Updated `package.json` to remove references to the real update test commands.
- Adjusted documentation in `test.md`, `settings-test.md`, and `release.md` to reflect changes in the update testing process, focusing on simulated updates instead of real updates.
- Updated multiple e2e test files to replace 'launchMode: real' with 'serviceMode: real' for consistency in service mode configuration.
- Refactored the electronApp.ts to introduce E2EServiceMode and related types for better clarity and maintainability.
- Enhanced run-e2e-case.ts to accommodate the new service mode structure, ensuring proper handling of test cases.
- Created workspaceFixture.ts to manage temporary workspaces more efficiently during tests.
- Removed obsolete test script `test_crawl4ai_fit_markdown.py`.
- Deleted `verify-package-main-obfuscation.mjs` as it is no longer needed.
- Updated paths in `app-update-publish-config.test.ts` to reflect new script locations.
- Refactored `package-content-policy.test.ts` to use new paths for content policy scripts.
- Adjusted `package-main-obfuscation.test.ts` to point to the new obfuscation script locations.
- Modified `package-size-budget.test.ts` to use updated paths for size budget scripts.
- Changed `r2-update-metadata-contract.test.ts` to reference the new metadata script.
- Updated `release-fragment-contract.test.ts` to use the new fragment contract script.
- Refactored `release-storage-layout.test.ts` to point to the new storage layout script.
- Added `runtime-trace.test.ts` to test runtime tracing functionality.
- Updated `node-pty-native-release.test.ts` to reflect new paths for native release scripts.
- Add package-main-obfuscation.mjs to handle obfuscation of main process JavaScript files.
- Introduce obfuscatePackageMain function to obfuscate main files and generate a report.
- Implement verifyPackageMainObfuscation function to validate obfuscation reports.
- Create obfuscate-package-main.mjs script for command-line obfuscation execution.
- Add audit-packaged-app.mjs to check for protected plaintext exposure in packaged apps.
- Enhance tests to cover obfuscation and verification processes, including protected markers.
- Ensure obfuscation does not exceed specified growth limits and maintains original functionality.
- Introduced `normalizeUserFacingError` utility to standardize error messages for users, improving clarity and consistency.
- Updated `AppUpdateProvider` to utilize the new error normalization for update-related messages.
- Enhanced `ChatPage` to format run failure messages, providing more context to users.
- Created a new utility file for user-facing error normalization.
- Updated types to include structured output capabilities for models.
- Added tests for user-facing error normalization and model selection behavior.
- Implemented end-to-end tests to validate model selection and error handling in the workbench.
- Updated the test documentation in `doc/test.md` to clarify the purpose and structure of regression and unit tests, including changes to execution summaries and test file organization.
- Modified ESLint configuration in `eslint.config.mjs` to exclude specific directories and adjust rules for `.mjs` files.
- Removed unnecessary ESLint disable comments from various script files to enforce cleaner code practices.
- Introduced a new test case for image analysis in `tests/case/ai/tool/utility/image-analyze-contract.test.ts` to validate the behavior of the image recognition tool.
- Enhanced existing unit tests in `tests/case/unit/webCrawler/web-search-sidecar-retry.test.ts` and `tests/case/unit/workbench/assistant-markdown-memo.test.ts` for better reliability and clarity.
- Updated TerminalRunCommandResult type to use 'output' instead of 'stdout' and 'stderr'.
- Modified terminal tests to accommodate the new output structure.
- Introduced TerminalSessionManager for better session management in terminal commands.
- Enhanced e2e tests for terminal background service flow and browser interactions.
- Improved workspace setup functions to support IPC binding mode.
- Added new unit tests for workbench process copy and terminal session management.
- Ensured all tool specs provide schema-valid examples and improved prompt contracts.
- Removed app update section from settings and related constants.
- Introduced SidebarUpdateControl component for managing app updates in the sidebar.
- Updated AppUpdateContext and AppUpdateProvider to handle update logic.
- Added IPC channels for downloading updates and modified service contract tests.
- Updated E2E tests to reflect changes in app update handling and UI.
- Updated the build_web_crawler_sidecar.py script to remove full Chromium from bundled browsers and added a function to prune non-runtime files.
- Enhanced create-release-fragment.mjs to validate package security audit data.
- Introduced package-content-policy.mjs to enforce restrictions on forbidden file types and directories in packages.
- Added prepare-package-stage.mjs for staging package preparation, including runtime dependency installation and resource pruning.
- Implemented print-package-audit-summary.mjs to generate a summary of package security audits.
- Created runtime-bundle-graph.mjs to analyze runtime dependencies and collect package names.
- Refactored verify-runtime-bundles.mjs to utilize the new runtime-bundle-graph module for better dependency management.
- Updated release-fragment-contract.test.ts to include tests for package audit integration and validation.
- Add `release-doctor.mjs` for inspecting local Windows release environment.
- Enhance `release-environment.mjs` to resolve AWS CLI executable on Windows.
- Create `release-status.mjs` for checking public release status across platforms.
- Introduce `release-windows-local.mjs` for building and uploading Windows releases locally.
- Implement `route-windows-release.mjs` to route release processes between local and GitHub Actions.
- Add `windows-release-common.mjs` for shared functions related to Windows releases.
- Update preload scripts to remove E2E fixture mode for app updates.
- Adjust CSS for draggable regions in Windows titlebars.
- Remove outdated E2E tests related to app updates.
- Update tests to reflect new local-first Windows release strategy and ensure proper handling of update scenarios.
- Removed redundant semantic checks in human conversation memory tests.
- Updated model configuration handling in various live test cases.
- Enhanced assertions for document processing and web crawling tests.
- Improved readability by restructuring multiline statements and normalizing text.
- Added new test for macOS signing identity requirements in app update configuration.
- Adjusted workspace knowledge base seeding to include source preparation.
- Deleted the `missing-llm-notification-startup.e2e.test.ts` file as it is no longer needed.
- Enhanced `send-guard-mode-switch-and-preferences.e2e.test.ts` to include checks for missing model notifications.
- Removed `browser-use-deepseek-financing-search.e2e.test.ts` due to redundancy.
- Cleaned up `chat-run-service-contract.test.ts` by removing performance tests that are no longer relevant.
- Updated `aiLiveTestData.ts` to remove unused constants and types related to risk reports.
- Removed `aiToolHarness.ts` function for writing sample documents as it is no longer utilized.
- Updated `llmConfig.ts` to infer LLM provider kind from environment variables.
- Cleaned up `cache-summary.ts` by removing unused JSON conversion functions.
- Deleted `browserLlmConfig.ts` as it was redundant.
- Enhanced `settings.ts` to support new application settings and improved HTTP server response handling.
- Removed unused functions from `workbench.ts` related to waiting for assistant answers.
- Renamed constants and types related to the workspace index worker to reflect its new role as a prepare worker.
- Removed the old workspace index worker implementation and created a new prepare worker implementation.
- Updated the client for the prepare worker to handle requests and responses appropriately.
- Adjusted tests to accommodate the changes in worker functionality and ensure proper handling of document preparation.
- Introduced new tests for embedding runtime to ensure serial execution of inference requests.
- Updated tests for chat model provider registry to include providerKind in configurations.
- Improved human memory renderers tests for better readability and accuracy in action definitions.
- Translated cancellation message in LLM executor text tests to Chinese.
- Revised OpenAI compatible runtime tests to ensure explicit provider kind is retained.
- Added new skill definitions in runtime skill contract tests.
- Enhanced stagehand model config tests to clarify provider mappings.
- Updated conversation composer tests to validate AI preference selections and workspace interactions.
- Refined session creation tests to ensure proper title updates and help button visibility.
- Improved run blocker tests to validate stopping long tasks and approval runs.
- Enhanced chat run service contract tests to include preference settings.
- Added image recognition tool harness for better testing capabilities.
- Updated real AI dependencies factory to include strategy preference storage.
- Improved workbench utility functions for better interaction with UI elements.
- Introduced LlmStrategyPreferenceStore to handle user preferences for LLM strategies.
- Updated StorageService to include the new LlmStrategyPreferenceStore.
- Modified LlmConfigStore to validate provider kinds using isLlmProviderKind.
- Enhanced SQLite migration scripts to create llm_strategy_preference table.
- Updated structured output handling to support new strategy preferences in various components.
- Refactored tests to accommodate changes in structured output strategy handling.
- Moved ncurator reference building and parsing logic to a shared module for better reusability.
- Updated WorkspaceKnowledgePrepareService to handle both file and web sources, enhancing flexibility in document processing.
- Introduced new types for web input handling in workspace knowledge preparation.
- Enhanced caching mechanisms for indexed documents to improve performance.
- Updated tests to cover new functionality and ensure compatibility with changes in ncurator reference handling.
- Improved user data path handling for different platforms, ensuring consistent behavior across environments.
- Added end-to-end tests for workspace root binding through IPC for non-macOS platforms.