Commit Graph

18693 Commits

Author SHA1 Message Date
Vincent Koc a87ee810da fix(llama-cpp): fence native runtime handoff
Punchcard-Session: frost-brook-timber-mx
2026-08-05 15:33:49 +08:00
Vincent Koc da6c8c1670 merge: sync origin/main
Punchcard-Session: frost-brook-timber-mx
2026-08-05 14:48:57 +08:00
Vincent Koc 2b0e1e579a fix(llama-cpp): report cleanup recovery to initiating request
Punchcard-Session: frost-brook-timber-mx
2026-08-05 14:46:39 +08:00
Peter Steinberger 702eb6eb57 fix(qa): prove newer session facts outrank competing durable memory (#119496)
* fix(qa): prove session memory outranks stale durable facts

* fix(qa): require the canonical memory search result window

* fix(qa): honor the optional canonical memory search limit
2026-08-04 23:34:46 -07:00
Jesse Merhi 95d7d95515 feat(tools): support batched tool search queries (#118623)
* feat(tools): support batched tool search queries

* fix(tools): harden batched tool search

* fix(tools): preserve batch search contracts

* fix(tools): bound batch search processing

* fix(tools): bound batch candidate metadata

* fix(tools): preserve callable batch candidates

* docs(tools): align batch search QA proof

* refactor(tools): isolate search request parsing

* test(qa): strengthen structured search proof

* test(qa): align structured directory proof

* fix(tools): preserve scalar search compatibility

* test(qa): disable batch scenario retries

* test(qa): allow direct-only tools in structured proof

* test(qa): verify nested catalog call result

* test(qa): remove obsolete result scanner
2026-08-05 16:28:10 +10:00
Peter Steinberger f3186b0876 fix(qa): release parent parity transport before worker acquisition (#119492) 2026-08-04 23:23:41 -07:00
qingminlong 76ac472f56 fix(telegram): reject malformed table spans (#109962)
* fix(telegram): reject malformed table spans

* fix(telegram): preserve spaced fallback colspans

* fix(telegram): simplify strict table-span parsing

Preserve the original contributor fix while reusing the existing strict numeric owner, enforcing complete-decimal span attributes on both Telegram paths, and strengthening sibling regressions. Production LOC remains net zero.

Co-authored-by: qingminlong <0668001063@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-04 23:13:46 -07:00
Peter Steinberger cb3890b921 test(qa): isolate active memory request traces (#119502) 2026-08-04 23:08:31 -07:00
Peter Steinberger 046a6881bb fix(qa): prove secret fixtures were read before redaction (#119495) 2026-08-04 23:00:32 -07:00
Peter Steinberger a124966706 fix(qa): require a fresh response for memory recall (#119493) 2026-08-04 22:56:58 -07:00
Peter Steinberger b3aab44f4b fix(qa): keep live provider scenarios out of mock lanes (#119498) 2026-08-04 22:52:57 -07:00
Peter Steinberger 57122c965c fix(qa): clean partial gateway startup and staged plugin roots (#119494) 2026-08-04 22:48:25 -07:00
Peter Steinberger dc93ea6d69 fix(qa): follow durable finals after streamed previews (#119378)
* test(qa): isolate memory scenario evidence

* test(qa): follow durable progress completion

* test(qa): run doctor migration noninteractively

* test(qa): split active memory follow-up

* test(qa): wait for preview retirement

* test(qa): require ordered preview retirement

* test(qa): record ordered durable reply evidence

* test(qa): preserve durable delivery budgets

* test(qa): isolate durable lifecycle by account

* test(qa): scope durable reply assertions by account

* test(qa): preserve durable conversation identity
2026-08-04 22:29:15 -07:00
Shubhankar Tripathy 1aeecb9be6 fix(amazon-bedrock-mantle): dedupe the IAM token-failure diagnostic per region (#67288) (#81208)
* fix(amazon-bedrock-mantle): dedupe IAM failure logs

Co-authored-by: Shubhankar Tripathy <reach2shubhankar@gmail.com>
Punchcard-Session: cobalt-brook-meadow-m9

* fix(amazon-bedrock-mantle): emit IAM diagnostic after debug enables

Co-authored-by: Shubhankar Tripathy <reach2shubhankar@gmail.com>

Punchcard-Session: cobalt-brook-meadow-m9

* fix(amazon-bedrock-mantle): surface changed IAM failures

Co-authored-by: Shubhankar Tripathy <reach2shubhankar@gmail.com>

Punchcard-Session: cobalt-brook-meadow-m9

* fix(amazon-bedrock-mantle): fence stale IAM failures

Co-authored-by: Shubhankar Tripathy <reach2shubhankar@gmail.com>

Punchcard-Session: clear-orchard-lantern-bc

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-05 13:26:30 +08:00
zhanxingxin1998 353b4a339a fix(discord): invalidate member cache on lifecycle events (#110414)
Clear cached member and user entities when members join or leave, matching the existing update-event behavior and preventing stale role authorization.

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-04 22:14:42 -07:00
pash-openai 75ef5aebec Keep Slack progress and final replies in one message (#119376) (#119480) 2026-08-04 21:49:38 -07:00
Peter Steinberger 60a8ec821c refactor(plugins): reuse canonical error coercion (#119451) 2026-08-04 21:05:45 -07:00
Peter Steinberger 9214e6381d refactor(discord): consolidate interactive response handling (#119448) 2026-08-04 21:01:32 -07:00
Peter Steinberger 2b003f186d refactor(memory-wiki): reuse canonical plugin normalization (#119449) 2026-08-04 20:55:58 -07:00
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