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