fix(ci): isolate package Telegram QA harness (#120193)

* fix(qa): isolate package Telegram harness

Keep private QA source, dependencies, taxonomy, and SDK dist in the trusted harness while the installed candidate owns its CLI, Gateway runtime, and persisted mock auth. Preserve the documented package RTT canary after taxonomy selection.

Co-authored-by: Dallin Romney <dallinromney@gmail.com>

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>

* fix(qa): export private QA harness SDK entries

Canonicalize the QA-only plugin SDK entries shared by the private build and package Telegram harness manifest so qa-runtime and qa-lab resolve from trusted dist.

* fix(qa): expose private runtime to package harness

* fix(qa): surface Telegram observer conflicts

* fix(qa): accept separate preview and final messages

* test(qa): exercise Telegram poll delay contract

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
This commit is contained in:
Dallin Romney
2026-08-09 06:11:03 +08:00
committed by GitHub
parent f66995cf42
commit 33ea7ffa54
21 changed files with 1276 additions and 300 deletions
+8 -5
View File
@@ -266,10 +266,10 @@ inside every shard.
onboarding, configures Telegram through the installed CLI, then reuses
the live Telegram QA lane with that installed package as the SUT
Gateway.
- The wrapper mounts only the `qa-lab` harness source from the checkout;
the installed package owns `dist`, `openclaw/plugin-sdk`, and bundled
plugin runtime, so the lane does not mix current checkout plugins into
the package under test.
- The trusted checkout owns the QA harness source, taxonomy, scenarios,
dependencies, and private SDK build. The installed package remains the
absolute CLI, Gateway, and bundled-plugin runtime under test, and its CLI
writes the package candidate's persisted auth state.
- Defaults to `OPENCLAW_NPM_TELEGRAM_PACKAGE_SPEC=openclaw@beta`; set
`OPENCLAW_NPM_TELEGRAM_PACKAGE_TGZ=/path/to/openclaw-current.tgz` or
`OPENCLAW_CURRENT_PACKAGE_TGZ` to test a resolved local tarball instead
@@ -280,7 +280,10 @@ inside every shard.
`OPENCLAW_NPM_TELEGRAM_RTT_TIMEOUT_MS`, or
`OPENCLAW_NPM_TELEGRAM_RTT_MAX_FAILURES` to tune the run.
`OPENCLAW_NPM_TELEGRAM_RTT_CHECKS` selects the Telegram QA scenario to
sample; the supported RTT target is `channel-canary`.
sample; the supported RTT target is `channel-canary`. The package runner
promotes that portable canary once to the first position, making
canary+RTT the preflight before the remaining taxonomy-backed fail-fast
release scenarios.
- Uses the same Telegram env credentials or Convex credential source as
`pnpm openclaw qa telegram`. For CI/release automation, set
`OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex` plus