217 Commits
Author SHA1 Message Date
huangyuan 508132adba perf(test): reuse knowledge computations and expand skill live evaluation
Share content-addressed parsing and embedding caches across isolated test runs, fingerprint relevant dependencies and model assets, and remove implicit UI warm-up. Add realistic two-round Skill delivery evaluation and cache regressions.
2026-10-23 18:50:49 +08:00
huangyuan dc93f29e07 feat(tests): add user skill creation, editing, and import tests
- Implement end-to-end tests for user skill creation and editing, ensuring proper handling of name conflicts and partner bindings.
- Add tests for importing skills from a directory, verifying that existing resources are preserved or replaced correctly.
- Introduce tests for skill partner budget management, ensuring that skills are isolated between partners and that budget limits are enforced.
- Enhance existing tests to validate the integration of AI processes with user skills, ensuring that updates to skills are reflected in AI outputs.
- Create necessary fixtures and scripts to support the new tests, including skill definitions and rules for processing.
2026-10-23 17:53:34 +08:00
Lingu 8ff59164bf feat: add shared user skills and separate toolset loading
Copy complete Skill folders into shared user data with per-partner enable bindings. Separate load_skill instruction context from load_toolset registration, state, prompts and tool-budget eviction.

Revalidate instruction bindings across inference, compaction and restore. Add management UI, safe import and storage migration coverage, real graph regressions, and persisted snapshot recovery checks.

