Vincent Koc
642ded397b
fix(ci): route changed checks through Crabbox policy
2026-07-31 22:28:20 +08:00
Vincent Koc
c2e5b3a67c
feat(ci): add workload-aware Crabbox routing
2026-07-31 22:28:20 +08:00
Vincent Koc
fab2c33cad
feat(plugins): externalize Xiaomi provider ( #116861 )
2026-07-31 22:02:07 +08:00
Vincent Koc
b2b62b2e1e
feat(plugins): externalize Volcengine provider ( #116854 )
2026-07-31 21:28:01 +08:00
Vincent Koc
ba1a6722bb
feat(plugins): externalize Vydra provider ( #116813 )
2026-07-31 20:35:43 +08:00
Vincent Koc
eb55c8ea8f
feat(plugins): externalize Voyage embeddings ( #116785 )
...
* feat(voyage): externalize embedding provider
* fix(voyage): drop stale bundled description
2026-07-31 19:52:33 +08:00
wangyan2026
d865c9b8f5
fix(build): fail closed on symlinked build output roots ( #116705 )
...
Reject symlinked generated-output roots before build and postbuild mutation paths can recurse into unrelated targets. Cover aggregate, UI, export-template, bundled-plugin, Docker-prune, and plugin-runtime entry points with regression tests and migration guidance.
Closes #116498
Co-authored-by: WangYan <wang.yan29@xydigit.com >
2026-07-31 19:37:05 +08:00
Vincent Koc
6830820755
feat(plugins): externalize DuckDuckGo search ( #116740 )
2026-07-31 18:49:07 +08:00
Vincent Koc
a550827dad
feat(plugins): externalize Synthetic provider ( #116720 )
2026-07-31 17:19:43 +08:00
Vincent Koc
6d132b93b6
fix(testing): load relay smoke through UI Vite config
2026-07-31 16:37:06 +08:00
Vincent Koc
5a9c249780
fix(testing): repair realtime relay live smoke import
2026-07-31 16:37:05 +08:00
Vincent Koc
37b1a71654
fix(release): unblock beta validation workflows ( #116708 )
...
* fix(release): repair beta validation workflow state
* fix(qa): dispatch yielded fanout runs without task tracking
* fix(test): honor GPT-Live shard opt-in
2026-07-31 15:47:11 +08:00
Dallin Romney
1e45f7ed9f
improve(ci): rebalance embedded agent test configs ( #116436 )
...
* improve(ci): rebalance embedded agent test configs
* fix(ci): satisfy compact planner lint
* refactor(ci): simplify compact shard rebalancing
2026-07-31 15:15:13 +08:00
Vincent Koc
8d7ff3c04c
fix(test): keep memory FD repro config valid ( #116698 )
2026-07-31 14:44:09 +08:00
Dallin Romney
d24cdea7ec
fix(release): omit unavailable candidate Docker scripts ( #116432 )
...
* fix(release): omit unavailable candidate Docker scripts
* fix(docker): fail on unreadable candidate manifest
* fix(docker): expose candidate planner option
2026-07-31 14:18:18 +08:00
Dallin Romney
bd5daad79a
fix(release): accept legacy zero skipped runtime summaries ( #116429 )
2026-07-31 14:13:53 +08:00
Vincent Koc
fa4cc51a87
feat(plugins): externalize Teams and Zoom meetings ( #116682 )
2026-07-31 14:10:46 +08:00
Vincent Koc
c45c318848
fix(plugins): enforce conformance probe diagnostics ( #116676 )
2026-07-31 13:20:33 +08:00
Vincent Koc
c3bb8fc265
fix(perf): make Kova startup diagnostics actionable ( #116319 )
...
* fix(perf): rank startup duration hotspots correctly
* ci(perf): exercise prepared runtime startup cases
2026-07-31 10:23:32 +08:00
Vincent Koc
d5ab7d7d03
fix(ci): run fs-safe removal Windows coverage ( #116510 )
...
* test(ci): run fs-safe remove suite on Windows
* test(infra): correct Windows rebind race expectation
* test(infra): exercise Windows rebind hook
2026-07-31 09:58:34 +08:00
Vincent Koc
88876f780b
fix(android): preserve device work across lifecycle changes ( #116593 )
...
* fix(android): use configured SDK for screenshot AVDs
* fix(android): keep chat jump control clear of messages
* fix(wear): ignore stale control completions
* fix(android): advertise node permission changes
* fix(android): select play flavor for benchmarks
* test(android): decouple cron benchmark from copy
* fix(android): install play variant in perf scripts
* fix(wear): clear gateway control busy state
* fix(android): surface voice e2e connection errors
* test(android): cover common live node commands
* fix(android): retain share parsing across recreation
* fix(android): retain permission requests across recreation
* fix(wear): bind realtime audio to talk attempts
* fix(android): track active permission host
* fix(wear): own gateway control busy state
* fix(wear): admit realtime channels by attempt
* fix(android): refresh permissions on top resume
* fix(wear): serialize reconnect retirement with writes
* chore(i18n): refresh native source inventory
* fix(wear): retain pending audio through start RPC
* fix(wear): negotiate realtime channel compatibility
* test(wear): assert reconnect outcome without owner churn
* fix(android): move settings prompt with active host
* fix(wear): reject stale relay starts
* chore(changelog): leave notes to release generation
2026-07-31 09:49:11 +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
WhatsSkiLL
47f8c1d6b0
Android: add adaptive app navigation sidebar ( #113908 )
...
* feat(android): add adaptive navigation sidebar
* fix(android): satisfy native i18n checks
* fix(android): use adaptive Material navigation
* fix(android): preserve adaptive navigation state
* chore(i18n): refresh native source baseline
* fix(android): keep compact navigation labels on one line
* chore(android): refresh native i18n source lines
* fix(android): preserve sidebar gateway status
* fix(android): satisfy status label checks
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-30 17:27:45 -04:00
Vincent Koc
3b355879b8
test(infra): run exec allowlist suite on Windows ( #116492 )
2026-07-31 01:46:19 +08:00
Vincent Koc
26f107071e
test(agents): run exec preflight suite on Windows ( #116469 )
2026-07-31 00:57:04 +08:00
Vincent Koc
17ef4a26f1
test(openai): settle roundtrip failures without rejection
2026-07-31 00:42:04 +08:00
Vincent Koc
5f0c49b65d
test(openai): clear roundtrip timeout on early failure
2026-07-31 00:42:04 +08:00
Vincent Koc
786d40d607
test(openai): observe roundtrip failures during streaming
2026-07-31 00:42:04 +08:00
Vincent Koc
969758d0d5
test(openai): satisfy live smoke lint guards
2026-07-31 00:42:04 +08:00
Vincent Koc
b559705aab
test(openai): add live realtime audio roundtrip
2026-07-31 00:42:04 +08:00
Vincent Koc
85466bd89e
test(mxc): run Windows-only suites in CI ( #116451 )
2026-07-31 00:10:22 +08:00
Vincent Koc
90a22b4f50
chore(test): run browser copilot E2E in CI ( #116407 )
...
* test(browser): run copilot E2E in CI
* test(browser): stabilize copilot E2E synchronization
* test(browser): wake extension workers deterministically
* test(ci): route browser copilot command changes
2026-07-30 23:20:34 +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
Vincent Koc
dac0ef6f0e
fix(test): bound Testbox agentic and extension suites ( #115696 )
...
* fix(test): split Testbox extension processes
* fix(test): split Testbox agentic processes
2026-07-30 19:26:47 +08:00
Dallin Romney
c854a04696
fix(ci): validate frozen release candidates faithfully ( #116357 )
2026-07-30 18:57:32 +08:00
Dallin Romney
bf8da2537c
improve(ci): fail_fast option for release validation, off by default ( #116352 )
...
* ci: make release validation fail-fast optional
* ci: pass release QA fail-fast as boolean
* test: format release validation helper test
2026-07-30 18:53:41 +08:00
Vincent Koc
8a3f5c862b
fix(plugin-sdk): ship documented public typings ( #116345 )
...
* fix(plugin-sdk): ship documented public typings
* fix(plugin-sdk): refresh public contract artifacts
2026-07-30 18:20:07 +08:00
WhatsSkiLL
e5cee36b46
fix(memory): retry failed queued session targets ( #115923 )
...
* fix(memory): retain failed queued sync targets
* fix(memory): drain retained targets on idle sync
* test(memory): prove idle queued sync recovery
* fix(memory): preserve queued sync ownership
* fix(memory): avoid queued sync self-deadlock
* fix(memory): stop queued recovery during close
* fix(memory): clear retained sync state on close
* test(memory): prove live queued rejection transition
* fix(memory): enforce sync repro invariants
* test(memory): bound archive recovery proof
* test(memory): seed archive proof transcript
* test(memory): exercise archived transcript recovery
* chore(knip): register memory sync repro
* fix(memory): reject blank queries before settings
* style(memory): satisfy queue recovery lint
* test(memory): align doctor migration expectations
* test(memory): insert explicit provenance fixture
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-30 02:47:59 -07:00
Vincent Koc
ea894bba8a
fix(test): preserve failed shard diagnostics ( #116289 )
2026-07-30 17:17:17 +08:00
WhatsSkiLL
c63fdc631f
fix(sessions): release closed SQLite entry caches ( #115794 )
...
* fix(sessions): release closed sqlite entry caches
* chore(ci): register sqlite cache lifetime proof
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-07-30 02:06:44 -07:00
Jason (Json)
a67ad03eea
perf(gateway): bound prepared runtime startup work ( #116261 )
2026-07-30 01:41:35 -06: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
2c436594de
fix: clean npm preflight cache restore targets ( #116276 )
2026-07-30 00:33:55 -07: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