* refactor: update Dockerfile and installation scripts to make Playwright Chromium optional
- Removed pre-installation of Playwright Chromium in Dockerfile and installation scripts.
- Updated documentation to clarify that Playwright Chromium is not downloaded by default; users can opt-in using the `--extras browser` flag.
- Adjusted README and script comments to reflect changes in installation behavior regarding Chromium.
- Ensured that existing system Chrome/Chromium installations are reused when available.
* refactor(browser): update browser environment interface and add Chrome installation check
- Modified the BrowserEnvStatus interface to include new properties for Playwright and Chrome detection.
- Enhanced the Chat component to check for Chrome installation and prompt users to install if missing.
- Added utility functions to determine if a redirect to the Chrome installation page is necessary.
- Updated localization files to include messages related to Chrome installation prompts in English and Chinese.
- Introduced tests for the new Chrome installation logic to ensure correct behavior.
* fix(browser): update Chrome installation prompt and navigation logic
- Modified the message displayed when Chrome is not installed to provide clearer instructions.
- Replaced the info message with a confirmation modal that prompts users to navigate to the Chrome installation page.
- Updated dependencies in the Chat component to include the new modal functionality and ensure mobile responsiveness.
* fix(localization): update Chrome installation prompts in English and Chinese
- Changed the message for missing browser detection to provide clearer instructions.
- Updated the Chat component to reflect the new localization keys for the Chrome installation prompt.
- Ensured consistency in messaging across different languages for better user experience.
* fix(localization): improve browser installation prompts in English and Chinese
- Updated messages for browser detection and installation to provide clearer instructions for users.
- Ensured consistency in localization across both English and Chinese versions for better user experience.
- Enhanced user guidance for installing a browser to facilitate remote browsing and automated actions.
* fix(localization): update browser status messages in English and Chinese
- Revised messages related to browser readiness and uninstallation for clarity and consistency.
- Enhanced user guidance in both languages to improve the overall experience when managing the built-in browser.
- Ensured that the localization updates reflect the intended functionality and user interactions.
* fix(localization): update shutdown messages in English and Chinese
- Revised shutdown confirmation messages for clarity and consistency across both languages.
- Enhanced user understanding of the browser shutdown process and its implications.
- Ensured localization updates align with the intended user experience when managing the browser.
* chore(dependencies): update harness-browser to version 0.7.8
- Bumped harness-browser dependency from 0.7.7 to 0.7.8 in pyproject.toml and uv.lock.
- Updated associated package metadata to reflect the new version and its dependencies.
Unify file list / file viewer / browser into closable dock tabs with a
PR-style path tree and path dedupe; polish account popover and rail UX;
harden install mirrors and bump harness-agent.
Co-authored-by: Cursor <cursoragent@cursor.com>
* feat(connectors): add gateway connectors and drop baidu-netdisk/figma
Expand the catalog with QQ Music, Fliggy, Baidu Map, Ctrip Wendao, Meituan Travel, and Yuandian; migrate Tencent News to API key; unify gateway credential probes; remove Baidu Netdisk/Figma OAuth paths.
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore(install): ship Playwright by default and harden install scripts
Make browser tooling a core dependency, drop obsolete optional extras, and improve glibc/Playwright system-deps handling across install.sh/ps1/bat.
Co-authored-by: Cursor <cursoragent@cursor.com>
* feat(desktop): install build deps before Python packages on Linux
Add a build-deps-only path so remote desktop setup can compile extension wheels when system headers are missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(dashboard): cache update-status checks in localStorage
Deduplicate concurrent PyPI probes across mounts and persist the last known update status with a short TTL.
Co-authored-by: Cursor <cursoragent@cursor.com>
* test(live): add OSS probes, secret helpers, and CI live job
Centralize require_env skipping, document live credentials in .env.example, and wire a secrets-gated live-tests workflow.
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore(tests): rename chat WS integration test and drop dead cases
Align the chat transport test name with WebSocket usage and remove a skipped bootstrap harness test.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(ci): unblock typecheck, CodeQL, and drifted live tests
Align mypy with requires-python 3.12 so numpy stubs parse; clarify Fliggy
SHA-256 use for request signing; update live expert/backend assertions
to the lazy Expert catalog and DEFAULT_BACKEND_SPEC with root_dir.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(ci): news Skill-Request-Id, workspace live reads, CodeQL FP
Add Tencent News CLI headers required by error 4010; assert expert
seeds via agent.workspace instead of host-rooted backend paths; ignore
Fliggy signing digests in CodeQL (protocol SHA-256, not password KDF).
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(tests): allow newline-only __init__.py in expert live checks
Office-automation skill packages ship empty package markers; strip()-based
emptiness assertions should not treat those as copy failures.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(tests): compare expert seeds via adownload_bytes
Harness aread_text replaces empty/whitespace file bodies with a system
reminder, which broke live office-automation __init__.py checks.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>