Signed-off-by: Lingu <132213669+AntonyLang@users.noreply.github.com>
2026-10-23 17:04:35 +08:00
Yoan Huang 66b6ebcf79 fix(test): read Windows desktop launch environment variables
Signed-off-by: Yoan Huang <xiaoyuan9816@gmail.com>
2026-10-21 20:44:35 +08:00
hy 4a829624a4 fix: respect release regression impact scope
Signed-off-by: hy <xiaoyuan9816@gmail.com>
2026-10-21 16:29:52 +08:00
hy b88e127e53 fix: resolve CLI entry paths through filesystem aliases
Signed-off-by: hy <xiaoyuan9816@gmail.com>
2026-10-21 14:17:33 +08:00
hy 3b9ba40774 fix: gate releases on packaged cache regression evidence
Signed-off-by: hy <xiaoyuan9816@gmail.com>
2026-10-21 13:47:40 +08:00
hy e84f8360d5 feat: integrate Jieba support and enhance VC++ redistributable handling for Windows 2026-10-21 12:36:45 +08:00
hy 0ea1860085 feat: enhance desktop launch handling and improve exit classification for macOS
- Added `findInstalledWindowsShortcut` to locate Windows shortcuts for installed applications.
- Integrated `launchEntryPath` into the E2E application preparation process to improve launch entry tracking.
- Removed loopback URL checks and related functions from `httpPageFetch.ts` to simplify HTTP fetching logic.
- Updated `web/index.ts` to streamline HTTP page fetching logic and remove unnecessary loopback checks.
- Modified E2E tests to correctly retrieve Electron process IDs and improve test reliability.
- Introduced `isExpectedMacDesktopTeardownExit` to classify macOS application exits more accurately.
- Enhanced Electron app launch process to support desktop launch configurations and ensure proper teardown.
- Added tests for desktop launch configurations to ensure sensitive data is not exposed.
- Improved error handling and logging during Electron app launches and exits.
2026-10-21 12:33:06 +08:00
hy 107179d836 feat(settings): enhance help functionality and layout adjustments
- Added a modal for opening help website with confirmation dialog.
- Integrated help button in settings sidebar to trigger help modal.
- Improved layout responsiveness for settings sections across different languages.
- Updated selectors for cache cleanup and added new cache-related tests.
- Enhanced partner cache preview functionality to include total bytes and skipped counts.
- Refactored e2e tests for settings help entry and partner cache cleanup to validate new features.
- Adjusted Electron app launch configuration to ensure correct working directory.
2026-10-21 11:12:11 +08:00
hy 1eedabb914 feat: add support for language and service route preferences
- Updated ModelSource type to include 'huggingface'.
- Enhanced MODEL_SOURCE_LABELS for better clarity.
- Introduced defaultModelSource function to determine default source based on service route.
- Modified AppSettings to include language and serviceRoute.
- Created end-to-end tests for language and service route settings.
- Added unit tests for application language and service preferences.
- Updated free models test to reflect new catalog naming conventions.
- Enhanced official API tests to ensure correct handling of service regions.
- Adjusted release artifact tests to accommodate internationalization.
- Updated SQLite migration and storage tests to include new preferences.
2026-10-21 10:05:42 +08:00
hy 978c33f371 fix: synchronize desktop releases across COS, R2 and GitHub
Signed-off-by: hy <xiaoyuan9816@gmail.com>
2026-10-20 18:12:56 +08:00
hy 561743ee3e fix: use ASCII release asset names and extend upload timeout
Signed-off-by: hy <xiaoyuan9816@gmail.com>
2026-10-20 16:49:06 +08:00
hy 04295587e1 feat: integrate GitHub releases and prepare public repository
Signed-off-by: hy <xiaoyuan9816@gmail.com>
2026-10-20 15:38:48 +08:00
hy 670c26eddf feat: Enhance image handling and model capabilities in AI harness
- Update `human-harness.md` to clarify image caching and logging behavior.
- Modify `workbench.md` to improve user experience with free models lacking vision capabilities.
- Add new test case `human-read-image-no-vision` to validate behavior when using free models without vision support.
- Enhance `generate-ai-tool-prompt-audit.mts` to include error descriptions for `read_image` failures.
- Implement checks in `agentControl` to prevent image processing with unsupported models.
- Update `ChatPage.tsx` to ensure context usage is refreshed correctly after partner state changes.
- Extend tests for `read_image` functionality to cover various model configurations and ensure proper error handling.
- Refactor `model-selector-and-provider-error.e2e.test.ts` to verify context usage after different run states.
- Adjust `realAiDepsFactory.ts` and `test-types.ts` to accommodate new model configurations and types.
2026-10-15 15:16:14 +08:00
hy f069b5f8ef fix(build): prune unused distributions and include formula runtime peer 2026-10-14 21:56:27 +08:00
hy d0f34b5999 fix(build): preserve dependency patches during frozen staging install 2026-10-14 21:06:36 +08:00
hy 0b95642b92 feat: unify document references and interaction cards, tidy docs and tests 2026-10-11 10:08:28 +08:00
hy 5dd6cff103 feat: update subagent task view and related logic for streaming support
- Changed `requesting` to `streaming` in `SubagentTaskView` type.
- Updated logic in `reduceAssistantProcessGroups` to handle streaming state and message timing.
- Modified `AiRunEventPayload` to reflect the new streaming property.
- Enhanced tests for human subagent to validate streaming behavior and prefix cache retention.
- Added new test case for subagent prefix cache retention during live execution.
- Introduced assertions for prefix cache reuse in the continuation logic.
- Added a new DOCX fixture for testing document selection scenarios.
2026-10-09 10:30:56 +08:00
hy 4bca39b13b feat: Enhance AI question handling and testing framework
- Added new test cases for AI user question interactions, including scenarios for rejecting mixed tools and ensuring no auto-answering occurs.
- Updated the test plan documentation to include new test cases and clarify AI question handling processes.
- Improved the Workbench UI to support better user interactions with AI questions, including custom input handling and question navigation.
- Refactored backend code to implement a question resolver that manages AI question interactions and ensures proper event handling.
- Enhanced unit tests to validate the structure and behavior of the ask_user_question tool contract.
- Introduced end-to-end tests for the Workbench AI question flow, ensuring that user interactions are correctly captured and processed.
2026-09-21 14:51:07 +08:00
hy 396f751e05 refactor: rename human-prefix-cache-retain-live to prefix-cache-retain-live and update related tests
- Updated test plan documentation to reflect the new naming convention for prefix cache tests.
- Added new E2E test for prefix cache retention in the Workbench UI.
- Removed obsolete human-prefix-cache-retain-live test file and integrated its logic into the new test structure.
- Adjusted release preparation script to accommodate the new test case name.
- Enhanced LLM IO record handling in the E2E testing framework to support the new test requirements.
- Updated various harness and utility functions to ensure compatibility with the new test structure and naming.
2026-09-20 17:45:55 +08:00
hy 7bbbebaf7e feat(settings): enhance workspace management and indexing
- Updated `settings-test.md` to include new test cases for sequential workspace address preparation and indexing.
- Modified `workbench-test.md` to clarify restrictions on direct calls to workspace preparation methods in E2E tests.
- Revised `test.md` to establish stricter rules for backend case testing, prohibiting the use of mocks and requiring production implementations.
- Refactored IPC handlers to improve job handling and indexing speed application.
- Enhanced `EmbeddingService` to apply indexing speed settings directly.
- Added new tests for sequential workspace preparation and indexing to ensure proper job execution order.
- Introduced utility functions for adding and removing workspace directories through the settings UI in E2E tests.
2026-09-20 13:41:25 +08:00
hy b2b7910dec refactor: streamline embedding runtime configuration and testing
- Removed the 'Not' field from test plan validation to simplify requirements.
- Updated the test architecture validation script to reflect changes in test plan fields.
- Introduced new functions for handling embedding runtime environment variables and session options.
- Refactored embedding runtime process to utilize new environment parsing logic.
- Enhanced unit tests to validate the correct mapping of thread budgets and session options for different performance tiers.
- Ensured that runtime environment variables are correctly set and parsed, maintaining consistency with budget configurations.
2026-09-20 12:58:08 +08:00
hy 5e77c7ddc6 feat(tests): add knowledge test plan and update related documentation 2026-09-20 12:31:22 +08:00
Yoan HuangandCursor 8c3f8173ad fix(test): exclude showcase from backend release gate
Showcase collection must stay on pnpm test:showcase; including it under backend polluted release:start and caused Electron launch contention.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-19 09:23:01 +08:00
hy 4a73165586 Refactor tests to remove unnecessary parameters and improve readability
- Updated multiple test files to remove unused parameters in page.evaluate calls.
- Simplified function signatures in waitForPreparedWebSources and other helper functions.
- Cleaned up assertions and formatting for better clarity in unit tests.
- Removed redundant code and improved consistency across test cases.
2026-09-18 15:00:42 +08:00
hy 240ab91f7b refactor: remove unused test scripts and improve argument validation
- Removed `test:ai`, `test:settings`, and `test:workbench` scripts from package.json.
- Updated test plan documentation to reflect the removal of `test:workbench`.
- Enhanced argument parsing in release scripts to ensure required values are provided.
- Added validation for unknown arguments in release scripts.
- Improved error handling for invalid arguments in test workflow.
- Updated unit tests to cover new validation logic for release arguments.
2026-09-18 14:49:01 +08:00
hy d7e84edda9 Add showcase tests for PPT management, review, knowledge base replies, and service contracts
- Implemented `ppt-management-briefing-edit.showcase.test.ts` to test editing PPTs with AI assistance.
- Created `ppt-management-briefing-review.showcase.test.ts` for reviewing PPTs generated by AI.
- Added `xinghe-kb-reply.showcase.test.ts` to validate knowledge base replies against local documents.
- Developed `xinghe-service-contract.showcase.test.ts` to test AI responses based on PDF contract queries.
- Introduced shared utility functions in `shared.ts` for handling file operations and cost calculations.
- Updated Vitest configuration to include new test paths for showcase cases.
2026-09-18 14:33:38 +08:00
hy 203f8ab180 feat(showcase): add new tests for PPT management and knowledge base interactions
- Implemented `ppt-management-briefing-edit.showcase.test.ts` to test editing PPTs with AI assistance, including cost computation and screenshot capture.
- Created `ppt-management-briefing-review.showcase.test.ts` for reviewing PPTs, ensuring the generation of review screenshots and cost analysis.
- Added shared utility functions in `shared.ts` for handling showcase fixtures, workspace seeding, and cost computation.
- Developed `xinghe-kb-reply.showcase.test.ts` to validate knowledge base interactions, capturing screenshots of responses and ensuring correct tool usage.
- Introduced `xinghe-service-contract.showcase.test.ts` to test PDF contract inquiries, verifying unchanged source documents and capturing relevant screenshots.
- Configured Vitest for showcase tests in `vitest.showcase.config.mts`, setting appropriate timeouts and test inclusion/exclusion criteria.
2026-09-18 14:22:54 +08:00
hy 2c431406f0 feat(tests): enhance testing framework with explicit collection tasks and execution profiles
- Added `showcase` as an explicit collection task in the testing framework, distinct from product regression.
- Introduced explicit collection task rules and updated documentation to reflect changes in testing structure.
- Updated E2E testing commands to utilize `--execution-profile` for better control over test execution.
- Implemented validation to prevent the selection of certain groups (e.g., `showcase`) during release command parsing.
- Enhanced regression selection logic to allow opt-in groups for release impact assessment while rejecting disallowed groups.
- Updated related scripts and test cases to ensure compliance with new testing rules and execution profiles.
2026-09-18 13:56:30 +08:00
hy 5cff282d2c feat(e2e): introduce default exclude groups for E2E tests and update related scripts 2026-09-18 12:36:56 +08:00
hy 0c34dd3ecf feat: add desktop release design and process documentation
- Introduced `design.md` to outline the constraints, storage layout, CDN/public channel, and local directory conventions for desktop releases.
- Added `release.md` detailing the release process for Windows and macOS, including tagging, candidate package creation, and COS publishing.
- Created `tencent-cdn-billing.md` to summarize billing and procurement for Tencent Cloud CDN and COS for domestic releases.
- Updated test plans in `ai-test.md` and `workbench-test.md` to reflect changes in release processes and added new tests for prefix cache retention.
- Enhanced release preparation script to assert live key configuration and run necessary live gate tests.
- Implemented a new test case for validating prefix cache retention during live interactions.
2026-09-18 11:24:54 +08:00
Yoan Huang 33de80f1c3 feat(e2e): enhance E2E installation and cleanup process
- Refactor E2E installation logic to improve handling of Windows and macOS paths.
- Introduce cleanup functions to remove E2E installation directories and associated shortcuts.
- Update tests to cover new cleanup functionality and ensure proper detection of E2E install paths.
- Modify package isolation helpers to streamline the installation and cleanup processes.
2026-09-17 23:23:28 +08:00
Yoan HuangandCursor 6b1f1ce229 fix(tests): make package E2E shortcut isolation resilient to locked Start Menu links
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 22:01:45 +08:00
Yoan Huang 6a440a21d6 feat: enhance E2E application isolation and workspace file explorer functionality
- Update E2E testing commands in documentation to clarify installation paths for macOS and Windows.
- Refactor package application script to improve handling of E2E installations, including renaming and restoring shortcuts.
- Introduce new module for E2E isolation helpers, including functions for detecting installation paths and renaming applications.
- Optimize workspace source service to use Promise.all for concurrent processing of file entries.
- Add reload token mechanism in WorkbenchContentPanel to refresh file explorer state.
- Implement directory loading and refresh logic in WorkspaceFileExplorer to ensure visibility of newly created files.
- Enhance ChatPage workspace selection logic for better path normalization.
- Add unit tests for E2E isolation helpers and E2E tests for workspace file explorer refresh behavior.
2026-09-17 21:18:21 +08:00
hy 98c3824541 feat: enhance context window handling and compaction logic
- Added contextWindowTokens to LlmPresetModel and updated mergePresetCatalogProviders to parse context window tokens from models.
- Removed compactionTriggerTokens from BrainContextBudgetSnapshot as it is no longer needed.
- Updated tests to reflect changes in context window calculations and compaction logic.
- Introduced new utility functions for resolving effective context window tokens and compaction tail tokens.
- Adjusted various test cases to ensure compatibility with the new context window handling.
- Improved error handling and logging in browser-related services and tests.
2026-09-17 12:53:55 +08:00
Yoan Huang d483c4a208 feat: implement office file write notifications and handling for WPS Office
- Introduced `withOfficeFileWrite` utility to manage file write operations with proper closing and reopening of documents.
- Updated `notifyOfficeFileWritten` to utilize the new utility and handle office file paths more effectively.
- Enhanced `WpsSyncService` to manage document closing and reopening during write operations, ensuring proper synchronization with connected clients.
- Added tests to verify the closing and reopening behavior of documents during write operations, ensuring that the correct events are dispatched to connected add-ins.
- Refactored existing code to improve readability and maintainability, including the handling of file paths and error management.
2026-09-16 21:29:22 +08:00
hy ee5a1fcea3 feat(wps): update test configurations and add WPS office reload e2e test 2026-09-15 18:23:53 +08:00
hy 7f1245ea55 feat: add WPS sync addon for document refresh on local file changes
- Introduced a new WPS addon manifest and ribbon configuration.
- Implemented WpsAddonInstaller for managing addon installation and configuration.
- Created WpsSyncService to handle synchronization events and document tracking.
- Added utility functions for handling office file write notifications.
- Developed publishXml functions to manage the merging of publish.xml for the addon.
- Implemented tests for WpsSyncService, WpsAddonInstaller, and office file notifications.
- Added end-to-end tests for verifying WPS reload behavior on document modifications.
2026-09-15 10:00:02 +08:00
hy d25a153488 refactor: update release storage layout and fragment handling for improved clarity and consistency 2026-09-14 11:07:49 +08:00
hy 93a932b322 release: drop legacy downloads/latest and old prefix cleanup
The deprecated downloads/latest prefix and pre-artifacts/v paths are
gone; finalize only removes superseded platform artifacts/status.
2026-09-12 16:28:54 +08:00
hy 52f66b4de6 release: map Mac update metadata through fragment public names
Pass the macOS fragment into metadata.mjs so latest-mac.yml rewrites
the DMG path to the user-visible 馆长 object key.
2026-09-12 16:02:27 +08:00
hy 9ee6854262 release: use user-visible names as public artifact object keys
Upload and finalize artifacts under file.name (馆长-…) so CDN/URL
basename matches the save-as name without Content-Disposition.
storageName stays ASCII for on-disk resolve; update metadata maps
either alias to the public key.
2026-09-12 15:55:53 +08:00
hy 32837f02a2 release: verify Mac disposition on origin, warn on stale CDN
COS CDN can keep immutable Content-Disposition after metadata updates
when purge is unavailable; trust origin head-object and warn if public
headers lag.
2026-09-12 15:32:05 +08:00
hy 75e13c65cc release: align Mac DMG download name with 馆长 branding
Use 馆长-${version}-macos-arm64.dmg as the user-visible installer name
while keeping ASCII storage keys, resolve on-disk assets by storageName
when they differ, and emit Windows-style UTF-8 Content-Disposition.
2026-09-12 15:23:24 +08:00
Yoan Huang 8c28ed5319 fix: seed native cache into Windows release E2E worktree
Prefill node_modules/.native-cache from the repo root so package E2E does not re-download natives and stall on flaky GitHub fetches.
2026-09-12 01:41:54 +08:00
Yoan HuangandCursor b4be33ddaf fix: load Windows release env and use PowerShell-safe file write in run-scope E2E
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 22:40:31 +08:00
hyandCursor 590ba23252 fix: invoke package E2E via node so pnpm does not forward --
pnpm run now passes a literal -- into workflow.mjs, which rejects unknown args and blocks release:mac --test-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 18:19:00 +08:00
hyandCursor 50448bddda fix: allow aborting unpublished release tags for same-version retake
Failed pre-publish tags can be deleted and reused instead of stacking versions; docs and prepare errors point at release:abort.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 17:59:14 +08:00
hy 6b505d9f17 feat: enhance seed partner timeline script and improve digest handling in memory services 2026-09-11 15:40:39 +08:00