Commit Graph

1089 Commits

Author SHA1 Message Date
Peter Steinberger
dd42e80480 refactor(qa-lab): split mock and Slack runtimes (#107377)
* refactor(qa-lab): split mock and Slack runtimes

* refactor(qa-lab): narrow Slack helper exports
2026-07-14 04:06:48 -07:00
Dallin Romney
54d31a1306 refactor(qa): share Matrix flows across drivers (#101253) 2026-07-14 01:48:30 -07:00
Peter Steinberger
16ff48c729 refactor(time): trust pretty-ms defaults 2026-07-14 01:15:43 -07:00
Peter Steinberger
604eb6af2d refactor(concurrency): use native p-limit APIs 2026-07-13 20:23:00 -07:00
Peter Steinberger
7f73f6e66e test(qa-lab): refresh CLI dispatch expectations (#107018) 2026-07-13 19:36:17 -07:00
Peter Steinberger
44fcbc612d refactor(qa-lab): trim dead export surface (#107016)
* refactor(qa-lab): narrow report and config exports

* refactor(qa-lab): keep live test seams private

* refactor(qa-lab): remove dead runtime wrappers

* chore(deadcode): refresh QA Lab export baseline
2026-07-13 19:32:13 -07:00
Peter Steinberger
db02a96c4c refactor(process): route bounded commands through Execa (#106495)
* refactor(process): centralize bounded command execution

* refactor(process): migrate core one-shot commands

* refactor(plugins): migrate one-shot commands

* fix(process): await Windows tree termination

* chore(plugin-sdk): refresh process runtime surface

* refactor(process): migrate remaining bounded commands

* refactor(process): normalize command result handling

* refactor(process): split execution responsibilities

* chore(plugin-sdk): refresh API baseline

* chore(process): remove release-owned changelog entry

* fix(process): narrow binary command input checks

* fix(process): cap sandbox command output

* fix(qa-lab): preserve exact node probe env

* chore(ci): refresh dead export baseline

* fix(process): preserve force-kill command deadlines

* fix(process): avoid post-exit timeout reclassification

* test(process): update scp staging wrapper mock

* test(process): update remaining wrapper mocks

* refactor(qa-lab): preserve Execa tar execution
2026-07-13 11:07:35 -07:00
Peter Steinberger
11cd600c2d refactor(qa): split WhatsApp live runtime (#106547) 2026-07-13 09:31:51 -07:00
Peter Steinberger
8867a9da0b refactor(extensions): remove unused Discord and QA Lab exports (#106286)
* refactor(extensions): remove unused major-plugin exports

* refactor(qa-lab): preserve existing test seams

* chore(deadcode): regenerate export baseline

* refactor(qa-lab): share evidence environment resolver
2026-07-13 09:25:45 -07:00
Peter Steinberger
e0facfcf9a refactor(qa-lab): split web UI renderer (#106537)
* refactor(qa-lab): split web UI renderer

* refactor(qa-lab): split web UI renderer
2026-07-13 09:21:29 -07:00
xingzhou
c3cb1af93c fix(transcripts): stop live capture when the agent run is canceled (#104123)
* fix(transcripts): stop live capture when the agent run is canceled

* fix(transcripts): preserve startup cleanup ownership

* fix(transcripts): keep runtime session type internal

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 03:11:25 -07:00
Peter Steinberger
9b565e8d50 refactor(plugins): trim long-tail dead exports (#106230)
* refactor(extensions): trim long-tail plugin exports

* refactor(whatsapp): remove dead media relay
2026-07-13 02:34:06 -07:00
Peter Steinberger
a788617325 fix(qa-lab): report authoritative Crabline readiness artifact (#106039)
* fix(qa-lab): preserve readiness artifact path

* test(qa-lab): keep readiness fixture in generation

* docs(qa-lab): explain readiness fallback order

* style(qa-lab): format readiness fixture

* refactor(qa-lab): isolate Crabline artifact paths

* refactor(qa-lab): keep artifact path type local

* fix(qa-lab): remove stale Crabline type import

* fix(qa-lab): restore Crabline selection type import
2026-07-13 01:55:12 -07:00
Peter Steinberger
1136757174 refactor: consolidate bounded concurrency on p-limit and p-map (#106002)
* refactor: adopt p-limit and p-map for bounded concurrency

* chore: normalize lockfile ordering

* fix: preserve memory host concurrency export

* refactor: keep media apply within size budget

* fix: drain memory concurrency before failure

* fix: satisfy memory concurrency guards

* chore: scope memory host dead-code checks

* chore: lower concurrency LOC baselines

* fix: preserve concurrency API surfaces

* chore: reconcile concurrency LOC baseline

* test: keep memory concurrency gate portable

* style: simplify concurrency drain

* ci: refresh deadcode export baseline
2026-07-13 01:53:28 -07:00
Peter Steinberger
2237196871 refactor(extensions): remove dead QA and utility exports (#105914)
* refactor(extensions): remove dead QA and utility exports

* refactor(extensions): trim Matrix QA internal exports

* chore(deadcode): refresh extension export baseline

* chore(ci): reconcile deadcode and LOC baselines

* chore(deadcode): refresh baseline after main advance

* chore(deadcode): refresh baseline after main advance

* refactor(plugins): keep channel snapshot type private

* fix(ci): align Linux deadcode baseline
2026-07-13 00:34:46 -07:00
Peter Steinberger
adf6b08ab4 refactor: consolidate duration parsing and formatting (#105988)
* refactor: consolidate duration handling

* docs: leave release notes to release workflow

* fix: preserve build timing precision

* ci: align plugin sdk surface budgets
2026-07-12 23:38:22 -07:00
Peter Steinberger
a5883c33d1 refactor: use semver package for version ordering (#105944)
* refactor: use semver package for version ordering

* refactor: centralize semver validation

* chore: keep release notes in PR body

* refactor: update semver LOC ratchet
2026-07-12 23:02:25 -07:00
Vincent Koc
a778f891fa fix(ci): repair main validation regressions (#106037) 2026-07-13 13:37:53 +08:00
Peter Steinberger
bd7f3cffd3 fix(ci): stabilize QA and UI validation (#106061) 2026-07-12 22:34:38 -07:00
Josh Avant
bb75950159 fix(worktrees): normalize dashed base refs (#104105) (#106048) 2026-07-13 00:34:26 -05:00
Peter Steinberger
b9f0246765 feat(plugin-sdk): add shared HTML escaping seam (#105975) 2026-07-12 22:33:53 -07:00
Peter Steinberger
d9623bd46f fix(qa-lab): consume Crabline 0.1.11 artifacts (#105983)
* fix(qa-lab): consume Crabline 0.1.11 artifacts

* style(qa-lab): keep Crabline path note compact

* test(qa-lab): align Telegram scenario with group transport
2026-07-12 21:29:31 -07:00
Peter Steinberger
0d90ca6b5d refactor(config): retire flat and scalar streaming keys from matrix, feishu, and qqbot (#105808)
* feat(doctor): migrate legacy matrix/feishu/qqbot streaming spellings to nested config

* test(matrix): shorten setup fixture tokens below the review secret-scanner threshold

* refactor(config): retire flat/scalar streaming keys from matrix, feishu, and qqbot

* docs: describe nested-only streaming config for matrix, feishu, and qqbot

* fix(qa-matrix): compose nested streaming config for the matrix QA harness

* test(feishu): compose negative webhook fixtures outside the GHSA opengrep pattern

* docs: refresh generated docs map

* test(feishu): compose negative webhook fixtures from lint-clean bases outside the GHSA opengrep pattern

* fix(qa-lab): rewrite crabline flat streaming config into the nested channel shape

* chore(config): regenerate channel config metadata and plugin-sdk API baseline for nested-only streaming

* chore(plugin-sdk): absorb main-side deprecated pairing/conversation pin drift

* fix(qa-lab): consume Crabline nested streaming config
2026-07-12 20:33:14 -07:00
Vincent Koc
f26793ca54 refactor(qa-lab): trim process metric parser exports (#105891) 2026-07-13 10:42:29 +08:00
Peter Steinberger
fe0a6db2b4 fix(slack): warn on disabled channel drops (#105790) 2026-07-12 17:50:14 -07:00
Peter Steinberger
619a68e97e fix(qa): repair agentic runtime parity mocks (#105500)
* fix(qa): repair agentic runtime parity mocks

* fix(qa): scope terminal media parity evidence

* fix(qa): require one image call for media fallback

* fix(qa): bind terminal media proof to image step

* fix(qa): require image capture agreement

* fix(qa): allow skipped parity steps
2026-07-12 19:53:05 +02:00
Peter Steinberger
2d86d07f73 test(discord): verify identity probe deadline behavior (#105541)
* test(discord): verify identity probe deadline behavior

* test(discord): keep timeout rejection message agnostic
2026-07-12 18:33:50 +01:00
Peter Steinberger
9ebf9a2e89 fix(qa-lab): tuple-narrow Slack progress markers in live test types
#103995 added mutate callbacks that destructure the marker array; under
indexed-access checking string[] elements are string | undefined, failing
check-test-types on main and every PR. The some() guard already proves all
three markers exist, so narrow to a tuple.
2026-07-12 10:01:43 -07:00
efrazer-oai
d09d200293 fix(slack): show commentary independently of tool progress (#103995)
* fix(slack): separate commentary progress from tools

* fix(slack): preserve legacy preamble defaults

* test(slack): add live commentary progress proof

* fix(slack): support scoped progress drafts

* test(slack): harden commentary progress proof

* test(slack): type commentary matrix cases

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 17:52:53 +01:00
Peter Steinberger
a24eab8488 fix(qa): read runtime parity transcripts from sqlite (#105495)
* fix(qa): read runtime parity transcripts from sqlite

* test(qa): track parity temp directories

* docs(agents): note PR head refresh sequence
2026-07-12 16:48:35 +01:00
Peter Steinberger
30cc87a8a6 test(qa): model Codex compaction in parity mock (#105493)
* test(qa): model codex compaction in parity mock

* docs(agents): record gh branch lookup syntax
2026-07-12 16:37:39 +01:00
Peter Steinberger
3b0d3574e3 fix(qa): keep mock memory embeddings offline (#105488) 2026-07-12 16:28:46 +01:00
Peter Steinberger
a97300bad8 fix(qa): preserve Codex mock routing (#105444)
* fix(qa): preserve Codex mock routing

* fix(qa): satisfy extension lint
2026-07-12 15:25:07 +01:00
Peter Steinberger
7ca827eba2 fix(qa): align mock catalog with selected models (#105401)
* fix(qa): align mock catalog with selected models

* test(qa): verify selected refs reach mock server
2026-07-12 15:21:19 +01:00
Vincent Koc
96aff2787d fix(qa): secure Crabline artifact handling 2026-07-12 13:58:30 +02:00
Peter Steinberger
81941f2d68 test: enable noUncheckedIndexedAccess for extension tests (#105343) 2026-07-12 12:48:22 +01:00
Vincent Koc
871a92e5d9 fix(qa): use graceful Matrix replay restart (#105317) 2026-07-12 13:18:27 +02:00
Vincent Koc
2148c3bf7e fix(active-memory): restore SQLite recall sessions (#105255)
* fix(qa): seed memory scenarios through SQLite

* fix(active-memory): initialize SQLite recall sessions

* test(active-memory): model missing harness reservation

* fix(active-memory): clean up transient recall sessions

* fix(active-memory): isolate concurrent recall sessions

* fix(active-memory): discard transient SQLite recalls

* fix(active-memory): preserve transient recall boundaries

* fix(active-memory): retry transient recall cleanup

* fix(active-memory): always clean transient recall workspaces

* chore: drop release-owned changelog entry
2026-07-12 18:29:23 +08:00
Peter Steinberger
204d2b176a refactor(agents): compress model prompts and tool instructions (#105095)
* refactor(agents): compress model prompt instructions

* test(agents): align compact prompt assertions

* test(gateway): align compact message prompt assertion

* chore(plugin-sdk): refresh prompt overlay API baseline

* docs(changelog): note prompt instruction compaction

* test(agents): align compact prompt contracts

* test(agents): align CLI prompt contracts

* style(agents): format CLI prompt tests

* fix(qa): prioritize shadow trial workflow

* test(agents): refresh rebased prompt snapshots
2026-07-12 09:45:30 +01:00
Peter Steinberger
218dcd815a feat(tooling): enforce noUncheckedIndexedAccess in the extensions lane (NUIA phase 4) (#105132)
* fix(extensions): make indexed access explicit across channel plugins

Transport-payload-safe burn-down: malformed Telegram/Discord/QQ/LINE
and sibling channel input keeps existing skip paths; no synthesized
fields, no new throws in delivery loops. Zalo escape sentinels preserve
literal matches instead of undefined replacements.

* fix(extensions): make indexed access explicit across provider and memory plugins

Stream and model iteration, tool-block guards, capture guards, and
sparse accumulators; singleton model reads carry named invariants.

* fix(extensions): make indexed access explicit across tooling plugins, flip the extensions lane

Remaining plugins (oc-path, qa-lab, browser, logbook, and siblings) plus
the tsconfig.extensions.json flag flip. Cleanup: logbook sampleFrames
NaN index at max=1, QA retry clamp at non-positive attempts, dead Canvas
probe and OpenShell no-op slice removed, twitch test setup leak excluded
from the prod lane.

* refactor(plugin-sdk): expose expectDefined via a focused SDK subpath

Extensions imported @openclaw/normalization-core directly, crossing the
external-plugin packaging boundary (it only worked because the runtime
builder bundles undeclared workspace helpers). expect-runtime joins the
canonical entrypoints JSON, generated exports, API baseline, docs, and
subpath contract test; all 78 extension imports now use the SDK seam.
Two scanner-shaped locals renamed for review-bundle hygiene.

* chore(plugin-sdk): raise surface budgets for the expect-runtime subpath

One new entrypoint with one callable export, added intentionally as the
packaging-honest seam for extension invariant helpers.
2026-07-12 09:17:31 +01:00
Peter Steinberger
1a946dba78 test(qa): cover repeated live restart recovery (#105126) 2026-07-12 09:03:54 +01:00
Vincent Koc
cf33f5aa02 fix(qa): force Codex runtime for Slack approvals 2026-07-12 15:43:58 +08:00
Vincent Koc
4d15c47e9f fix(qa): keep runtime parity lanes reproducible 2026-07-12 15:10:38 +08:00
Vincent Koc
d36d543ed4 fix(qa): recognize typed Slack approval actions 2026-07-12 15:10:38 +08:00
Vincent Koc
48bda3197b test(qa): validate debug request cursor 2026-07-12 08:18:34 +02:00
Vincent Koc
bdc9c6070d fix(qa): add stable mock request cursors 2026-07-12 08:18:34 +02:00
Peter Steinberger
d14bb8ec44 fix: resume replay-safe work after gateway restarts (#104997)
* fix: resume replay-safe work after gateway restart

* chore: leave restart note to release process

* fix: sync restart recovery protocol artifacts
2026-07-12 06:37:22 +01:00
Vincent Koc
b67417909b refactor: remove dead core and extension exports (#104963)
* refactor(agents): remove obsolete exec eligibility helper

* refactor(diffs): internalize viewer-only state

* refactor(qa-lab): internalize implementation helpers
2026-07-12 13:06:23 +08:00
Vincent Koc
4040267af9 fix(qa): run mixed channel suites 2026-07-12 06:51:59 +02:00
Vincent Koc
5d03825597 refactor(qa): isolate scenario command lifecycle (#104958) 2026-07-12 12:27:29 +08:00