Commit Graph

66965 Commits

Author SHA1 Message Date
Vincent Koc
b3136854f0 chore(autoreview): align org review defaults (#104343)
* docs(autoreview): sync canonical review policy

* fix(autoreview): sync isolated review runtime

* test(autoreview): sync hardening coverage

* fix(autoreview): sync final isolation hardening

* test(autoreview): sync final isolation coverage

* fix(autoreview): sync final input hardening

* test(autoreview): sync final hardening coverage

* fix(autoreview): sync reviewer trust hardening

* test(autoreview): sync fallback coverage

* test(autoreview): sync boundary coverage

* docs(autoreview): align runtime contracts

* fix(autoreview): reject unbundled gitlinks

* test(autoreview): cover final trust guards

* feat(autoreview): accept max Codex reasoning
2026-07-11 22:49:50 +08:00
clawsweeper[bot]
1b6393c51e fix (Computer Use) Stabilize Codex Computer Use readiness (#103331)
* fix (Computer Use) Stabilize Codex Computer Use readiness

Co-authored-by: Ben Badejo <188106718+bdjben@users.noreply.github.com>

* fix (Computer Use) Stabilize Codex Computer Use readiness

* fix (Computer Use) Stabilize Codex Computer Use readiness

* fix (Computer Use) Stabilize Codex Computer Use readiness

* fix(clawsweeper): address review for automerge-openclaw-openclaw-103331 (1)

* fix (Computer Use) Stabilize Codex Computer Use readiness

---------

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Ben Badejo <188106718+bdjben@users.noreply.github.com>
2026-07-11 09:42:27 -05:00
LZY3538
72aa3f1bcf fix(cron): allow silent scheduled runs (#95725)
* fix(cron): pass allowEmptyAssistantReplyAsSilent from cron executor

Intentionally-silent cron jobs (alert watchers that say nothing unless there
is something to report) fail with FailoverError "empty_response" because the
allowEmptyAssistantReplyAsSilent flag is only computed for DM/group chat
contexts — the cron executor never sets it.

Instead of patching the shared CLI runner with a lane substring heuristic,
set allowEmptyAssistantReplyAsSilent: true at the cron executor level for
both the CLI and embedded runner paths. This:
- Owns the silent-empty policy at the correct boundary (the cron executor)
- Covers both runner paths uniformly
- Does not broaden the shared CLI empty-response guard for non-cron callers

Fixes #94224

Co-Authored-By: Claude <noreply@anthropic.com>

* test(cron): add regression test for allowEmptyAssistantReplyAsSilent flag propagation

Verify that the cron executor passes allowEmptyAssistantReplyAsSilent: true
to both runCliAgent and runEmbeddedAgent calls. The embedded test uses
mockTexts: [""] to truly exercise empty output, and the CLI test mocks
runCliAgent with empty payload text — both scenarios require the flag to
avoid empty_response errors on intentionally-silent cron watchers.

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor(cron): centralize silent reply policy

Reuse existing executor suites and keep CLI and embedded cron runners aligned.

Co-authored-by: 刘镇业 0668001127 <liu.zhenye@xydigit.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 07:38:53 -07:00
Peter Steinberger
ae12413ee2 chore(tooling): enforce no-floating-promises and drop DOM globals from Node-side typechecking (#104422)
* chore(lint): enforce no-floating-promises repo-wide

* feat(tooling): split DOM globals out of the Node-side typecheck program

tsconfig.core.json now compiles src/ + packages/ with lib ES2023; new
tsconfig.ui.json owns ui/ with DOM. Web-global names used by Node code
alias to canonical undici/stream-web types; highlight.js loads through a
validated narrow API because its d.ts force-includes lib.dom. Boundary,
sparse-guard, changed-lane routing, and profile lanes cover the new ui
graph.

* chore(deps): declare undici-types and teach knip about the highlight.js runtime require

* ci: retrigger dropped pull_request synchronize event

* refactor(types): derive web-global aliases from @types/node fetch globals, drop undici-types dep

* ci: retrigger after dependency guard cleared

* fix(scripts): add ui lane to changed-lanes declaration union
2026-07-11 07:28:20 -07:00
mushuiyu886
13817a6108 fix(agents): preserve UTF-16 boundaries in context pruning (#104404)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-11 22:26:21 +08:00
xingzhou
f73c5541fe fix(agents): cancel pending bundle LSP requests (#104110)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-11 22:02:43 +08:00
Peter Steinberger
ba826be268 test(channels): delivery trace harness with feishu and mattermost goldens (#104478) 2026-07-11 06:49:27 -07:00
Yuval Dinodia
97d57a2662 fix(clawhub): reject mutable GitHub skill refs (#97157)
* fix(clawhub): reject mutable GitHub skill refs

Co-authored-by: yetval <yetvald@gmail.com>

* chore: keep release notes in PR metadata

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 06:42:35 -07:00
Peter Steinberger
325679a335 fix: reuse built control UI for live Mac updates (#104482)
* fix: reuse built control UI for live Mac updates

* fix: pin live updater Mac build inputs
2026-07-11 06:36:42 -07:00
Peter Steinberger
fa77fe10d5 chore: migrate active GPT-5.5 references to GPT-5.6 (#104452)
* chore(models): migrate active GPT-5.5 references

* test(workboard): expect GPT-5.6 Sol default

* chore: keep release notes in PR body

* test(models): align picker fixtures with Sol default

* test: update PDF default model expectation

* test(qa): migrate thinking smoke to Luna

* test(gateway): align mock catalog with Sol default

* ci: retrigger exact-head PR checks

* test(gateway): document default catalog invariant
2026-07-11 06:30:57 -07:00
Vincent Koc
b4c6ee21e3 test(ci): preserve compact tooling docker coverage 2026-07-11 21:29:40 +08:00
Vincent Koc
89bde4ea79 test(plugin-sdk): stabilize catalog timeout assertion 2026-07-11 21:29:40 +08:00
Vincent Koc
794a1671b1 test(ci): isolate unit fast config probe 2026-07-11 21:29:40 +08:00
Vincent Koc
82e0867752 test(ci): update plugin contract fallback assertion 2026-07-11 21:29:40 +08:00
Vincent Koc
fc1a793ea0 docs(ci): document compact tooling fanout 2026-07-11 21:29:40 +08:00
Vincent Koc
e8c83ac0b4 test(ci): prove compact tooling coverage 2026-07-11 21:29:40 +08:00
Vincent Koc
02045aa384 perf(ci): shard compact tooling tests 2026-07-11 21:29:40 +08:00
Vincent Koc
125d7a94ca test(ci): lock balanced whole shard packing 2026-07-11 21:29:40 +08:00
Vincent Koc
7de8c1ab1c perf(ci): balance compact whole test jobs 2026-07-11 21:29:40 +08:00
Peter Steinberger
fe261b0f59 chore(tooling): typecheck root test/** with a dedicated tsgo lane (#104475)
* chore(types): add declaration files for scripts/lib and scripts/e2e modules

* chore(types): add declaration files for top-level script modules (a-m)

* chore(types): add declaration files for top-level script modules (n-z)

* test: use a non-secret-shaped gateway token fixture

* test: type ci workflow guard helpers for the root test lane

* chore(tooling): typecheck root test/** with a dedicated tsgo lane

- test/tsconfig/tsconfig.test.root.json: root-test program (strict unused checks,
  fixtures excluded; two Docker E2E clients that import built dist/** stay out,
  same rationale as the scripts/e2e exclusion in tsconfig.scripts.json)
- tsgo:test:root wired into tsgo:test, check:test-types, scripts/check.mjs, and
  the ci.yml test-types shard, mirroring the tsgo:scripts lane (#104348)
- changed-lane routing: test/**/*.ts (excluding fixtures) and the lane tsconfig
  now trigger 'typecheck test root' in check:changed; previously test/ paths ran
  lint only, so harness type errors surfaced first in CI (#104287 envDir case)
- burn down all 1071 latent type errors in the program: precise param/local
  types across test/scripts, test/vitest, test/e2e, and transitive scripts/e2e
  program members; 205 sibling .d.mts declaration files for imported .mjs
  modules (committed separately); zero any, zero ts-expect-error
- resolve the pre-existing testing star-export ambiguity in
  scripts/e2e/parallels/common.ts with an explicit re-export

Closes #104388

* chore(types): correct declaration fidelity per structured review

- re-derive 51 .d.mts files from implementation data flow instead of
  initializers: fix a wrong never return (runTestProjectsDelegation returns
  the child), add encoding-sensitive exec/spawn overloads (plain-gh), restore
  the full release profile union, make parsed paths string | null, add missing
  parseArgs fields via help/non-help unions, add a missing sibling declaration
  (budget-number-args), drop 15 unused lint directives
- precise install-record/tuple typing removes the type-aware oxlint
  regressions the first declarations caused in scripts/e2e implementations
- route .mts declaration edits under test/ to the testRoot lane and reference
  the test-root project from tsconfig.projects.json so tsgo:all covers it
  (closes both review findings against the lane wiring)

* chore(scripts): keep telegram runner dist typing structural for the boundary guard

* chore(types): declare runtime pack and gateway readiness exports added on main

* test: pin the importTargetPlan form of the plugin-contract plan import

The guard expectation still referenced the raw await import( form that
7ae5996bb3 (#103975) replaced with the importTargetPlan fallback helper;
the assertion fails on current main.
2026-07-11 06:15:41 -07:00
Peter Steinberger
e681646834 feat(cloud-workers): add crabbox worker provider plugin and profile-aware lease lifecycle (#104465)
* feat(cloud-workers): add Crabbox worker provider

* docs(cloud-workers): document Crabbox profiles

* chore(cloud-workers): drop changelog entry (release-only file)

* refactor(plugin-sdk): pass profiles to worker lease lifecycle

* docs(plugin-sdk): document worker lifecycle profiles

* chore(docs): regenerate plugin inventory, docs map, and sdk baseline after rebase

* fix(cloud-workers): state crabbox key-ref gap without warning-comment suppressions
2026-07-11 05:51:56 -07:00
qingminlong
a66d2959e9 fix(onboard): wait for gateway warnings before installing service (#104173)
* fix(onboard): wait for gateway warnings before installing service

* fix(onboard): show gateway warnings after plan errors

* refactor(onboard): drain install warnings from queue

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:49:34 -07:00
Peter Steinberger
3f33f0bb5f refactor(qqbot): adopt core typing keepalive loop with budget accounting intact (#104438)
* refactor(channels): adopt core typing keepalive loop

* chore(plugin-sdk): pin surface budget for typing keepalive re-export
2026-07-11 05:48:33 -07:00
Peter Steinberger
7ae5996bb3 fix(ci): validate older release targets (#103975)
* fix(ci): support older release targets

* fix(ci): guard optional channel contracts

* fix(ci): scope legacy release compatibility
2026-07-11 05:44:49 -07:00
qingminlong
02560243f3 fix(agents): truncate multibyte middleware details at byte limit (#104156)
* fix(agents): bound multibyte middleware details by bytes

* refactor(agents): bound middleware detail byte sizing

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:39:50 -07:00
Peter Steinberger
05aecc1d6f feat: show Codex transcripts in the sidebar (#104437)
* feat: show Codex transcripts in sidebar

* fix: clear Codex sidebar on Gateway switch

* chore: leave release notes to release workflow

* chore: refresh native i18n inventory

* fix: satisfy macOS Codex node lint

* fix: refresh native localization inventory

* docs: refresh documentation map

* chore: refresh UI locale metadata
2026-07-11 05:39:29 -07:00
haruai
597de699d0 fix: route node policy plugin approvals (#98561)
* fix: route node policy plugin approvals

* refactor(gateway): simplify node approval routing

* fix(gateway): preserve node approval routes

* chore(protocol): refresh node invoke model

---------

Co-authored-by: haruaiclone-droid <281899875+haruaiclone-droid@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:37:45 -07:00
Vincent Koc
4977dc7897 improve(ci): let Kova own diagnostic build profiles (#104459)
* perf(ci): delegate Kova build profile selection

* fix(ci): repin Kova diagnostic contract
2026-07-11 20:35:06 +08:00
pick-cat
0ca6880f3d fix(tools): reject malformed availability expressions (#92411)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:32:22 -07:00
qingminlong
3ed8143495 fix(gateway): cap history when numeric limit is huge (#104263)
* fix(gateway): cap oversized history limits

* refactor(gateway): simplify oversized history limits

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:24:54 -07:00
Peter Steinberger
a4ee15a851 fix(release): validate Telegram launcher syntax (#104455) 2026-07-11 05:13:44 -07:00
qingminlong
08da0d3861 fix(code-mode): report UTF-8 API file byte counts (#104244)
* fix(code-mode): report UTF-8 API file byte counts

* fix(code-mode): report UTF-8 API file byte counts

* chore(changelog): keep release notes release-owned

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 05:10:46 -07:00
Peter Steinberger
b2a6408964 build(android): eliminate Gradle and manifest warnings (#104451) 2026-07-11 05:08:45 -07:00
Peter Steinberger
1285fd6db4 fix(whatsapp): keep pre-connect recovery replayable (#104450) 2026-07-11 05:03:59 -07:00
Ayaan Zaidi
f02673882c fix(agents): keep CLI terminal-reason classification non-throwing
Run errors can expose hostile getters; classification must not replace the
original failure or suppress its terminal event. Matches the containment
contract of isProviderTimeoutError in the same module.
2026-07-11 17:32:13 +05:30
Ayaan Zaidi
d3a8eb8a1c refactor(agents): converge CLI tool terminal reason onto run-termination
One shared resolveCliToolTerminalReason owns the timed_out/cancelled/failed
decision for one-shot and live CLI runners; abort-signal lifecycle fields are
authoritative, error shape is the fallback. Deletes both local derivations.
Fixes live-path drift where a timeout abort delivered as a generic AbortError
was reported as cancelled instead of timed_out.

Part of #104219 (seam 3).
2026-07-11 17:32:13 +05:30
Peter Steinberger
5325c4a786 feat(ui): redesign queued-message list as compact composer-width rows (#104445) 2026-07-11 04:59:14 -07:00
xingzhou
745cfc028e fix(codex): bound shared app-server startup waits (#89442)
* fix(codex): isolated cron reports Codex startup stalls

* fix(codex): isolated cron reports Codex startup stalls

* fix(codex): bound shared app-server startup waits

Co-authored-by: 张贵萍0668001030 <zhang.guiping@xydigit.com>

* test(codex): satisfy startup lifecycle checks

* test(codex): align deferred auth test type

* test(codex): type auth mock as async void

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 04:58:55 -07:00
Vincent Koc
2d1a8bd6df perf(ci): build focused Kova runtime package 2026-07-11 19:57:54 +08:00
Vincent Koc
451d6314fc refactor(build): expose prepack finalization 2026-07-11 19:57:54 +08:00
Peter Steinberger
9523a52871 fix(ui): stop sidebar session sections from painting over each other in short windows (#104447) 2026-07-11 04:57:15 -07:00
Peter Steinberger
6c415c44c9 refactor(ui): style the new-session draft as the chat composer shell (#104448)
* refactor(ui): style new-session draft as the chat composer shell

* fix(ui): guard new-session Enter send against IME keyCode 229
2026-07-11 04:55:53 -07:00
Peter Steinberger
90e465833b feat(gateway): durable cloud worker environments, provider SDK contract, and lifecycle RPCs (#104401)
* docs(plan): add cloud workers design plan

* feat(plugin-sdk): add cloud worker provider foundations

* feat(protocol): add worker environment lifecycle shapes

* feat(gateway): persist worker environment lifecycles

* test(gateway): pin environment inventory assertion for damaged worker store

* style(cloud-workers): satisfy lint and docs formatting

* fix(gateway): narrow worker environment type boundaries

* chore(plugin-sdk): account for WorkerProvider surface growth

* docs: regenerate docs map
2026-07-11 04:54:27 -07:00
llagy007
6036413766 fix(plugins): honor empty document extractor scope (#103731)
* fix(plugins): honor empty document extractor scope

* fix(plugins): honor empty document extractor scope

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-11 19:52:19 +08:00
xingzhou
af80736057 fix(qa-lab): keep bounded web snapshots UTF-16 safe (#104249)
* fix(qa-lab): keep bounded web snapshots UTF-16 safe

* fix(qa-lab): keep diagnostic truncation UTF-16 safe

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-11 04:49:00 -07:00
NianJiu
d85e8a5f23 fix(android): restore sticky node service (#104226)
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>
2026-07-11 04:45:43 -07:00
NianJiu
26dc42aa37 fix(android): cancel expired node invokes (#104225)
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>
2026-07-11 04:43:00 -07:00
Peter Steinberger
651aab87f3 fix(release): wait for Telegram proc visibility (#104439) 2026-07-11 04:40:27 -07:00
Peter Steinberger
d5fe0c5e73 feat(ui): multi-select sessions in the sidebar with batch menu actions (#104416)
* feat(ui): multi-select sessions in the sidebar with batch menu actions

* chore(i18n): sync locale bundles for sidebar multi-select strings

* docs(control-ui): document sidebar session multi-select and batch menu
2026-07-11 04:38:05 -07:00
Peter Steinberger
1d84acf2c3 test(macos): remove Swift warning and timing flake (#104434) 2026-07-11 04:30:35 -07:00