Commit Graph
82 Commits
Author SHA1 Message Date
hy 7fb3e2bc25 feat: implement main process obfuscation and verification
- 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.
2026-07-20 14:44:32 +08:00
hy b7720eb10f refactor: streamline function definitions and improve readability in node-pty scripts 2026-07-20 12:57:12 +08:00
hy 2de70f403f feat: enhance error handling and user feedback across application
- 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.
2026-07-20 12:50:38 +08:00
hy 7baa82912d fix(release): isolate macOS launch verification port 2026-07-20 10:59:35 +08:00
hy 6a7f4725bc fix(release): restore Chinese macOS app name 2026-07-20 10:40:25 +08:00
Yoan Huang 53ff40b127 fix(release): preserve sidecar source hash across packaging 2026-07-19 17:02:06 +08:00
Yoan Huang d6fdf50e45 refactor(release): publish platforms independently on R2 2026-07-19 16:43:32 +08:00
Yoan Huang 024a6aa3d9 feat: implement silent installer for Windows updates and enhance related tests 2026-07-19 09:51:36 +08:00
Yoan Huang 2645e5b5d5 feat: remove GitHub Release creation from the release process and update related tests 2026-07-18 22:19:49 +08:00
Yoan Huang ee9b8e0d8a feat: enhance package auditing with path normalization and add related tests 2026-07-18 22:01:31 +08:00
Yoan Huang c40a7d1ea0 Refactor test documentation and improve testing structure
- 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.
2026-07-18 13:54:43 +08:00
Yoan Huang 2cc7598af3 feat: update node-pty to version 1.1.0 and add prebuild support 2026-07-17 21:32:50 +08:00
hy 03cdb47b45 feat: implement macOS package size budget auditing and validation 2026-07-17 18:34:15 +08:00
hy 4cd96edddf feat(ai): add PDF reading skill 2026-07-16 19:16:08 +08:00
hy 7a1db10048 Merge main and integrate persistent terminal sessions 2026-07-16 15:00:48 +08:00
hy b8c6de42b7 Refactor terminal command handling and enhance test coverage
- 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.
2026-07-16 10:18:43 +08:00
hy 5e4d1cd98c refactor: remove app update settings and integrate sidebar update control
- 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.
2026-07-15 17:31:34 +08:00
hy 5487324c26 fix: preserve native dependencies for release targets 2026-07-15 15:01:49 +08:00
hy 3bc06dde08 fix: make signed mac releases launchable 2026-07-15 13:31:00 +08:00
hy 9b3127392f release: prepare v0.1.4 mac update test 2026-07-15 10:46:36 +08:00
hy cbb6a04fb3 Merge branch 'main' of github.com:Yoan98/Ncurator-Desktop 2026-07-15 10:34:10 +08:00
hy a6bf082e0a feat: enhance web crawler sidecar build process and add package content policy
- 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.
2026-07-15 09:39:19 +08:00
Yoan 11ab367dec feat: enhance Windows release scripts with reuse option and update tests 2026-07-14 22:58:27 +08:00
Yoan 1ab186717d feat: implement local Windows release management and inspection scripts
- 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.
2026-07-14 22:41:09 +08:00
hy ceb94d9418 fix: read complete mac signing details 2026-07-14 17:53:14 +08:00
hy 45517179dc fix: remap cached browser links into packaged sidecar 2026-07-14 17:30:56 +08:00
hy 108db6b919 fix: keep bundled browser symlinks inside mac app 2026-07-14 17:23:07 +08:00
hy 34d07e7b4d fix: reuse local sidecar browser cache for mac releases 2026-07-14 16:40:33 +08:00
hy d5ca1e04f7 fix: normalize R2 bucket names 2026-07-14 16:01:07 +08:00
hy 8eac621bf0 refactor: use root env for desktop releases 2026-07-14 14:59:36 +08:00
hy 81847959b9 fix: make local signing setup repeatable 2026-07-14 14:24:59 +08:00
hy 7f858119ce build: add local release environment setup 2026-07-14 14:21:04 +08:00
hy a3a8f00410 build: use local release toolchain defaults 2026-07-14 14:16:34 +08:00
hy 3366ea0f5a refactor: publish desktop releases directly to R2 2026-07-14 14:02:44 +08:00
hy cb506b1bf5 Refactor live test cases and improve assertions
- 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.
2026-07-14 11:51:42 +08:00
hy 9bd424cd1c refactor: remove obsolete tests and improve existing test coverage
- 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.
2026-07-14 10:49:58 +08:00
hy bc264319eb refactor: rename workspace index worker to prepare worker and update related types
- 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.
2026-07-13 18:02:05 +08:00
hy bee25b2022 Refactor unit tests and enhance functionality for AI model providers and workbench interactions
- 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.
2026-07-13 13:45:21 +08:00
hy 854f3bbb5f ci: pin compatible node and python runtimes 2026-07-13 12:39:15 +08:00
Yoan da4f59c42e feat(storage): add LlmStrategyPreferenceStore for managing LLM strategy preferences
- 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.
2026-07-12 11:52:40 +08:00
Yoan ee66a5e932 refactor: consolidate ncurator reference handling and improve workspace indexing
- 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.
2026-07-11 15:10:17 +08:00
Yoan 01fb1b1171 feat: enhance long path handling for Windows in file operations 2026-07-11 10:22:04 +08:00
hy ea299e921f feat: enhance native SQLite3 handling and streamline development scripts 2026-07-10 19:33:45 +08:00
hy 9fd64c7eb6 feat(storage): implement SQLite utility functions and integrate with document management
- Added utility functions for SQLite operations in `sqliteUtils.ts`, including row manipulation and JSON parsing.
- Enhanced `WorkspaceKnowledgePrepareService` to manage document generations and content hashes.
- Updated constants for chunk write batch size to improve performance.
- Modified types to include generation IDs and content hashes in document records.
- Introduced SQLite database path configuration in `paths.ts`.
- Refactored `ChatPage` component to optimize rendering and handle file changes.
- Created unit tests for SQLite storage and document metadata management.
- Updated chat run service tests to reflect changes in event handling and data persistence.
2026-07-09 18:16:24 +08:00
hy 890ba0e3f3 Handle partial failures in assistant process UI 2026-07-08 15:40:45 +08:00
hy c3275ef87c refactor: update web crawler sidecar scripts to improve Playwright driver handling 2026-07-07 19:12:57 +08:00
hy 44284628f4 feat: add web search functionality and browser panel state management
- Implemented IPC handlers for browser panel state retrieval and zoom controls (zoom in, zoom out, reset).
- Enhanced BrowserEmbedService to manage zoom levels and provide current state.
- Added web search tool with structured result handling, including query and result items.
- Updated tool specifications and schemas for web search functionality.
- Modified skill definitions to include web search as a tool option.
- Created rendering functions for displaying web search results in the UI.
- Added tests for web search functionality and ensured proper integration with existing tools.
2026-07-07 18:56:08 +08:00
huangyuan 944bfa2b54 feat: implement web crawler service factory with fallback for unavailable services 2026-07-04 09:51:30 +08:00
hy d0e4a6a41b feat: Implement chat session management and message loading enhancements
- Added mergeById method in ChatStore for upsert operations on chat sessions and messages.
- Refactored saveChatSession and saveChatMessage methods to utilize mergeById.
- Introduced getChatMessagesPage method for paginated retrieval of chat messages.
- Enhanced getChatSession to return session details and handle non-existent sessions.
- Updated DocumentsStore to ensure type safety with unknown records.
- Expanded types in store.d.ts for new chat session requests and responses.
- Updated preload API to include new chat session methods.
- Optimized MarkdownRenderer and AssistantTurnCard components with React.memo for performance.
- Enhanced WorkbenchComposer to display hints based on submission state.
- Improved ChatPage to manage session switching and load older messages efficiently.
- Added performance tests for chat session open operations.
- Updated e2e tests to cover new session management features and ensure reliability.
2026-06-26 12:36:54 +08:00
hy b8146709b0 feat(tests): add end-to-end tests for workbench functionalities
- Implement multi-file apply tabs test to ensure assistant retains all entries and tabs during modifications.
- Create file preview actions test to verify the preview layout and toolbar actions for local files.
- Add search results open rules test to confirm that search mode does not trigger AI and handles web/local results correctly.
- Introduce approval batch flow test to validate user decisions on approval cards during AI runs.
- Develop stop running or approval run test to check the behavior of the stop button during approval waits.
- Implement workspace required continue test to ensure users can continue requests after providing a workspace root.
- Add AI process stream and final answer test to verify the display of process streams and final outputs.
- Update run log contract to include 'workbench' as a test domain.
- Modify run-e2e-case to accept 'workbench' as a valid domain for test cases.
- Create a new workbench helper file to encapsulate workbench-specific E2E testing utilities.
2026-06-12 11:32:43 +08:00