Commit Graph

176 Commits

Author SHA1 Message Date
Peter Steinberger b4a26783f7 refactor(test): consolidate duplicated requireRecord and provider HTTP mock helpers (#119982)
* refactor(test): consolidate duplicated test helpers

* test: remove stale record guard import

* fix(test): remove orphaned record guards

* refactor(test): keep record requirement messages exhaustively typed

* fix(test): keep packages/ai record guard package-local
2026-08-06 14:48:01 -07:00
Vincent Koc 4d9c249d40 test(qa): allow restart startup diagnostics (#119928)
Punchcard-Session: quiet-valley-meadow-gq
2026-08-06 19:56:22 +08:00
Vincent Koc beda1e97c6 fix(onboarding): honor external gateway supervision (#119846)
Punchcard-Session: quiet-meadow-timber-mj
2026-08-06 17:26:43 +08:00
w33d 2ea567972c fix(diagnostics): attribute plugin LLM usage spans (#107937)
Emit usage once at the shared plugin completion boundary and expose host-derived plugin identity only on OTel usage spans. Preserve aggregate metric labels and cover the redacted Gateway path end to end.

Refs #98968

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>
2026-08-06 16:55:53 +08:00
HughTang a1064adb68 fix(diagnostics-otel): propagate exported span context (#112283)
* fix(diagnostics-otel): harness.run root span adopts diagnostic trace context

Fall back to internalOrTrustedParentContext when there is no active
tracked parent, so the openclaw.harness.run root span (and its whole
OTel subtree) adopts the diagnostic traceId instead of minting a new
OTel root. This lets spans propagated via the diagnostic traceparent
(e.g. a2a-gateway a2a.call / downstream a2a.task) share one trace with
the run internals.

* fix(diagnostics-otel): propagate exported span context

Co-authored-by: HughTang <44694613+HughTang@users.noreply.github.com>

* fix(diagnostics): break propagation import cycle

* fix(diagnostics): preserve trace propagation contracts

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-06 08:41:20 +08:00
Peter Steinberger 414616f583 fix(video): harden DashScope task and media lifecycle (#117303)
* fix(video): validate DashScope task outputs and release request guards

* fix(video): validate DashScope task outputs and release request guards

* refactor(video): use shared empty-asset validation

* fix(video): align DashScope Wan request contracts

* refactor(video): use shared empty-asset validation

* fix(video): enforce catalog modes before provider calls

* fix(video): keep model checks fallback-aware

* fix(video): centralize fallback-aware capability checks

* docs(video): document Wan 2.7 fixed audio

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-05 10:19:09 -07:00
Vincent Koc db8e95f70b test(qa): cover managed OTEL runtime paths (#118965)
* test(qa): cover managed OTEL runtime paths

* test(qa): prove OTEL flush clamp

* test(qa): clean up OTEL runtime fixtures

* test(qa): share OTLP runtime support

* test(qa): harden managed OTEL install proof

* test(qa): align OTEL runtime fixtures

* test(qa): expose OTEL runtime failures

* test(qa): align OTEL runtime boundaries

* test(qa): bound fixture registry shutdown

* test(qa): isolate managed OTEL plugins

* test(qa): start managed OTEL from no plugins

* test(qa): launch managed OTEL from built dist

* test(qa): read managed plugin index from state root

* test(qa): align OTEL runtime agents and types

* test(qa): stage managed plugin packages in scratch

* test(qa): verify OTEL span ancestry

* test(qa): support multiple OTEL harness spans

* test(qa): prove OTEL delivery and preload spans

Punchcard-Session: crisp-lantern-orchard-nv

* test(qa): align OTEL delivery proof with channel boundary

Punchcard-Session: crisp-lantern-orchard-nv

* test(qa): resolve OTEL preload through fixture modules

* test(qa): isolate sampled OTEL export proof
2026-08-05 14:53:45 +08:00
Vincent Koc fd1662f49c fix(cli): retire invalid secret flags and prove doctor recovery (#118926)
* test(qa): add doctor CLI recovery coverage

* test(qa): secure doctor exec SecretRef proof

* test(qa): gate doctor systemd recovery proof

* test(qa): normalize doctor terminal output

* test(qa): close doctor probe sockets

* test(qa): classify doctor probe as foreign

* test(qa): track doctor probe sockets

* test(qa): retain doctor instance narrowing

* test(qa): preserve observed doctor recovery proof

* test(qa): keep doctor recovery on stable dist

* test(qa): honor Windows exec ACL blocking

* test(qa): use canonical home for systemd recovery

* test(qa): follow bounded gateway recovery

* test(qa): accept lifecycle service label

* test(qa): align doctor recovery contract

Punchcard-Session: crisp-lantern-orchard-nv

* docs(secrets): remove retired provider bypasses

Punchcard-Session: crisp-lantern-orchard-nv

* test(qa): isolate doctor recovery target

Punchcard-Session: crisp-lantern-orchard-nv

* fix(cli): retire invalid secret provider flags

Punchcard-Session: crisp-lantern-orchard-nv

* test(qa): isolate doctor supervisor mode

Punchcard-Session: crisp-lantern-orchard-nv

* fix(plugins): remove dead secret path bypass

Punchcard-Session: crisp-lantern-orchard-nv

* chore: drop release-owned changelog entry

Punchcard-Session: crisp-lantern-orchard-nv

* test(qa): isolate doctor sudo scope

Punchcard-Session: crisp-lantern-orchard-nv

* fix(secrets): remove dead path bypass

Punchcard-Session: crisp-lantern-orchard-nv

* test(qa): isolate systemd user bus

Punchcard-Session: crisp-lantern-orchard-nv
2026-08-05 11:20:23 +08:00
Josh Avant 618fba92bf feat(audit): add execution identity inspection (#117034)
* feat(audit): add opt-in execution identity inspection

* fix(audit): gate recovery identity retention

* fix(audit): keep recovery identity type private

* test(audit): type internal recovery fixture

* test(audit): split recovery identity coverage

* docs(audit): define operator read trust boundary

* test(qa): register identity scenario child

* fix(audit): enforce shared identity retention bounds

* fix(audit): seal public ingress identity boundary

* fix(audit): keep ingress guard lint-clean

* fix(gateway): preserve advertised method order

* chore(protocol): sync advertised method order

* fix(protocol): encode audit selector invariants

* test(audit): prove exact execution guard

* fix(audit): keep identity storage lazy
2026-08-04 20:05:15 -05:00
Vincent Koc b4f01afa86 test(qa): cover Canvas agent and node controls (#119047)
* test(qa): cover Canvas agent and node controls

* fix(test): activate Canvas registry before gateway startup

* fix(test): align Canvas node proof with wire contract

* fix(test): narrow Canvas node invocation frames
2026-08-04 20:42:30 +08:00
Vincent Koc c3f148f6b7 fix(plugins): preserve metadata reloads during models status (#119183)
* fix(plugins): preserve newer metadata publications

* test(plugins): type metadata snapshot fixture
2026-08-04 19:24:30 +08:00
Vincent Koc 4bdf9ca789 fix(tui): block terminal controls in system messages (#118998)
* fix(tui): sanitize rendered system messages

* test(tui): keep PTY safety proof within lint budget

* test(tui): clarify terminal safety PTY proof

* test(tui): de-churn terminal safety harness

* fix(tui): sanitize connection status output

* test(tui): split PTY harness support

* fix(tui): sanitize selector and footer output

* fix(tui): harden terminal display boundaries

* fix(tui): harden terminal display boundaries

* fix(tui): harden terminal output boundaries

* test(tui): repair terminal safety proof

* test(tui): harden terminal safety oracle

* test(tui): type OSC terminator candidates

* fix(tui): authenticate current terminal rendering

* fix(tui): harden terminal output safety evidence

* test(tui): keep PTY cell type internal

* test(tui): reject literal tabs in PTY oracle

* test(tui): reject literal backspace in PTY oracle
2026-08-04 16:35:41 +08:00
Vincent Koc 3ac7083213 improve(qa): cover vision channel offload (#118862)
* test(qa): cover vision channel offload

* test(qa): harden vision channel offload coverage
2026-08-04 14:57:03 +08:00
Vincent Koc e0799199b3 test(qa): cover sandboxed exec behavior (#119053) 2026-08-04 14:36:03 +08:00
Vincent Koc 3f2fb7e365 test(qa): cover gateway plugin approvals (#119128) 2026-08-04 14:07:29 +08:00
Vincent Koc 12beeb7b29 test(qa): cover packaged browser profiles (#119043) 2026-08-04 11:13:05 +08:00
Vincent Koc 7f766550a1 test(qa): prove agent tool approval controls (#119029) 2026-08-04 11:02:17 +08:00
Vincent Koc 6b66866fe8 test(qa): prove agent session scope continuity (#119032) 2026-08-04 09:52:39 +08:00
Vincent Koc fc1913defe test(qa): prove workspace mutation tools (#119021) 2026-08-04 09:52:31 +08:00
Vincent Koc ada473e560 test(qa): cover agent session streaming (#119028) 2026-08-04 09:24:44 +08:00
Vincent Koc 5a59bb07b3 test(qa): cover sandbox workspace isolation (#119038) 2026-08-04 09:21:54 +08:00
Vincent Koc b4faa5aa5e chore(gateway): cover update and setup RPCs
* test(gateway): cover update and setup RPCs

* test(gateway): cover target wizard lifecycle

* test(gateway): normalize QA fixture ownership

* test(gateway): include historical dist closure

* test(gateway): isolate historical update fixture

* test(qa): align target wizard lifecycle proof

* test(qa): read structured gateway call errors
2026-08-04 09:15:55 +08:00
Vincent Koc 6419711eb3 test(qa): cover direct tool invocation (#119025) 2026-08-04 09:01:46 +08:00
Vincent Koc 945597bb81 test(qa): cover agent session reconnect dedupe (#119013) 2026-08-04 08:25:06 +08:00
Vincent Koc 1520b839f3 test(qa): prove gateway chat RPCs (#118988) 2026-08-04 08:19:14 +08:00
Vincent Koc 2de88241a4 test(qa): prove packaged plugin lifecycle transitions (#118973) 2026-08-04 08:13:58 +08:00
Vincent Koc 85af36dbf6 improve(tui): prove CLI entrypoints under real PTY (#118990)
* test(tui): cover CLI entrypoints under PTY

* test(tui): require built CLI in PTY evidence
2026-08-04 08:07:17 +08:00
Vincent Koc 2039b87d85 test(qa): cover media audio selection fallback (#118859) 2026-08-04 07:53:49 +08:00
Vincent Koc 31a6d096a1 test(qa): cover guarded media fetch boundaries (#118857) 2026-08-04 07:18:40 +08:00
Vincent Koc 9dfc74e0cb test(qa): cover music generation controls (#118901) 2026-08-04 07:12:05 +08:00
Vincent Koc 482a63337f test(qa): cover core vision routing (#118861) 2026-08-04 07:11:24 +08:00
Vincent Koc e110b56007 test(qa): cover Gateway usage and memory APIs (#118995) 2026-08-04 07:10:56 +08:00
Vincent Koc 3bbc4ad085 test(qa): cover managed gateway service lifecycle (#118855) 2026-08-04 07:07:27 +08:00
Vincent Koc dc11c78927 test(qa): cover audio proxy and limit handling (#118863) 2026-08-04 07:06:03 +08:00
Vincent Koc 1cdfe9ed7d test(qa): cover PDF extraction dispatch (#118860) 2026-08-04 07:02:00 +08:00
Vincent Koc 06b5f0b2ff test(qa): cover CLI onboarding and plugin install sources (#118882)
* test(qa): cover CLI onboarding and plugin sources

* test(qa): assert npm file plugin source

* test(qa): redact onboarding password assertion

* test(qa): retain onboarding evidence log
2026-08-04 06:54:42 +08:00
Vincent Koc ba2764a256 test(qa): cover remote logging boundaries (#118951)
* test(qa): cover remote logging boundaries

* test(qa): tolerate gateway log interleaving

* test(qa): satisfy logging type guards

* test(qa): always stop log follow child
2026-08-04 06:53:49 +08:00
Vincent Koc a492eb9068 test(qa): cover video generation invocation (#118864) 2026-08-04 06:46:09 +08:00
Vincent Koc 2e3284abaa test(qa): cover media reference intake (#118858) 2026-08-04 06:44:59 +08:00
Vincent Koc c27fb940cf test(qa): cover image generation task lifecycle (#118915) 2026-08-04 06:43:40 +08:00
Vincent Koc 2da6cb0f01 test(gateway): verify SSH tunnel fallback (#118818)
* test(gateway): cover SSH tunnel fallback

* test(gateway): expose SSH startup diagnostics

* test(gateway): permit key auth for Testbox user

* test(gateway): remove unused SSH target helper

* test(gateway): serialize shared SSH state

* test(gateway): coordinate overlapping SSH producers

* test(gateway): isolate SSH trust state

* test(gateway): require Testbox for SSH fixture
2026-08-04 06:38:23 +08:00
Vincent Koc 51f6b8f5f8 test(qa): cover health monitor and cache boundaries (#118961) 2026-08-04 06:17:16 +08:00
Vincent Koc 0483ca712b test(qa): cover runtime telemetry evidence (#118950)
* test(qa): add telemetry runtime evidence

* test(qa): fix telemetry evidence typecheck
2026-08-04 06:11:07 +08:00
Vincent Koc a2e0eea58c test(gateway): cover node exec approval relay (#118825)
Adds real Gateway QA coverage for node exec approval get/set forwarding, malformed payload rejection, and paired-node ownership fencing.
2026-08-04 06:06:25 +08:00
Vincent Koc aff3909db6 test(qa): cover diagnostic event boundary (#118844) 2026-08-04 06:01:56 +08:00
Vincent Koc 6ab556919e test(gateway): cover WebSocket runtime contracts (#118797) 2026-08-04 06:01:34 +08:00
Vincent Koc 10b4baceb3 chore(clawhub): cover plugin release policy contracts (#118971)
* test(clawhub): cover plugin release policy contracts

* test(clawhub): route release checks to policy coverage
2026-08-04 05:55:35 +08:00
Vincent Koc 95f7777b42 test(qa): cover support export and stability (#118956) 2026-08-04 05:53:13 +08:00
Vincent Koc d0194ee7e1 test(gateway): prove TLS certificate pinning (#118812)
* test(gateway): prove TLS certificate pinning

* test(gateway): fix TLS pinning proof types

* test(gateway): observe published TLS fingerprint

* test(gateway): load TLS discovery probe explicitly

* test(gateway): keep QA assertion typed
2026-08-04 05:44:00 +08:00
Vincent Koc 082e9e793e test(qa): cover tool policy and sandbox gates (#118925) 2026-08-04 05:43:33 +08:00