Commit Graph

1520 Commits

Author SHA1 Message Date
sinner c7de4413a9 fix(cron): reject unsupported generic timeout edits (#119899)
Co-authored-by: zyw02 <zyw02@users.noreply.github.com>

Punchcard-Session: cobalt-willow-summit-z1

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-06 19:45:59 +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
Peter Steinberger d6233c29b9 fix(browser): preserve locale, timezone, and device overrides (#119695)
* fix(browser): make device emulation transitions atomic

* test(browser): verify device presets in packaged profile

* fix(browser): retain page emulation overrides
2026-08-05 12:29:26 -07:00
qingminlong cb2965ddde fix(scripts): use direct-run helper for Windows guards (#110877)
* fix(scripts): normalize Windows direct-run guards

* test(scripts): cover direct-run routing

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-04 23:11:12 +08:00
Vincent Koc 12beeb7b29 test(qa): cover packaged browser profiles (#119043) 2026-08-04 11:13:05 +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 ee397f0c59 test(qa): prove ClawHub catalog discovery (#118934)
* test(qa): prove ClawHub catalog discovery

* test(qa): use shared temp cleanup
2026-08-04 09:07:35 +08:00
Vincent Koc a85d3bbc5c test(qa): prove container health endpoints (#119012) 2026-08-04 08:49:51 +08:00
Vincent Koc 15b23cfc2d fix(docker): use authenticated gateway health command (#118996)
* fix(docker): use authenticated gateway health command

* test(docker): prove documented compose health command
2026-08-04 07:10:36 +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 1d446ad2cc fix(plugins): remove stale load paths during uninstall (#118930)
* test(qa): prove marketplace plugin updates

* fix(plugins): clean exact install load paths on uninstall

* fix(ci): register marketplace lifecycle assertions
2026-08-03 21:57:54 +00:00
Vincent Koc 5b1b1e0632 test(qa): cover CLI distribution workflows (#118948) 2026-08-04 05:09:39 +08:00
Vincent Koc 819c241406 fix(parallels): keep provider keys out of POSIX job logs (#118840) 2026-08-04 02:26:22 +08:00
Shakker b8f5aa8ec8 fix: keep skip-ui onboarding on guided flow (#118737)
Keep `openclaw onboard --skip-ui` and `openclaw setup --skip-ui` on guided onboarding while suppressing browser and terminal handoffs.

Refs #118388 and #118038.
Prepared head SHA: 4e284c4523
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com>
Reviewed-by: @shakkernerd
2026-08-03 18:03:01 +01:00
Peter Steinberger b132ceba1a fix(parallels): preserve real Windows launch outcomes after setup timeouts (#118765)
* fix(parallels): preserve real launch outcomes after setup consumes its deadline

* fix(parallels): drain completed launches before enforcing setup deadlines
2026-08-03 10:01:33 -07:00
Vincent Koc 8987e93c65 fix(parallels): recover Windows poll transport failures (#118479) 2026-08-03 23:38:08 +08:00
Peter Steinberger a613ec3383 refactor: consolidate kitchen sink RPC walk helpers (#118486)
* refactor(e2e): consolidate kitchen sink RPC helpers

* fix: bind kitchen sink process signaling
2026-08-02 22:30:38 -07:00
Peter Steinberger 9b8e50b9f6 refactor(scripts): consolidate redundant tooling paths (#118259) 2026-08-02 16:20:09 -07:00
Peter Steinberger 7866ecae4b fix(release): keep npm 12 pack checks working (#118209)
* fix(release): accept npm 12 pack json

* fix(release): share npm pack normalizer in plugin workflow
2026-08-02 14:57:49 -07:00
Vincent Koc b35b8e286d fix(plugins): unblock prerelease validation (#118103)
* fix(plugins): align compatibility registry identity

* fix(slack): compact response URL native fallbacks

* test(plugins): stabilize prerelease runtime checks

* fix(packaging): include CUA driver in root package

* fix(packaging): declare CUA runtime dependency

* fix(cua): defer native driver loading
2026-08-03 04:48:05 +08:00
Dallin Romney 44dc286ce7 fix(qa): use canonical service identity for update restart (#117814) 2026-08-02 17:18:01 +08:00
Vincent Koc 263741b1f0 fix(ci): align release validation fixtures (#117494)
* fix(release): align beta 6 e2e fixtures

* fix(doctor): preserve missing state startup signal

* test(release): align beta e2e contracts

* test(agents): use canonical empty auth store

* test(agents): isolate prompt cooldown scheduling

* test(release): align main validation fixtures

* test(release): accept Code Mode plugin tool evidence

* fix(test): repair release validation checks

* test(cron): assert structured session targets
2026-08-02 00:39:36 +08:00
Dallin Romney f1f53f49b3 fix(release): accept legacy Codex follow-through delivery (#117458)
* fix(release): accept legacy Codex follow-through delivery

* docs(release): explain extended-stable Codex validation
2026-08-01 23:30:47 +08:00
Vincent Koc f5a8cb02ea test(release): repair full validation regressions (#116931)
* test(discord): mock thread delete listener

* test(qa): expect blocked update evidence

* test(telegram): preserve recovered context body

* fix(test): configure kitchen-sink personality

* test(browser): expect canonical staged upload paths

* test(browser): canonicalize macOS download roots

* test(feishu): seed legacy session rows offline

* test(telegram): isolate message context session stores

* test(qqbot): expect canonical media paths

* test(anthropic): match canonical transcript paths

* test(qa): expect canonical session store keys

* test(gateway): isolate rewind media reads

* test(release): review plugin child spawns

* test(plugins): expect process-stable manifest metadata

* test(google): retire usage telemetry contracts
2026-08-01 15:42:50 +08:00
Vincent Koc b45ca07ec9 fix(ci): keep full release validation aligned with runtime state (#116653)
Align Telegram artifact reuse and packaged Docker validation with current GitHub Actions and runtime state contracts. Refresh affected regression fixtures and isolate test state.
2026-07-31 23:03:02 +08:00
Vincent Koc c45c318848 fix(plugins): enforce conformance probe diagnostics (#116676) 2026-07-31 13:20:33 +08:00
Vincent Koc 39156a99cd fix(ci): restore beta release harnesses (#116596)
* test(release): model systemd ownership probes

* fix(ci): restore release Docker package probes

* fix(release): preserve Windows setup-node runtime

* fix(release): isolate Windows service validation

* fix(release): strip isolated Windows service identity
2026-07-31 09:17:35 +08:00
Peter Steinberger e604cf5b77 fix(release): trust update restart harness (#116301)
* fix(release): trust update restart harness

* fix(release): preserve candidate harness root
2026-07-30 05:19:16 -07:00
Ayaan Zaidi 4bd56b8ad8 test(e2e): tag the mock Responses preamble with its wire phase
The mock streamed pre-tool assistant text on the Responses path without `phase: "commentary"`, the field the API sets and the transport reads, so the draft-proof scenario ran green while never exercising the preamble lane on that transport. Proven live on Telegram: the preamble now renders as the status headline, and as a commentary line when progress.commentary is on.
2026-07-30 16:34:38 +09:00
Peter Steinberger 3e67671d92 fix(e2e): apply default service identity per flow (#116265) 2026-07-30 00:00:14 -07:00
Peter Steinberger 62cbbcc800 fix(e2e): align service account state (#116254) 2026-07-29 23:00:16 -07:00
Ayaan Zaidi d8d77ffbae test(e2e): delay the draft-proof final answer past the start gate
A progress draft only exists while the agent is working, and OpenClaw's exec
returns instantly for a mock tool call, so the whole turn finished in ~86ms —
inside the 1.5s draft gate. No draft was created, which is correct behavior but
proves nothing about rendering.

The draft-proof scenario now holds its final answer (MOCK_DRAFTPROOF_FINAL_DELAY_MS,
default 6s) so the turn straddles the gate. That is what made the live Discord
recording possible: draft created, edited with the status headline above the
tool line, replaced by the final answer, then deleted.
2026-07-30 13:36:21 +09:00
Ayaan Zaidi dcb0ad5c29 fix(ci): satisfy docs formatting, lint, and the SDK API baseline
Three gates my own changes broke:

- docs/channels/telegram.md needed a blank line before </Note>; I formatted the
  TypeScript but never ran the docs formatter over the pages I edited.
- The mock harness matched a literal with a regex, which oxlint's prefer-includes
  rejects.
- Widening resolveChannelPreviewStreamMode's defaultMode to StreamingMode and
  adding rendersRollingLinesNatively changes the exported plugin-SDK surface, so
  the API baseline hash had to be regenerated.
2026-07-30 13:36:21 +09:00
Ayaan Zaidi 436557b8e9 test(e2e): add a progress-draft scenario to the mock provider
Proving headline-plus-tool-line composition needs assistant text emitted
*before* a tool call: that leading text is what gets tagged as commentary and
rendered as the draft's status headline. The mock could only echo a single token,
so the draft path was unreachable without a live model.

Trigger `OPENCLAW_E2E_DRAFTPROOF` now serves two turns — preamble plus a shell
call, then the final answer — on both /v1/responses and /v1/chat/completions.
Only the completions transport tags commentary today, which is why the
completions path matters here.

Used to record the draft live on real Telegram: one message carrying the
headline above the tool line, the final answer, then the draft edited to its
receipt.
2026-07-30 13:36:21 +09:00
Vincent Koc 16baaff90f fix(e2e): align doctor switch with service ownership (#116209) 2026-07-30 12:31:39 +08:00
Peter Steinberger 4430f8ecfd fix(e2e): use account home for daemon switch (#116217) 2026-07-29 21:06:38 -07:00
Peter Steinberger 9c3503a443 fix(e2e): use default state for daemon switch (#116190) 2026-07-29 20:02:19 -07:00
Vincent Koc 6ef0beaa60 Merge pull request #115951 from openclaw/refactor/isrecord-cleanup-final-20260729
refactor: reuse canonical record guards
2026-07-30 02:36:19 +08: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
Vincent Koc ee8f60d38a refactor(scripts): reuse shared record guard 2026-07-29 16:42:12 +02:00
Vincent Koc 38abf500ba fix(update): stabilize cross-version dev upgrades (#115651)
* fix(e2e): stabilize cross-version Parallels upgrades

* fix(e2e): avoid inline macOS guest probes

* fix(e2e): detach Windows dev updates

* fix(e2e): detach macOS guest updates with Node

* fix(e2e): initialize skipped upgrade config

* fix(update): use partial clone for dev checkout

* fix(update): keep Windows dev checkouts clean

* fix(e2e): pin Parallels dev update targets

* fix(e2e): own Parallels gateway restarts

* fix(e2e): verify pinned Parallels checkouts

* fix(e2e): forward Parallels update budgets

* fix(e2e): use canonical provider auth choices

* chore: leave changelog to release automation

* test(ui): stabilize route waits on loaded runners
2026-07-29 19:52:34 +08:00
qingminlong ba26595aaa fix(e2e): bound Docker stats sample lines (#109262)
* fix(e2e): bound Docker stats sample lines

* fix(e2e): format Docker stats line cap proof

* fix docker stats CRLF line cap

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-29 07:30:29 -04:00
Vincent Koc 25c375e47f refactor: reuse canonical record guards (#115810)
* docs(agents): standardize canonical record guards

* refactor(model-catalog): use canonical record guard

* refactor(scripts): use canonical record guard

* refactor(ui): use canonical record guard

* refactor(codex): use canonical record guard

* refactor(agents): use canonical record guard

* refactor(sessions): use canonical record guard

* refactor(doctor): use canonical record guard

* refactor(infra): use canonical record guard
2026-07-29 11:43:36 +02:00
Peter Steinberger 4232126bba chore: update dependencies across workspace (#115677)
* chore(deps): update dependencies

* fix(deps): restore CI compatibility
2026-07-29 05:16:42 -04:00
Vincent Koc 9daa60961c fix(agents): serialize sandbox provisioning (#115645)
* fix(agents): serialize sandbox provisioning

* test(docker): add sandbox browser sidecar e2e

* fix(ci): register sandbox browser e2e entrypoint

* fix(ci): restore code mode matrix checks
2026-07-29 14:50:15 +08:00
Peter Steinberger 388bcc43a1 fix: make Code Mode reliable across gateway and provider lifecycles (#115379)
* fix(code-mode): dispose suspended runs and propagate cancellation

* fix(code-mode): preserve request-visible provider tools

* test(code-mode): require real packaged gateway execution

* fix(gateway): load code mode cleanup only during shutdown
2026-07-28 15:21:54 -04:00
Vincent Koc 13b8f0765c Merge remote-tracking branch 'origin/main' into test/parallels-main-3224005-host
* origin/main: (72 commits)
  fix: macOS-only Parallels smoke harness regression (#75293)
  fix(ios): use configured speech language for system voice (#113372)
  refactor: centralize isolated agent test ownership (#115340)
  test(ui): stabilize browser route readiness (#115320)
  fix(cron): clear automation after failed scheduler shutdown (#115316)
  fix: keep isolated gateway workspaces and skills inside state dir (#114487)
  docs: document local TTS on macOS, Linux, and Windows (#110230)
  fix(tasks): clone only the requested task page (#114277)
  fix(agents): prevent Code Mode resume loss and unbounded preparation (#115314)
  fix(process): preserve the first process cancellation reason (#115317)
  fix(nostr): report unavailable ingress when queue open fails (#115313)
  fix: prevent Slack and Feishu ingress startup leaks (#115295)
  fix(slack): avoid unsafe emphasis boundaries (#111575)
  fix: prevent changed checks from expanding into full lint (#115322)
  fix(codex): stabilize prompts and expose real cache regressions (#115238)
  refactor(ui): derive page route specs from the route table (#115214)
  fix(compaction): plan cut points in trigger units (#111886) (#115309)
  fix: prevent cron and gateway stress-run timeouts (#115241)
  fix(ci): validate frozen Matrix QA targets (#115298)
  test(macos): block real process fallthrough (#113337)
  ...

# Conflicts:
#	CHANGELOG.md
2026-07-29 02:22:47 +08:00
clawsweeper[bot] a0e4ac412c fix: macOS-only Parallels smoke harness regression (#75293)
* fix: macOS-only Parallels smoke harness regression

* fix(parallels): keep macOS update smoke script owner-readable

* fix: macOS-only Parallels smoke harness regression

* test(parallels): exercise macOS guest script identity

Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>

---------

Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-28 14:12:57 -04:00
Vincent Koc caa5ae32e9 fix(e2e): preserve Windows installer reboot results 2026-07-29 01:12:42 +08:00
Vincent Koc 6e275bf0b4 fix(e2e): force Windows smoke gateway stop 2026-07-29 00:27:25 +08:00