Commit Graph

78555 Commits

Author SHA1 Message Date
Arthur Lacoste f207e14d92 fix(telegram): keep commands responsive during Codex login
Release Telegram’s chat lane after structured Codex device-code delivery while account-owned authentication completes safely in the background.

Co-authored-by: Arthur Lacoste <arthurlacoste@users.noreply.github.com>
2026-08-05 05:59:13 +05:30
Vincent Koc cbde3c1945 perf(memory): defer session backfill runtime (#119372)
Punchcard-Session: coral-workshop-workshop-3f
2026-08-05 08:16:20 +08:00
Vincent Koc 9ff9aac71a fix(ci): isolate built TUI PTY fixture (#119339)
Run the built local TUI PTY lane after the other artifact checks so its real Gateway fixture has exclusive process and event-loop capacity.

Punchcard-Session: cobalt-brook-meadow-m9
2026-08-05 08:00:29 +08:00
Vincent Koc fb81d03d8e fix(commands): restore tool inventory for dynamic models (#119306)
* fix(qa): scale Telegram compact command timeout

* fix(qa): surface Telegram compact reply failures

Punchcard-Session: amber-workshop-river-yr

* fix(commands): prepare tool inventory model context

Punchcard-Session: amber-workshop-river-yr

* test(commands): type runtime context mock

Punchcard-Session: amber-workshop-river-yr

* docs(changelog): note tool inventory repair

Punchcard-Session: amber-workshop-river-yr

* chore(release): defer tool inventory note

Punchcard-Session: amber-workshop-river-yr

* fix(ci): lower environment variable budget

Punchcard-Session: amber-workshop-river-yr
2026-08-05 06:57:21 +08:00
Yiğit ERDOĞAN 0d18bde848 fix(media): release rejected BytePlus and Runway video downloads under debug capture (#119257)
…r debug capture

When the debug proxy is enabled it patches global fetch and clones every
response, so the caller-facing body is one branch of a live tee. Cancelling
such a branch settles only after both branches cancel, so awaiting it in the
rejected-download path leaves the download pending instead of surfacing the
malformed-response error.

Both providers read the completed media URL through the global fetch, so they
reach the capture clone. Switch them to the fire-and-forget release the other
generated-media owners already use, and cover each with a regression that keeps
a capture clone live while the download is rejected.

Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-08-04 17:48:10 -05:00
Charles c81aee5a96 docs: add ChromeOS (Crostini) platform install guide (#107663)
* docs: add ChromeOS (Crostini) platform install guide

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: correct ChromeOS Linux container setup path

* docs: add zh-CN glossary entries for ChromeOS page terms

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-08-04 15:41:42 -07:00
Peter Steinberger 2d1242556e test(msteams): serve JWKS from in-process server in auth coverage (#119354)
* test(msteams): serve JWKS from in-process server in auth coverage

The Entra/service-token validator tests spied JwksClient.prototype on the
jwks-rsa copy the test file imports, but the SDK's internal
require("jwks-rsa") resolves a different physical copy and vitest cannot
intercept a CommonJS require inside node_modules — so the spy missed and
the tests hit the real login.botframework.com / login.microsoftonline.com
JWKS endpoints (JwksError: Bad Request, SigningKeyNotFoundError).

Replace the mock with a real JWKS document served from an in-process
node:http server, pointed at via the SDK's own endpoint overrides
(openIdMetadataUrl cloud override for the service validator, loginEndpoint
for the Entra factory). The v2-issuer acceptance test drives the underlying
JwtValidator with a decoupled jwksUriOptions {type:'uri'} so issuer
validation uses the real login host while keys come from the local server.
Deterministic, no external network, and exercises the real fetch + RS256
verify path.

* test(msteams): fix cloud-environment import and drop unused jwks-rsa

The extensions test-types gate resolves @microsoft/teams.api's dual
.d.ts/.d.mts types strictly and does not see the root re-export of
withOverrides/PUBLIC (TS2305), so import them from the canonical
auth/cloud-environment subpath the SDK itself uses. The JWKS-server rework
also removed the last direct jwks-rsa import, so drop the now-unused
devDependency and refresh the lockfile (knip deadcode).

---------

Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-04 15:34:38 -07:00
Peter Steinberger 15499e7fc2 fix(qa): enable OpenAI for stored audio scenario (#119349) 2026-08-04 15:08:07 -07:00
Peter Steinberger 702e0277bd test(agents): realpath apply-patch temp dir fixture (#119353)
withTempDir used a raw fs.mkdtemp(os.tmpdir()) path. On macOS os.tmpdir()
is a /var -> /private/var symlink while the production sandbox guard
compares against canonical paths, so the symlink-delete test failed with
"Path escapes sandbox root". Realpath the mkdtemp result so the fixture
matches the canonical form the guard expects.

Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-04 15:07:03 -07:00
Peter Steinberger 44f3747daa test(slack): drop redundant .js-suffixed system-event mock (#119352)
The five monitor event suites each registered a second vi.mock for
"openclaw/plugin-sdk/system-event-runtime.js" alongside the extensionless
mock. The .js-suffixed subpath is not a declared export of the openclaw
package, so vitest fails suite collection with "not exported under the
conditions [node, development, import]" — taking down 42 suites before a
single test ran. The extensionless mock already intercepts the production
import, so the duplicate is removed.

Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-04 15:04:49 -07:00
Peter Steinberger 63f4acbbc8 fix(exec): leave safe builtins unrewritten in enforced mode (#119351)
Enforced-mode command rendering resolved every executable to an absolute
path, including POSIX shell builtins (cd, :, true, false, pwd, test).
Builtins are executed by the shell itself, not via a filesystem binary,
so rewriting cd -> /usr/bin/cd is semantically wrong and adds no
PATH-shadowing protection (the whole point of enforced-mode resolution
for real external executables). shouldRewriteCandidate now returns
satisfiedBy !== "safeBuiltins" in enforced mode, leaving real external
executables pinned to their resolved absolute path.

Adds a regression test locking that enforced mode renders cd . as-is.

Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-04 15:02:03 -07:00
Heming Zeng 9bfe292c86 fix(sessions): keep gateway responsive while large transcript archives are built (#112424)
* fix(sessions): keep gateway responsive during transcript archiving

* test(sessions): strengthen archive worker coverage

* fix(sessions): bound archive worker concurrency

* test(sessions): normalize rollback paths on Windows

* fix(sessions): load source archive worker on node 22

* fix(sessions): align archive fencing with session windows

* test(sessions): adapt cleanup race to archive worker

* fix(sessions): harden archive worker lifecycle

* style(sessions): format archive lifecycle tests

* fix(sessions): release writer lane during archive work

---------

Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-08-04 14:40:59 -07:00
Vincent Koc bfcce12e6b fix(tui): restore provider auth in installed local mode (#119283)
* test(tui): cover local recovery and auth flows

* fix(tui): restore installed local auth

* test(qa): allow TUI scenario teardown margin

Punchcard-Session: ember-workshop-lantern-bs

* fix(tui): constrain local CLI launcher ownership

Punchcard-Session: ember-workshop-lantern-bs

* fix(tui): satisfy local auth validation gates

Punchcard-Session: ember-workshop-lantern-bs

* fix(tui): strip inspector flags from auth child

Punchcard-Session: ember-workshop-lantern-bs
2026-08-05 05:40:13 +08:00
Dallin Romney 8fc4458593 fix(release): accept legacy empty core artifacts (#119337) 2026-08-05 04:59:55 +08:00
Peter Steinberger f15120c6d1 fix(qa): carry selected runtime into flow scenarios (#119324)
* fix(qa): carry selected runtime into flow scenarios

* test(qa): align compaction runtime fact assertion
2026-08-04 13:51:35 -07:00
Dallin Romney 532580fa2b fix(ci): retry interrupted Windows dashboard release checks (#119095) 2026-08-05 04:36:05 +08:00
Dallin Romney f3dbf15ad3 fix(release): filter validation ancestry fetch (#119334) 2026-08-05 04:34:15 +08:00
Dallin Romney 7c93cff84a fix(release): accept trusted extended-stable validation evidence (#119264)
* fix(release): accept trusted extended-stable validation evidence

* fix(release): document trusted candidate promotion

* docs(release): clarify validation evidence recovery
2026-08-05 04:14:30 +08:00
Vincent Koc 11027a3712 fix(sessions): preserve recorder-owned user turns (#119307)
Punchcard-Session: coral-workshop-workshop-3f
2026-08-05 04:12:16 +08:00
Vincent Koc 6293b54250 perf(cli): split plugin registry startup timing (#119318)
* perf(cli): split plugin registry startup timing

Punchcard-Session: coral-workshop-workshop-3f

* test(cli): use managed temp directory cleanup

Punchcard-Session: coral-workshop-workshop-3f
2026-08-05 04:08:35 +08:00
Vincent Koc aa07d55ec9 fix(qa): align release scenario setup and compaction proof (#119188)
* fix(qa): align release scenarios with runtime contracts

* fix(qa): retain inferred model provider plugins

* fix(qa): accept default OpenClaw compaction runtime
2026-08-05 03:32:49 +08:00
Vincent Koc e99c289f3b fix(ci): avoid duplicate Matrix release QA runs (#119171)
* fix(ci): gate reusable Matrix QA runs

* docs(ci): document Matrix release QA budget
2026-08-05 03:31:00 +08:00
Vincent Koc 8b443bb34f test(llama-cpp): split inference mapping coverage
Punchcard-Session: frost-brook-timber-mx
2026-08-05 02:44:19 +08:00
Vincent Koc 220445b1b7 fix(llama-cpp): type shutdown cleanup failures
Punchcard-Session: frost-brook-timber-mx
2026-08-05 02:43:34 +08:00
Vincent Koc a175e24afb Merge remote-tracking branch 'origin/main' into fix-local-provider-lifecycle-20260804
* origin/main:
  perf(agents): reuse provider policy manifest registry (#119305)
  fix(media): roll back partial generated batches (#119292)
2026-08-05 02:26:04 +08:00
Vincent Koc 865b517235 fix(llama-cpp): record native shutdown failures 2026-08-05 02:25:52 +08:00
Vincent Koc 832459d2ae perf(agents): reuse provider policy manifest registry (#119305) 2026-08-05 02:25:11 +08:00
Peter Steinberger 941e18d4d1 fix(media): roll back partial generated batches (#119292)
* fix(media): roll back partial generated batches

* test(media): prove generated batch rollback on disk
2026-08-04 11:23:30 -07:00
Vincent Koc ce229353f3 Merge remote-tracking branch 'origin/main' into fix-local-provider-lifecycle-20260804
* origin/main:
  fix(gateway): steer matching embedded turns (#119287)
2026-08-05 02:23:01 +08:00
Jason (Json) ed6ee79c56 fix(gateway): steer matching embedded turns (#119287) 2026-08-04 12:21:40 -06:00
Vincent Koc 6dc5d00374 fix(llama-cpp): explain cleanup failure recovery 2026-08-05 02:10:27 +08:00
Vincent Koc ef632a4a93 merge: sync main into llama.cpp lifecycle fix
* origin/main: (40 commits)
  fix(telegram): correlate deliveries to explicit topics
  fix(plugins): preserve install index state across failures (#119228)
  test: trim redundant control ui coverage (#119286)
  test: cover missing config method in memory settings
  fix: gate curated config controls by method
  test: cover read-only admin method gates
  fix: keep config drafts on their gateway
  fix: reset agent skill filters with config patch
  refactor: reuse chat error state helper
  test: avoid unbound identity request assertion
  refactor: isolate clawhub skill search
  fix: guard delayed config actions across reconnects
  fix: preserve workshop revisions across session navigation
  refactor: isolate workshop revision handoff
  test: advertise skill action methods in ui e2e
  fix: fail stale workshop revision sends
  fix: bind revision handoffs to gateway snapshots
  fix: recheck queued agent and skill access
  fix: recheck config access after parsing
  test: advertise config writes in ui e2e
  ...
2026-08-05 01:40:14 +08:00
Vincent Koc 31d8e046bf fix(llama-cpp): reject queued work after cleanup failure 2026-08-05 01:40:08 +08:00
Peter Steinberger 7a0a4c5f2a fix(telegram): correlate deliveries to explicit topics
Use the explicit topic selected by Telegram sends when recording delivery correlation, preventing successful message, poll, and sticker actions from leaving the matching inbound event falsely undelivered.
2026-08-04 22:51:32 +05:30
Vincent Koc ef11eae39b fix(plugins): preserve install index state across failures (#119228)
* fix(plugins): preserve install index policy config

* fix(plugins): restore complete install index state

* fix(plugins): fence install index rollback

* fix(plugins): fence generic install index rollback

* fix(plugins): keep lifecycle lease context private

* test(cli): align plugin index rollback mocks

* test(plugins): enforce index rollback receipts

* fix(plugins): serialize install rollback with config commit

* test(plugins): keep legacy index writer mock private
2026-08-05 01:04:17 +08:00
Shakker bfba83956f test: trim redundant control ui coverage (#119286) 2026-08-04 17:48:31 +01:00
Shakker ace391dcb7 test: cover missing config method in memory settings 2026-08-04 17:48:31 +01:00
Shakker f46819f884 fix: gate curated config controls by method 2026-08-04 17:48:31 +01:00
Shakker 036f97d25b test: cover read-only admin method gates 2026-08-04 17:48:31 +01:00
Shakker bd43c96f56 fix: keep config drafts on their gateway 2026-08-04 17:48:31 +01:00
Shakker 131018cf1b fix: reset agent skill filters with config patch 2026-08-04 17:48:31 +01:00
Shakker 007022968d refactor: reuse chat error state helper 2026-08-04 17:48:31 +01:00
Shakker d8869464e9 test: avoid unbound identity request assertion 2026-08-04 17:48:31 +01:00
Shakker bc0c47e901 refactor: isolate clawhub skill search 2026-08-04 17:48:31 +01:00
Shakker ed1ddb6d55 fix: guard delayed config actions across reconnects 2026-08-04 17:48:31 +01:00
Shakker 65545770d0 fix: preserve workshop revisions across session navigation 2026-08-04 17:48:31 +01:00
Shakker 28495ea691 refactor: isolate workshop revision handoff 2026-08-04 17:48:31 +01:00
Shakker f979883b8f test: advertise skill action methods in ui e2e 2026-08-04 17:48:31 +01:00
Shakker a98098b64f fix: fail stale workshop revision sends 2026-08-04 17:48:31 +01:00
Shakker 34e73d25a6 fix: bind revision handoffs to gateway snapshots 2026-08-04 17:48:31 +01:00