Syu
b316c9cacf
fix(channels): honor explicit preview streaming settings
...
Explicit Telegram and Discord preview modes now override inherited block streaming while explicit channel block settings remain authoritative.
Co-authored-by: Syu <zhuqimo@gmail.com >
2026-08-05 09:04:49 +05:30
Peter Steinberger
ad37e91fbb
refactor(telegram): consolidate outbound contracts and targets ( #119438 )
2026-08-04 20:33:45 -07:00
Peter Steinberger
b5d99c1f06
fix(qa): retry transport cleanup and always stop owned labs ( #119442 )
2026-08-04 20:31:28 -07:00
Peter Steinberger
b5237ac86a
fix(qa): preserve scenario isolation in serial suites ( #119439 )
2026-08-04 20:26:47 -07:00
Vincent Koc
e35d22807e
perf(xai): lazy-load optional capability runtimes ( #119374 )
...
Punchcard-Session: coral-workshop-workshop-3f
2026-08-05 11:26:40 +08:00
Peter Steinberger
767dc7019d
refactor(browser): consolidate browser CLI and normalization helpers ( #119432 )
2026-08-04 20:26:21 -07:00
Peter Steinberger
bf1bdb429e
fix(qa): require ready transport accounts ( #119431 )
2026-08-04 20:23:31 -07:00
Jason (Json)
ab7b3ffd1f
fix: retry delivery when outbound adapter is unavailable ( #119371 )
...
* fix(outbound): preserve pre-dispatch retryability
* test(outbound): assert lazy runtime sender
* fix(feishu): preflight direct message runtime
* test(gateway): preserve scoped registry fixture
2026-08-04 21:22:07 -06:00
Peter Steinberger
0ef1911192
refactor(signal): share outbound and reaction transport ( #119415 )
2026-08-04 20:19:33 -07:00
Vincent Koc
1ee0564b09
fix(discord): avoid doctor runtime loading ( #119391 )
...
* fix(discord): publish doctor capability metadata
Punchcard-Session: amber-workshop-river-yr
* fix(doctor): read packaged channel metadata
Punchcard-Session: amber-workshop-river-yr
2026-08-05 11:05:35 +08:00
Peter Steinberger
847e6eea8e
fix(slack): infer upload filename extensions from MIME types ( #119399 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-04 19:57:10 -07:00
Peter Steinberger
4707934b30
refactor(google-meet): unify gateway and tool dispatch ( #119413 )
2026-08-04 19:52:26 -07:00
mushuiyu886
e8eb765ab7
fix(chutes): honor serving context limits ( #119196 )
2026-08-04 19:42:54 -07:00
Dinesh H Suthar
50c7444edf
fix(sessions): preserve compatible auth profiles on model changes ( #117550 )
...
* fix(model-picker): preserve compatible auth profiles
* chore(plugin-sdk): refresh API baseline
* fix(model-picker): keep profile policy core-owned
* fix(model-picker): preserve profiles across auth aliases
* chore(plugin-sdk): update public surface budgets
* fix(model-picker): honor explicit profile clearing
* fix: preserve compatible auth profiles on model changes
* perf: reuse prepared auth profile metadata
* docs(plugin-sdk): document direct model persistence fallback
* test: expose auth snapshot in directive mock
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
Co-authored-by: Dinesh Suthar <dineshsld20@gmail.com >
2026-08-05 07:40:00 +05:30
Vincent Koc
9f8270dedc
fix(qa): stop zombie-only gateway process groups ( #119396 )
...
Punchcard-Session: amber-orchard-valley-s4
2026-08-05 10:07:28 +08:00
Vincent Koc
6a8e11e63c
fix(qa): repair release validation scenarios ( #119150 )
...
* fix(qa): repair parity and matrix media setup
Punchcard-Session: silver-valley-valley-dt
* test(qa): accept token-budgeted compaction suffix
Punchcard-Session: silver-valley-valley-dt
* test(qa): scope request diagnostics
Punchcard-Session: silver-valley-valley-dt
* test(qa): prove thread-memory causality
Punchcard-Session: silver-valley-valley-dt
* test(qa): configure Matrix image generation and fail fast
Punchcard-Session: silver-valley-valley-dt
* fix(qa): require memory get before thread recall
Punchcard-Session: silver-valley-valley-dt
* fix(qa): unify mock provider dispatch
Punchcard-Session: silver-valley-valley-dt
* fix(qa): repair Anthropic IDs and compaction causality
Punchcard-Session: silver-valley-valley-dt
* fix(qa): authenticate compaction wire causality
Punchcard-Session: silver-valley-valley-dt
* fix(qa): preserve Responses tool item identity
Punchcard-Session: silver-valley-valley-dt
* fix(qa): scope restart heartbeat proof
Punchcard-Session: silver-valley-valley-dt
* test(qa): assert causal traces before delivery
Punchcard-Session: silver-valley-valley-dt
* fix(qa): validate code mode completion evidence
Punchcard-Session: silver-valley-valley-dt
* test(qa): split causal catalog checks
Punchcard-Session: silver-valley-valley-dt
* style(qa): format matrix scenario tests
Punchcard-Session: silver-valley-valley-dt
2026-08-05 09:56:06 +08:00
Peter Steinberger
ed31a4dd79
fix(slack): authorize reaction and message reads before applying limits ( #118736 )
...
* fix(slack): bound reaction users in message actions
* test(slack): validate encoded reaction request bodies
* fix(slack): keep reaction user limits in action owner
* fix(slack): authorize message reads before validating limits
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-04 18:12:59 -07:00
Sarah Fortune
c56eaca14b
fix(slack): Fix bad escaping in slack tool commentary ( #119373 )
...
* fix(slack): preserve Markdown in progress drafts
* fix(slack): retain escaping for tool progress
* fix(slack): scope progress line escaping
* fix(slack): preserve progress formatting by source
* test(slack): assert plan refresh rendering
* test(slack): keep progress regression coverage scoped
* update tests
---------
Co-authored-by: Sarah Fortune <sarah.fortune@gmail.com >
2026-08-04 18:10:25 -07:00
Josh Avant
618fba92bf
feat(audit): add execution identity inspection ( #117034 )
...
* feat(audit): add opt-in execution identity inspection
* fix(audit): gate recovery identity retention
* fix(audit): keep recovery identity type private
* test(audit): type internal recovery fixture
* test(audit): split recovery identity coverage
* docs(audit): define operator read trust boundary
* test(qa): register identity scenario child
* fix(audit): enforce shared identity retention bounds
* fix(audit): seal public ingress identity boundary
* fix(audit): keep ingress guard lint-clean
* fix(gateway): preserve advertised method order
* chore(protocol): sync advertised method order
* fix(protocol): encode audit selector invariants
* test(audit): prove exact execution guard
* fix(audit): keep identity storage lazy
2026-08-04 20:05:15 -05:00
Peter Steinberger
58025dd33c
fix(fs): adopt fs-safe 0.5.2 untrusted filename sanitization ( #119363 )
...
* fix(fs): adopt fs-safe 0.5.2 untrusted filename sanitization
* fix(media): classify pre-open identity drift as access denial
* chore(checks): refresh SDK baseline and env-var budget for fs-safe adoption
* test(media): compact sanitizer cases under max-lines
* fix(agents): keep workspace symlink contract under fs-safe 0.5.2
* fix(infra): align path normalization and atomic-write proofs with fs-safe 0.5.2
* fix(fs): keep operator symlink contracts on config, control-ui, skills, hooks
* fix(fs): restore sandbox and session-lock contracts under fs-safe 0.5.2
* test(claws): expect symlink diagnostic for tampered plan parents
* fix(agents): canonicalize apply-patch mutations through contained aliases
* test(agents): split alias-update regression into focused file
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-04 17:53:44 -07:00
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
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
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
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
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
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
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
865b517235
fix(llama-cpp): record native shutdown failures
2026-08-05 02:25:52 +08: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
Guoji-XYDT
47bd1bb194
fix(telegram): report degraded inline controls
...
Preserve readable fallbacks and tell the model when Telegram drops unencodable controls, including recovery guidance.\n\nCo-authored-by: Guoji-XYDT <li.guoji@xydigit.com >
2026-08-04 21:50:45 +05:30
Vincent Koc
622d8a048e
fix(llama-cpp): make cleanup failures terminal
2026-08-04 23:37:13 +08:00
Vincent Koc
de8afade57
refactor(llama-cpp): clarify terminal cleanup contract
2026-08-04 23:12:06 +08:00
Vincent Koc
21e52da0cf
merge: sync origin/main
...
* origin/main:
fix(agents): protect private memory in shared chats (#119198 )
perf(cli): skip absent gateway workspace dotenv (#119227 )
fix(agents): observe native provider prompt egress (#119219 )
fix(feishu): report bot identity retry failures (#102185 )
fix(memory): load configured providers for CLI search (#119186 )
fix(discord): count retained speech bytes
test(discord): isolate exact speech overflow
test(discord): cover exact speech overflow
fix(discord): bound realtime exact speech
2026-08-04 23:05:23 +08:00
Vincent Koc
a9d768ced6
fix(llama-cpp): detach retired model state
2026-08-04 23:03:19 +08:00
Vincent Koc
d06fc25a0c
fix(agents): protect private memory in shared chats ( #119198 )
...
* fix(agents): protect private memory in shared chats
Fixes #84466
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* fix(agents): propagate shared chat type across runtimes
* fix(agents): enforce bootstrap privacy after hooks
* test(agents): cover final bootstrap filtering
* fix(agents): filter private memory before allowlists
* fix(agents): preserve bootstrap source identity
* refactor(agents): simplify bootstrap source identity
* fix(agents): keep bootstrap source identity private
* fix(agents): unify CLI runtime chat type
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-04 23:01:38 +08:00
Vincent Koc
889cd316c7
fix(llama-cpp): keep failed cleanup terminal
2026-08-04 22:57:59 +08:00
Vincent Koc
9d6d9af941
merge: bound Discord realtime exact speech retention ( #119250 )
...
* commit 'c238564d2707be5527e83b112025443401e7e2fa':
fix(discord): count retained speech bytes
test(discord): isolate exact speech overflow
test(discord): cover exact speech overflow
fix(discord): bound realtime exact speech
2026-08-04 22:56:25 +08:00
Vincent Koc
a54bec799c
fix(agents): observe native provider prompt egress ( #119219 )
...
* fix(agents): observe final provider prompt egress
* fix(agents): observe native provider prompt egress
* test(agents): type native prompt observer models
2026-08-04 22:46:07 +08:00
zhangLei99586
e79f358b02
fix(feishu): report bot identity retry failures ( #102185 )
...
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: zhangLei99586 <294081397+zhangLei99586@users.noreply.github.com >
2026-08-04 22:45:28 +08:00
Vincent Koc
c238564d27
fix(discord): count retained speech bytes
2026-08-04 22:27:43 +08:00
Vincent Koc
6788bf51da
merge: sync origin/main
...
* origin/main: (23 commits)
chore(tui): add Gateway boundary PTY coverage (#119191 )
fix(telegram): route reactions to their originating forum topics
test(gateway): isolate scheduled service timers (#119218 )
test(qa): cover Canvas agent and node controls (#119047 )
fix(cli): avoid repeated migration scans during local agent turns (#119051 )
fix(gateway): keep agents list on prepared model facts (#119208 )
fix(telegram): retry update offset persistence
fix(ci): accept profiled partial Kova gates (#119121 )
fix(qqbot): keep channel API calls on the active account [AI] (#118575 )
fix(agents): recover from invalid compaction summaries (#119137 )
fix(gateway): expose OAuth-backed tools to CLI agents (#119166 )
fix(plugins): preserve metadata reloads during models status (#119183 )
fix(test): bound direct gateway server runs (#119184 )
test(tui): prove command surfaces through PTY (#119165 )
fix(testbox): restore claims across path aliases (#119170 )
fix(message): preserve sends with incidental Telegram locations
fix(perf): give each concurrency sample a full deadline (#119164 )
fix(testbox): remove changed-gate sync residue (#119163 )
fix(telegram): preserve later chunks after rejected sends
fix(tui): block terminal controls in system messages (#118998 )
...
2026-08-04 22:15:40 +08:00
Vincent Koc
48b950d9fc
fix(llama-cpp): make runtime cleanup best effort
2026-08-04 22:15:34 +08:00
Vincent Koc
193317fd68
test(discord): isolate exact speech overflow
2026-08-04 22:08:37 +08:00