Commit graph

1007 commits

Author SHA1 Message Date
wangmiao0668000666
6433b82723
fix(qa-lab): surface gateway child stream failures (#102104)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-09 10:28:32 +01:00
Vincent Koc
238be4b849
test(release): refresh beta3 gate expectations 2026-07-08 15:55:50 -07:00
Vincent Koc
757d7a0de3
refactor(qa-lab): localize orchestration declarations (#102005) 2026-07-07 20:50:07 -07:00
Vincent Koc
082bd45130
refactor(qa-lab): localize utility types (#101990) 2026-07-07 20:20:53 -07:00
Vincent Koc
a24f15dc4d
refactor(qa-lab): localize evidence summary schemas (#101987) 2026-07-07 20:09:00 -07:00
Vincent Koc
7498c4dd6c
refactor(qa-lab): localize confidence report types (#101980) 2026-07-07 19:54:03 -07:00
Vincent Koc
e242c61400
refactor(deadcode): localize extension helpers (#101860) 2026-07-07 12:12:32 -07:00
Vincent Koc
fdc7892a6e
refactor: localize internal implementation types (#101731) 2026-07-07 07:41:04 -07:00
xingzhou
de152b1f65
fix(plugin-sdk): align speech runtime packaging (#89899)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-07 07:38:41 +01:00
Dallin Romney
3175d8e742
refactor(qa): drive Matrix lifecycle through channel drivers (#101055)
* test(matrix): add substrate lifecycle contract

* fix(matrix): satisfy lifecycle dependency gates

* refactor(matrix): keep Crabline lifecycle in adapter

* refactor(qa): select Matrix lifecycle by driver lane

* refactor(matrix): keep lifecycle helpers test-only

* refactor(qa): drive Matrix lifecycle through channel drivers
2026-07-06 23:13:21 -07:00
cxbAsDev
08349608f2
QA-lab credentials-admin response bound (#101131)
* fix(qa-lab): bound credentials admin response reads

* test(qa-lab): verify streamed response cancellation

Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com>

* test(qa-lab): satisfy cleanup callback lint

Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-07 04:56:07 +01:00
Ayaan Zaidi
107a9d6d9b fix(qa-lab): skip runtime-context carrier in mock last-user matching 2026-07-06 20:34:01 -07:00
Dallin Romney
253b784468
test(qa): use qa flow for channel routing scenarios (#101076)
* test(qa): canonicalize channel routing scenarios

* test(qa): enforce Crabline actor allowlists

* test(qa): preserve canonical flow integration

* test(matrix): use retained topology fixture id

* test(qa): preserve WhatsApp live defaults

* QA: declare channel transport policy in scenarios

* refactor(qa): keep transport policy type local

* refactor(qa): keep transport policy on leaf contract

* test(matrix): use retained routing fixture
2026-07-06 18:35:41 -07:00
Dallin Romney
c1b9e36221
test(qa): migrate channel thread and DM isolation scenarios (#101112)
* test(qa): migrate channel thread isolation scenarios

* test(qa): remove stale Matrix scenario fixture

* test(qa): use canonical coverage taxonomy ids

* test(qa): preserve Matrix flow runtime identities

* test(qa): expose Slack thread polling helper

* test(qa): select Matrix for native thread smoke

* test(qa): keep Matrix subagent spawn opt-in

* test(qa): target selected live account in scenario patches
2026-07-06 17:52:38 -07:00
Peter Steinberger
aed2482292
fix(qa): restore automatic smoke coverage across channels (#101186)
* fix(qa): restore channel-sharded smoke coverage

Co-authored-by: Peter Steinberger <steipete@gmail.com>

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

* fix(qa): restore channel-sharded smoke coverage

* fix(qa): restore channel-sharded smoke coverage

* fix(qa): restore channel-sharded smoke coverage

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: Dallin Romney <dallinromney@gmail.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-06 17:09:40 -07:00
Dallin Romney
95e3b9243b
test: execute media and Talk runtime boundaries (#101091)
* test: execute media and Talk runtime boundaries

* test(qa): centralize gateway fixture startup

* test(qa): check in voice call plugin fixture
2026-07-06 16:25:33 -07:00
Dallin Romney
19491fe34c
Revert "fix(qa): keep smoke profile on one channel (#101173)" (#101184)
This reverts commit b773f7981a.
2026-07-06 13:29:07 -07:00
Dallin Romney
b773f7981a
fix(qa): keep smoke profile on one channel (#101173) 2026-07-06 13:26:58 -07:00
Dallin Romney
66b4dcf184
chore(docker): execute Compose and package artifact proofs (#101045)
* test(docker): prove Compose and package artifacts

* test(docker): use bounded container cleanup

* test(docker): bound package proof launch

* test(qa): keep Docker artifact proofs release-only

* test(docker): simplify artifact proof names

* test(docker): satisfy identity writer lint
2026-07-06 13:05:34 -07:00
Dallin Romney
2f7299eaa5
test(qa): add provider runtime evidence (#101051) 2026-07-06 13:01:32 -07:00
Vincent Koc
e75223286d
fix(qa): require live channel driver for access-gate scenarios 2026-07-06 21:34:27 +02:00
Dallin Romney
e3671e0980
refactor(qa): canonicalize channel command scenarios (#101080)
* test(qa): migrate channel command scenarios

* test(qa): distinguish portable command headings

* test(qa): preserve canonical scenario ownership
2026-07-06 12:18:06 -07:00
Dallin Romney
627f6988a0
test(qa): migrate restart and policy scenarios to yaml (#101063) 2026-07-06 11:50:16 -07:00
Dallin Romney
b29d472e41
refactor(qa): add canonical live channel adapters (#99707) 2026-07-06 09:24:34 -07:00
Vincent Koc
c3501761da
test(qa): allow deleted progress in private final check 2026-07-06 05:49:48 -07:00
Vincent Koc
17777b3a9f
refactor: remove proven dead code across runtime surfaces (#100823)
* refactor: remove unused internal helpers

* refactor(ui): remove unused compatibility helpers

* refactor(android): remove unused talk cleanup shim

* refactor(android): remove orphaned legacy UI

* refactor: remove unused private exports

* refactor(docs-i18n): remove dead matcher and satisfy lint
2026-07-06 03:31:19 -07:00
NIO
3b189dfd34
fix(qa-lab): bound Telegram live transport JSON response reads (#99151)
* fix(qa-lab): bound Telegram live transport JSON response reads

* fix(scripts): satisfy oxlint in qa-lab telegram bound proof

* chore: drop local proof script from qa-lab telegram bound PR

---------

Co-authored-by: NIO <nocodet@mail.com>
2026-07-06 00:59:59 -07:00
Peter Steinberger
20e6983bed
fix(gateway): avoid default provider auth startup prewarm (#100667)
* fix(gateway): avoid default provider auth startup prewarm

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

* docs(changelog): credit provider auth startup fix

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-06 07:32:13 +01:00
Gorkem Erdogan
39916560e4
improve(auto-reply): render chat history since last reply as per-message prose (#100366)
* fix(auto-reply): render chat history since last reply as per-message prose

The inbound chat-history block dumped batched history as a raw JSON array, which models read poorly compared to the chat-window block's per-message prose. Reuse the existing formatChatWindowMessage renderer for history entries so both blocks share one shape, keep the untrusted framing label, and keep media rendered as a bare content-type tag so local paths and URLs stay redacted. Teach the metadata stripper to consume the new prose block form.

* fix(auto-reply): preserve every media content type in chat-history prose

The prose chat-history renderer only forwarded the first attachment's
content type per history message, dropping the rest for entries with
multiple media items. Join all bounded content types instead, and
regenerate the prompt snapshot fixture this changes.

* test(qa-lab): accept prose pending history

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-06 03:59:29 +01:00
Gorkem Erdogan
e7c0673fc5
fix(slack): react action rejects emoji glyphs; member-info userId affordance unclear (#100375)
* fix(slack): normalize react emoji glyphs and clarify member-info userId param

Slack's reactions.add/remove only accept shortcode names, never a raw
Unicode glyph, but the react action's emoji param had no description
steering models away from passing one, so calls like
emoji="" failed with invalid_name. Consolidates the glyph-to-shortcode
map that already existed privately in the ack-reaction dispatch path into
the shared normalizeSlackEmojiName export in actions.ts, the layer that
owns the actual Slack API calls, so the message-tool react action gets the
same normalization.

Also tightens the generic userId param description so models stop trying
target on member-info, which has no target mode and requires userId
directly.

* fix(slack): preserve emoji reaction semantics

* fix(slack): default reactions to inbound message

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-06 00:15:32 +01:00
Kevin Lin
5fdaa04eca
feat(qa-lab): add Codex Slack approval scenarios (#91519)
* feat(qa-lab): add codex slack approval scenarios

* fix(qa-lab): harden Codex Slack approval proof

* fix(qa-lab): validate Codex approval model

* test(qa-lab): verify approved Codex operation

* fix(qa-lab): normalize Slack QA account routing

* fix(qa-lab): read Codex tool result transcripts

* fix(qa-lab): harden Codex approval cleanup

* fix(qa-lab): support Codex Mantis checkpoints

* fix(qa-lab): repair Mantis pnpm bootstrap

* fix(qa-lab): normalize Codex tool result text

* fix(qa-lab): scope Mantis pnpm fallback

* fix(qa-lab): bootstrap pinned pnpm without npm

* fix(qa-lab): terminate pnpm metadata record

* fix(qa-lab): bootstrap official node for mantis

* fix(qa-lab): make mantis pnpm shim executable

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-05 22:47:18 +01:00
Peter Steinberger
c757675f34
improve: keep isolated tests under one second (#100019)
* test: speed up isolated test suite

* test: finish isolated latency cleanup

* test: eliminate remaining isolated latency spikes

* test: remove final isolated timing outliers

* test: bound full-suite tooling processes

* test: bound native test process lifetime

* test: warm isolated runtime suites

* test: eliminate final isolated timing outliers

* test: fix isolated timing fixture types

* test: make timeout cleanup timing deterministic

* test: pin media manifests to source checkout

* test: isolate provider manifest contracts

* test: eliminate residual isolated timing spikes

* test: restore final isolated timing fixes

* test: eliminate remaining isolated timing spikes

* test: warm Zalo lifecycle imports

* test: keep isolated suites below one second

* test: use readable browser response fixtures
2026-07-05 10:57:19 -07:00
Vincent Koc
a308e3b834
fix(qa): serialize channel-driver isolated smoke workers 2026-07-05 17:33:28 +02:00
Peter Steinberger
1f484a8dbd test: speed up and stabilize full suite 2026-07-05 08:00:23 -04:00
Peter Steinberger
d467ac56c3
fix(qa): retry a failed flow scenario once before failing the suite
Live-model flow lanes (QA Smoke CI) flake on model latency spikes: step
timeouts and agent.wait timeouts failed 8 consecutive smoke runs on unrelated
scenarios, including main's own push CI. A first failure now gets one bounded
rerun; a retried pass keeps the first attempt visible in details, and a retry
failure keeps the original diagnostics so deterministic regressions still fail.
2026-07-05 10:06:00 +01:00
ooiuuii
1e7694a8a5
fix(whatsapp): serialize overlapping Web sends (#99050)
* fix(whatsapp): serialize web sendMessage calls

* fix(whatsapp): make send serialization socket-owned

* test(qa): narrow live gateway connection fields

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-05 02:32:36 -04:00
NIO
b4f09fe7fa
fix(qa-lab): bound suite runtime gateway JSON response reads (#99165)
Summary:
- The PR replaces QA Lab suite gateway `fetchJson` success-path `response.json()` with shared `readProviderJsonResponse` and adds an oversized-response regression test.
- PR surface: Source +1, Tests +33. Total +34 across 2 files.
- Reproducibility: yes. Current main still has the unbounded `response.json()` success path in `fetchJson`, an ... l proof for oversized streamed bodies, early cancellation, normal parsing, and the focused regression test.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(scripts): satisfy oxlint in qa-lab suite gateway bound proof
- PR branch already contained follow-up commit before automerge: fix(qa-lab): bound suite runtime gateway JSON response reads
- PR branch already contained follow-up commit before automerge: chore: drop local proof script from qa-lab gateway bound PR

Validation:
- ClawSweeper review passed for head 8c0eb49fcbffeab6048aa2a4f6592886e891c674.
- Required merge gates passed before the squash merge.

Prepared head SHA: 8c0eb49fcbffeab6048aa2a4f6592886e891c674
Review: https://github.com/openclaw/openclaw/pull/99165#issuecomment-4868175663

Co-authored-by: NIO <nocodet@mail.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
2026-07-05 02:16:25 +00:00
Dallin Romney
dc3b5df684
refactor(types): remove redundant local aliases (#100061)
* refactor(models): remove redundant generation model ref alias

* refactor(types): remove redundant local aliases

* refactor(types): preserve shipped model ref type
2026-07-04 16:34:47 -07:00
Shakker
65e12328aa
feat: refactor the Control UI architecture
Refactor the Control UI around route-owned page lifecycle and state while preserving existing behavior and design.

Prepared head SHA: bd51b6fa76ec057fde19bc31f93fb4aad70416d3
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com>
Reviewed-by: @shakkernerd
2026-07-04 23:19:38 +01:00
Peter Steinberger
614e87cce1
chore: update dependencies (#100027) 2026-07-04 14:56:50 -04:00
Dallin Romney
9d68f877ac
test(qa): run gateway and MCP scenarios over real transports (#99735) 2026-07-03 20:26:16 -07:00
Dallin Romney
19035bdca1
fix(qa): avoid startup prewarm contention (#99368) 2026-07-03 20:14:58 -07:00
Dallin Romney
24f654e065
fix(qa): isolate script scenarios from flow gateways (#99736) 2026-07-03 18:25:44 -07:00
Dallin Romney
ab9e233d02
improve(qa): execute runtime scenarios through Docker (#99705)
* test(qa): run Docker runtime scenarios end to end

* test(qa): keep plugin lifecycle probe runtime-only
2026-07-03 18:13:28 -07:00
Vincent Koc
bc802ceee1
test(qa): loosen mac script timeout harness 2026-07-04 03:06:25 +02:00
Vincent Koc
f53fdb688d
fix(qa): restore package docker gates 2026-07-04 01:56:21 +02:00
Dallin Romney
1ab021fba9
fix(qa): consume Crabline events without recorder polling (#99679)
* fix(qa): consume Crabline events in process

* chore(qa): use Crabline 0.1.9
2026-07-03 16:15:03 -07:00
Dallin Romney
04601ae81a
refactor(qa): simplify transport adapter contracts (#99632)
* feat(qa): add transport capability contracts

* fix(qa): scope sequence support by channel

* refactor(qa): simplify transport adapter contracts

* fix(qa): clarify unsupported transport method errors
2026-07-03 15:54:27 -07:00
Dallin Romney
677c8ff846
improve: enforce canonical QA scenario ownership (#99628)
* improve: enforce canonical QA scenario ownership

* docs: refresh QA documentation map

* docs: condense QA ownership guidance

* docs: remove QA migration guidance

* refactor: simplify QA scenario ownership checks

* docs: align QA coverage authoring guidance
2026-07-03 15:51:18 -07:00
Dallin Romney
1cab479f78
fix(qa): defer partial Crabline recorder rows (#99649) 2026-07-03 15:20:47 -07:00