Commit Graph

60 Commits

Author SHA1 Message Date
Peter Steinberger c70aee247e refactor(scripts): migrate JavaScript tools to TypeScript (#121005)
* refactor(scripts): migrate JavaScript tools to TypeScript

* fix(ci): keep changed-scope preflight zero-install

* fix(ci): preserve zero-install script owners

* fix(ci): complete script migration follow-through

* fix(release): keep stable closeout zero-install

* fix(scripts): preserve standalone execution boundaries

* fix(scripts): repair standalone loader boundaries

* fix(scripts): normalize gateway observation ids

* fix(scripts): keep Docker packager standalone

* test(scripts): preserve rebase cleanup helpers

* test(sessions): use tracked temp directory
2026-08-09 07:21:35 -07:00
Dallin Romney 33ea7ffa54 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>
2026-08-08 15:11:03 -07:00
Vincent Koc 49161dee60 fix(release): unblock deferred Telegram beta validation (#120630)
* fix(release): allow deferring package Telegram validation

* fix(qa): mount taxonomy in package Telegram harness

* fix(release): restrict Telegram deferral to beta
2026-08-09 01:03:02 +08:00
Vincent Koc 2013123472 fix(release): isolate private Telegram QA harness (#120088) 2026-08-07 10:03:14 +08:00
Peter Steinberger 9b8e50b9f6 refactor(scripts): consolidate redundant tooling paths (#118259) 2026-08-02 16:20:09 -07:00
Peter Steinberger d16e33e08e fix: restore trustworthy end-to-end QA and cross-channel delivery (#115404)
* fix(qa): repair verified end-to-end and channel regressions

* fix(gateway): make interrupted restart recovery lifecycle-safe

* test(heartbeat): target the canonical recovery session store

* fix(gateway): prioritize durable restart recovery before heartbeat

* fix(qa): preserve safe restart recovery and channel expiry

* fix(qa): fail closed and fence restart recovery

* test(agents): isolate restart recovery timing

* test(agents): prove actual restart retry timing

* fix(qa): report incompatible profile scenarios

* fix(scripts): resolve symlinked docker scheduler entrypoints

* fix(qa): require fresh native test evidence

* fix(heartbeat): fence active restart recovery delivery

* fix(gateway): consume untargeted restart acknowledgements

* fix(qa): satisfy exhaustive hosted validation gates

* fix(agents): fence stopped restart recovery dispatch

* style(agents): format restart recovery lifecycle regression

* test(gateway): isolate context prewarm sidecar lifecycle

* test(qa): make scenario process timeout cleanup deterministic

* fix(qa): stamp synthetic gateway configs with current version

* fix(openai): preserve vision capabilities in stale model catalogs

* test(qa): align profile channel rejection with current main

* fix(openai): forward supported moderation for image edits

* fix: restore latest-main CI and image edit documentation

* fix(qa): retain relocated code-mode evidence validation

* fix(openai): expose GPT-5.4 vision in static catalog

* fix(pricing): honor explicit model cost overrides

* test(pricing): keep isolated provider regressions deterministic

* fix(openai): inherit transport for discovered static models

* fix(gateway): honor agent-owned static image capabilities

* test(gateway): preserve prepared-snapshot attachment races

* test(gateway): isolate subagent persistence failure injection

* test(gateway): exercise concurrent voice replay admission

* fix(gateway): restore stale model image capabilities

* fix(agents): publish configured model vision capabilities

* fix(agents): isolate detached media transcript ownership

* test(agents): preserve generic transcript lock regression

* fix(gateway): require proven static model route identity

* fix(qa): accept bounded full-size generated image attachments

* fix(qa): require fresh script producer evidence

* test(qa): prove native E2E scenario execution
2026-07-29 12:45:27 -04:00
Peter Steinberger 84f5d6d978 fix(release): persist streamed Telegram result metadata 2026-07-17 22:11:23 +01:00
Peter Steinberger e7801deb57 fix(release): fail fast on flaky beta QA 2026-07-17 21:55:27 +01:00
Peter Steinberger 78b489ec89 test(release): align synthetic credential assertion 2026-07-17 21:55:27 +01:00
Peter Steinberger 509f5d3409 fix: bound npm fixture upstream response bodies (#108960)
* test: bound npm fixture upstream responses

* test: auto-clean npm fixture temp dirs

* style: format npm fixture assertion test

* test: simplify plugin fixture temp cleanup
2026-07-16 04:53:43 -07:00
Peter Steinberger 154d1277e1 fix(qa): repair package Telegram harness boundaries (#108499)
* fix(qa): keep packaged entry off private transport

* fix(qa): lazy-load private transport runtime

* fix(qa): pass relative package artifact path

* fix(qa): isolate packaged bus protocol

* fix(qa): mount package scenario catalog
2026-07-15 19:24:55 -07:00
Peter Steinberger 484ad52f37 fix(qa): keep package harness off private runtime (#108476) 2026-07-15 15:23:01 -07:00
Peter Steinberger 3ee408b7b5 fix(qa): isolate Crabline from package live lanes (#108472)
* fix(qa): isolate Crabline from package live lanes

* fix(qa): narrow optional smoke runtime

* ci(release): avoid unrelated Crabline install
2026-07-15 15:09:07 -07:00
Peter Steinberger f2fa99a414 fix(ci): install Crabline for package Telegram harness (#108468) 2026-07-15 14:41:04 -07:00
Dallin Romney 77d07dc3e9 refactor(qa): migrate Telegram scenarios into QA Lab (#108430)
* refactor(qa): migrate Telegram scenarios into QA Lab

* refactor(qa): remove retired Telegram runner exports
2026-07-15 12:55:00 -07:00
Vincent Koc 2a1d6e49d5 fix(ci): run Telegram release QA from trusted harness (#103207)
* fix(ci): use trusted Telegram QA harness

* fix(ci): restrict trusted Telegram QA candidate

* fix(ci): isolate trusted Telegram QA candidate

* fix(ci): harden Telegram QA process boundary

* fix(ci): pass Telegram QA release gates

* test(qa): stub Telegram env explicitly

* fix(ci): harden Telegram release QA boundary

* test(ci): harden trusted workflow and memory guards
2026-07-10 11:32:24 -07:00
Vincent Koc 0535679083 fix(release): validate exact prepared npm package sets (#102759)
* fix(release): validate prepared npm package sets

Forward-port the beta3 package-set preflight, Telegram, and Parallels validation to main while preserving main's existing Bun install smoke. Recompute decoded proxy response lengths and require artifact tarballs to exactly match the verified manifest.

* fix(release): lock fixture registry proxy origin
2026-07-09 05:19:24 -07:00
Vincent Koc 67b26126ce fix(qa): avoid direct smoke artifact collisions 2026-06-23 11:29:24 +02:00
Ayaan Zaidi b3a422d987 fix(qa): mount Telegram package output dir
Mount the configured package Telegram output directory into the Docker runtime and pass the container path to the harness, avoiding host `/home/runner` paths inside Docker.

Proof:
- pnpm test test/scripts/npm-telegram-live.test.ts
- git diff --check
- https://github.com/openclaw/openclaw/actions/runs/27685093647
2026-06-17 16:59:35 +05:30
Ayaan Zaidi 02330f372c fix(qa): use writable tmp in Telegram package runner
Set TMPDIR=/tmp inside the package Telegram Docker runner so runtime scratch files are written to a writable container path.

Proof:
- pnpm test test/scripts/npm-telegram-live.test.ts
- git diff --check
2026-06-17 16:45:34 +05:30
Dallin Romney 1affe4fcdf Fold Telegram RTT sampling into live QA evidence (#92550)
* refactor(qa): fold telegram rtt into live evidence

* test: default package telegram rtt samples

* refactor(qa-lab): fold telegram rtt into live evidence

* fix(qa-lab): keep package telegram rtt optional for focused runs

* fix(qa-lab): avoid stale rtt evidence on failed samples

* fix(qa-lab): pass telegram live env into credential leasing

* fix(qa-lab): update telegram canary remediation artifacts

* docs(qa): remove stale telegram observed artifact guidance

* fix(qa-lab): clarify telegram empty-reply remediation

* fix(qa-lab): honor telegram rtt timeout

* ci(qa): drop stale telegram capture env

* refactor: align telegram evidence coverage fields

* fix: ignore stale telegram observed artifacts

* fix: preserve telegram rtt coverage mapping

* fix: omit unused telegram rtt catch binding

* docs: document telegram rtt check selector
2026-06-14 17:02:33 +08:00
Dallin Romney 4809ac70fa Add QA evidence artifact output (#91484)
* feat: add qa evidence summary normalization

* chore: rename qa evidence target environment

* chore: align qa evidence profile terminology

* chore: align qa evidence summary fields

* chore: add qa evidence taxonomy ref

* test: remove stale multipass evidence example

* test(qa): normalize vitest and playwright evidence

* test(qa): slim evidence summary metadata

* test(qa): clarify evidence summary inputs

* test(qa): rename scenario specs in evidence flow

* test(qa): treat evidence profiles as mapping strings

* test(qa): use neutral evidence test identity

* test(qa): nest evidence summary joins

* refactor(qa): normalize live evidence summaries

* fix(qa): accept normalized telegram rtt summaries

* fix(qa): normalize evidence lane summaries

* fix(qa): align evidence summaries with requirements

* refactor(qa): tighten evidence summary builders

* refactor(qa): restore standard evidence ids

* fix(qa): keep legacy summaries out of rtt evidence

* refactor(qa): make package evidence provenance explicit

* test(qa): keep script tests out of qa lab internals

* refactor(qa): rename scenario evidence definitions

* refactor(qa): clean evidence summary wording

* test(qa): fix evidence summary test inputs

* refactor(qa): simplify evidence identity fields

* refactor(qa): tighten evidence summary inputs

* refactor(qa): rename evidence artifact
2026-06-12 16:12:58 -07:00
Vincent Koc be617fdd62 fix(e2e): bound telegram docker logs 2026-06-07 11:54:47 +02:00
Vincent Koc 03ae553ecd fix(e2e): bound telegram package logs 2026-06-07 07:46:26 +02:00
Vincent Koc 51848de462 fix(test): gate package telegram on summary failures 2026-06-07 02:57:24 +02:00
Peter Steinberger 58c663920d docs: document script tests 2026-06-04 20:49:50 -04:00
Val Alexander 529282dcff fix(ui): harden Workboard dialog accessibility
Harden Workboard modal and drawer accessibility.

Summary:
- Add Workboard dialog focus lifecycle handling for initial focus, Tab/Shift+Tab containment, Escape close, and opener restore.
- Mark Workboard background content inert/aria-hidden while modal or drawer dialogs are active.
- Add focused unit and Chromium browser smoke coverage for the audited modal/drawer accessibility requirements.
- Keep UI browser test aliases able to resolve shared workspace packages used by the Workboard view.

Verification:
- node scripts/run-vitest.mjs ui/src/ui/views/workboard.test.ts
- node scripts/run-vitest.mjs ui/src/ui/views/workboard.browser.test.ts
- (cd ui && pnpm exec vitest run --config vitest.config.ts --project browser src/ui/views/workboard.browser.test.ts)
- GitHub checks green at 6557012430
2026-06-03 06:14:40 -05:00
Vincent Koc 5820378b90 fix(e2e): isolate telegram package artifacts 2026-06-03 09:43:16 +02:00
Vincent Koc 698c40ef9d fix(e2e): bound telegram live hot path 2026-05-27 04:29:06 +02:00
Vincent Koc 130464e797 fix(docker): bound telegram npm installs 2026-05-27 00:53:53 +02:00
Vincent Koc 2fcf990cee fix(e2e): support plain telegram install timeouts 2026-05-26 22:03:50 +02:00
Vincent Koc 0cca7861c1 fix(e2e): kill timed setup process groups 2026-05-26 15:31:56 +02:00
Vincent Koc a17ac3ec9d fix(e2e): time out telegram package installs 2026-05-26 14:36:20 +02:00
Vincent Koc 4838e704a0 fix(e2e): route focused docker smokes through run helper 2026-05-26 11:24:15 +02:00
Peter Steinberger 4f4d108639 chore(lint): remove underscore-dangle allow list (#83542)
* chore(lint): reduce underscore-dangle exceptions

* chore(lint): reduce more underscore exceptions

* chore(lint): remove underscore-dangle allow list

* fix(lint): repair underscore cleanup regressions

* test(lint): track version define suppression
2026-05-18 14:56:06 +01:00
Peter Steinberger 63ec912786 fix(openai): use GA realtime bridge for gpt-realtime-2
Summary:
- switch OpenAI realtime voice default to gpt-realtime-2
- migrate backend OpenAI WebSocket bridge to the GA session shape and drop the beta header
- keep Azure deployment realtime bridges on the deployment-compatible shape
- extend live Talk smoke coverage and align npm Telegram package-runtime assertions

Verification:
- pnpm test extensions/openai/realtime-voice-provider.test.ts src/gateway/protocol/index.test.ts src/gateway/talk-handoff.test.ts extensions/google-meet/index.test.ts -- --reporter=dot
- pnpm test test/scripts/npm-telegram-live.test.ts -- --reporter=dot
- pnpm check:docs
- env OPENCLAW_TESTBOX=0 pnpm check:changed
- OPENCLAW_REALTIME_OPENAI_MODEL=gpt-realtime-2 node --import tsx scripts/dev/realtime-talk-live-smoke.ts
2026-05-08 00:47:25 +01:00
Peter Steinberger 77a5d82e64 test(ci): align telegram live package assertion 2026-04-29 12:06:57 +01:00
Peter Steinberger f3f614fae6 test: follow docker e2e script refactor 2026-04-29 08:56:23 +01:00
Edwin Rivera bca30b62be fix: defer Claude live MCP cleanup (#73351)
Thanks @edwin-rivera-dev.
2026-04-28 09:59:58 +01:00
Peter Steinberger af7f651db3 refactor(plugin-sdk): retire reserved helper exports 2026-04-28 05:21:57 +01:00
Peter Steinberger 52a1cbc1c6 fix(qa-lab): keep gateway client on generic sdk seam 2026-04-27 14:05:09 +01:00
Peter Steinberger 8de458c6c0 fix(qa-lab): use generic gateway runtime SDK 2026-04-27 14:03:28 +01:00
Peter Steinberger fd4b59a906 ci: keep release checks compatible with stable refs 2026-04-27 13:59:49 +01:00
Vincent Koc 75c52b6c41 fix(ci): expose package deps to Telegram QA harness (#72680)
* fix(ci): expose package deps to telegram QA harness

* fix(ci): link QA package runtime deps

* fix(agents): guard replay metadata in empty retries

* fix(ci): keep plugin update smoke migration-stable
2026-04-27 00:33:29 -07:00
Peter Steinberger ec9b20263c fix(docker): expose QA harness exports for package Telegram 2026-04-27 08:07:27 +01:00
Peter Steinberger 3d6d08116d fix(release): expose QA package exports in Telegram acceptance 2026-04-27 08:02:23 +01:00
Peter Steinberger 8811112ab3 fix(release): stabilize full validation lanes 2026-04-27 07:46:44 +01:00
Peter Steinberger 09107e0b7f ci: let telegram e2e use package artifacts 2026-04-27 05:09:16 +01:00
Peter Steinberger 5b257cb352 test(qa): drop brittle telegram workflow assertions
(cherry picked from commit b02fdb8264)
2026-04-27 00:07:31 +01:00
Peter Steinberger efe940e9cb ci(qa): remove telegram beta approval gate
(cherry picked from commit 5e04b0f97a)
2026-04-27 00:07:31 +01:00