5 Commits
Author SHA1 Message Date
jubaoliangandCursor 51d5e49247 fix(ci): repair FnOS workflow parse error and stop re-running CI per release
The FnOS FPK workflow kept a stray env block when the rolling-release step was
removed, so GitHub rejected the whole file and Release's dispatch failed with
"'env' is already defined" — silently, because that job is continue-on-error.

CI also ran the full suite three times per release (release PR, main push, sync
PR) on identical trees. Drop the main push build, since PR checks already run on
the merge result, and skip the post-release sync PR, which is auto-merged before
its checks even start.

Release now passes the tag to the sync workflow so the branch is named after the
version instead of the constant "manual", which every release force-pushed over.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 10:29:31 +08:00
jubaoliang fbe33e49c4 feat(tests): add live WeChat/Feishu channel credential probes (#479)
Wire ChannelManager.probe_channel live cases into CI so real iLink and
Feishu app credentials are verified when LIVE_* secrets are configured.
2026-08-30 12:24:36 +08:00
085506e3f3 Feat/connectors gateway install (#14)
* 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>
2026-07-14 19:25:51 +08:00
jubaoliang 30b17554e3 Fix CI pipeline and make the test suite pass; rename project to Octop
CI:
- Drop Python 3.11 from the test matrix (package requires >=3.12); the
  3.11 jobs failed at `uv sync`. Linux and Windows now test Python 3.12.
- Rename tests/unit/infra/setup/tls/test_store.py -> test_tls_store.py to
  fix the pytest import collision (duplicate basename) that aborted
  collection on the 3.12 job.

Source bugs uncovered by the suite:
- Move ACTOR_SYSTEM to a runtime import in infra/cron/job.py (was wrongly
  placed under TYPE_CHECKING, causing NameError at runtime).
- Add missing users-table columns (login_failed_count, login_locked_until,
  preferences_json) in infra/db/migrate.py for legacy schema repair.
- Make auth.update_me honor explicit nulls via model_dump(exclude_unset=True).
- Relax skills hub endpoints to existence/ownership checks (require_agent_row)
  instead of requiring the agent to be running.
- Marshal WebSocket frames onto the owning event loop in chat/ws.py so the
  starlette TestClient portal does not deadlock.
- Include error details in the browser session 503 response.

Tests:
- Update tests to match current source APIs (harness async create/remove/
  rebuild, FakeHarnessAgent skill methods, workspace nested layout, JWT
  middleware, CLI surface, proactive config defaults, general-assistant
  template manifest).
- Migrate WebSocket tests to starlette TestClient(...).websocket_connect
  (httpx 0.28 removed AsyncClient.websocket_connect).
- Skip memory API tests when the optional harness_memory dependency is absent
  via pytest.importorskip.
- Remove the invalid diagnostic test tests/integration/test_diag_e2e.py
  (no assertions; inspected private internals only).

Also includes the pre-existing uncommitted orca -> Octop rename across docs,
README, LICENSE, Dockerfile and docker assets, as requested.
2026-07-10 00:40:24 +00:00
jubaoliang 748d998cf2 first commit 2026-07-09 14:32:36 +00:00