Peter Steinberger
c844d01375
fix: stabilize release validation gates
2026-05-27 10:41:00 +01:00
Peter Steinberger
845f4a2a55
test: update plugin prerelease expectations
2026-05-27 10:41:00 +01:00
Peter Steinberger
957af7bc84
fix: restore release ci after rebase
2026-05-27 10:40:59 +01:00
Peter Steinberger
bdb33c1850
fix: restore release ci checks
2026-05-27 10:40:58 +01:00
Peter Steinberger
9d74254501
fix: clean up post-rebase runtime drift
2026-05-27 10:40:58 +01:00
Peter Steinberger
2c7021d76e
fix: restore shared tool-call stream wrapper
2026-05-27 10:40:57 +01:00
Peter Steinberger
3964620cd4
fix: stabilize release validation regressions
2026-05-27 10:40:56 +01:00
Peter Steinberger
f6a7512ce6
fix: load lightweight provider catalog entries
2026-05-27 10:40:55 +01:00
Peter Steinberger
6c1c1d3bf8
fix: add provider entry catalogs for scoped live discovery
2026-05-27 10:40:55 +01:00
Peter Steinberger
06216e98a7
fix: run static provider catalogs during scoped discovery
2026-05-27 10:40:55 +01:00
Peter Steinberger
15582cfe21
fix: restore provider-scoped release discovery
2026-05-27 10:40:55 +01:00
Peter Steinberger
59a2721e6e
refactor: inline acpx proxy error formatter
2026-05-27 10:40:55 +01:00
Peter Steinberger
65118c86ea
refactor: remove legacy provider compat paths
2026-05-27 10:40:54 +01:00
Peter Steinberger
e88dd9b0d0
refactor: remove static model and pi auth paths
...
Drop static model catalogs and Pi auth bridges, move model/provider facts to manifest-owned runtime contracts, and harden internal embedded-agent utilities.
2026-05-27 10:40:53 +01:00
Peter Steinberger
d927fdca8f
refactor: tighten agent session runtime
...
Make agent-core/runtime dependencies explicit, consolidate compaction and session transcript helpers, and move model/session helpers behind OpenClaw-owned contracts.
2026-05-27 10:40:39 +01:00
Peter Steinberger
85f3e9e988
refactor: extract shared llm runtime
...
Move provider model registries, stream wrappers, OAuth helpers, and LLM utilities into src/llm with plugin-sdk barrels instead of depending on the old embedded runtime layout.
2026-05-27 10:40:15 +01:00
Cathryn Lavery
730ac1a68d
fix(agents/harness): validate forced plugin harness support before pinning ( #74341 )
...
Validates forced plugin harness support for the requested provider/model before pinning Codex or any other plugin harness. This prevents an explicitly forced Codex runtime from accepting unsupported OpenAI-like providers through a hardcoded bypass while preserving implicit PI fallback and CLI runtime alias passthrough.
Regression coverage covers forced Codex rejection for unsupported openai/openai-codex support, Codex provider support declarations, CLI attempt routing, pi-embedded auth/profile forwarding fakes, Testbox scenario probes, and live Docker Codex plugin E2E.
Thanks @cathrynlavery.
2026-05-27 09:59:04 +01:00
Peter Steinberger
98c0ad8b42
test: align extension inbound context assertions
2026-05-27 04:52:02 -04:00
Peter Steinberger
1507a9701b
refactor: centralize inbound supplemental context
...
* refactor: centralize inbound supplemental context
* refactor: trim supplemental finalizer typing
* docs: clarify supplemental context projection
* refactor: move inbound finalization into core
* refactor: simplify channel inbound facts
* refactor: fold supplemental media into inbound finalizer
* refactor: migrate channel inbound callers to builder
* docs: mark inbound finalizer compat types deprecated
* refactor: wire runtime turn context builder
* refactor: replace channel turn runtime API
* fix: respect discord quote visibility
* fix: avoid deprecated line dispatch helper
* refactor: deprecate channel message SDK seams
* docs: trim channel outbound SDK page
* test: migrate irc inbound assertion
* refactor: deprecate outbound SDK facades
* refactor: deprecate channel helper SDK facades
* refactor: deprecate channel streaming SDK facade
* refactor: move direct dm helpers into inbound SDK
* chore: mark legacy test-utils SDK alias deprecated
* refactor: remove unused allow-from read helper
* refactor: route remaining channel dispatch through core
* refactor: enforce modern extension SDK imports
* test: give slow image root tests more time
* ci: support node fallback on windows
* fix: add transcripts tool display metadata
* refactor: trim legacy channel test seams
* fix: preserve channel compat after rebase
* fix: keep deprecated channel inbound aliases
* fix: preserve discord thread context visibility
* fix: clean final rebase conflicts
* fix: preserve channel message dispatch aliases
* fix: sync channel refactor after rebase
* fix: sync channel refactor after latest main
* fix: dedupe memory-core subagent mock
* test: align clickclack inbound dispatch assertions
* fix: sync plugin sdk api hash after rebase
* fix: sync channel refactor after latest main
* fix: sync plugin sdk api hash after rebase
* fix: sync plugin sdk api hash after latest main
* test: remove stale inbound context awaits
2026-05-27 09:26:06 +01:00
Vincent Koc
cefa6777e2
fix(qa): keep fallback delivery on latest targets
2026-05-27 10:06:09 +02:00
Vincent Koc
35248be6b0
fix(qa): isolate mock bridge hook state
2026-05-27 10:06:08 +02:00
Vincent Koc
c2d059dc29
fix(qa): scope mock image prompts to latest turn
2026-05-27 10:06:08 +02:00
Vincent Koc
14198a1c66
fix(qa): close remaining mock qa e2e regressions
2026-05-27 10:06:08 +02:00
Vincent Koc
81c1892c9a
fix(qa): stabilize mock QA scenario contracts
2026-05-27 10:06:08 +02:00
Vincent Koc
ca990f2ce1
fix(codex): keep attempt watchdog for queued terminal turns
...
Keep the Codex app-server full attempt watchdog armed after a terminal turn notification is queued, so a wedged notification projector cannot leave a run stuck indefinitely.
Proof:
- `git diff --check origin/main...HEAD`
- `node scripts/run-oxlint.mjs extensions/codex/src/app-server/run-attempt.ts extensions/codex/src/app-server/run-attempt.test.ts`
- `node scripts/run-vitest.mjs run extensions/codex/src/app-server/run-attempt.test.ts --testNamePattern "keeps the attempt watchdog armed"` passed in PR proof (`1 passed | 232 skipped`)
- `OPENCLAW_TESTBOX=1 pnpm check:changed` passed in `tbx_01kskyg44ej461k574jee8ffjc`
- CI required checks green after `build-artifacts` rerun job `78031279635` passed
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-05-27 08:50:59 +01:00
Agustin Rivera
08a73dbe4b
fix(qqbot): gate fallback approval buttons ( #87154 )
...
QQBot fallback approval buttons now reuse the same slash-command authorization path as real commands, including access groups and default-account config merging.
Verification:
- node scripts/test-extension.mjs qqbot
- node --max-old-space-size=8192 --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check && git diff --check
- pnpm lint --threads=8
- node scripts/run-vitest.mjs src/agents/agent-command.live-model-switch.test.ts
- GitHub PR checks for 7cc0f15031 : passed
Thanks @eleqtrizit.
Co-authored-by: Agustin Rivera <agustin@rivera-web.com >
2026-05-27 08:44:55 +01:00
Peter Steinberger
e718d471f2
test(codex): mirror raw reasoning event order
2026-05-27 08:29:18 +01:00
Peter Steinberger
4314eadc79
fix(codex): keep raw assistant release path intact
2026-05-27 08:29:18 +01:00
Peter Steinberger
284098d2d8
fix(codex): preserve raw reasoning source-reply guard
2026-05-27 08:29:18 +01:00
Username
4d6bcf9f17
test(codex): verify completion idle watch arms after non-assistant rawResponseItem/completed
...
Regression test for the binary stall fix: when rawResponseItem/completed
arrives with a non-assistant type (e.g. "reasoning") and all tracked
items have completed, the completion idle watch must stay armed so the
stall is caught in 60s, not 30 minutes.
Refs openclaw/openclaw#87071
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-27 08:29:18 +01:00
Username
a36c82ba8b
fix(codex): arm completion idle watch after rawResponseItem/completed with no active items
...
When the codex binary emits rawResponseItem/completed and all tracked
items have completed (activeTurnItemIds empty, no active requests), the
binary should deliver turn/completed imminently. Previously, a
rawResponseItem/completed that didn't qualify as a post-tool assistant
completion would actively disarm the completion idle watch, leaving only
the 30-minute terminal timeout to catch a stalled binary. This caused
turns to hang for up to 30 minutes when the OpenAI Responses API fails
to deliver response.completed to the binary.
Now, rawResponseItem/completed with no active items arms the 60s
completion idle watch and is excluded from the disarm path, so stalled
binaries are detected in 60s instead of 30 minutes.
Refs openclaw/openclaw#87071
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-27 08:29:18 +01:00
Peter Steinberger
9ed1b02134
fix(discord): harden requester checks for guild actions
2026-05-27 08:22:25 +01:00
Javier Ailbirt
da822dd28b
fix(googlechat): suppress thread sends in DMs
...
Guard Google Chat DM delivery so direct-space messages that include thread metadata do not request threaded sends. The monitor now derives one group-only reply thread and reuses it for both turn reply context and typing indicator messages.
Adds regression coverage for a DM event carrying `message.thread.name`, proving reply metadata and typing sends omit the thread while the turn still runs.
Verification:
- `node scripts/run-vitest.mjs extensions/googlechat/src/monitor.test.ts`
- `pnpm check:changed` (Blacksmith Testbox `tbx_01ksm18yck1zy35k0adgf66hax`, run https://github.com/openclaw/openclaw/actions/runs/26494371192 )
- `/Users/steipete/Projects/agent-scripts/skills/autoreview/scripts/autoreview --mode local`
- PR CI run https://github.com/openclaw/openclaw/actions/runs/26494573295
- Critical Quality run https://github.com/openclaw/openclaw/actions/runs/26494573221
- Real behavior proof override run https://github.com/openclaw/openclaw/actions/runs/26494609491
Co-authored-by: Javier Ailbirt <jailbirt@theeye.io >
2026-05-27 07:28:09 +01:00
Pablo Guardiola
0c867eef75
feat: expose plugin approval action metadata
...
Expose plugin approval action metadata so plugins can describe richer approval actions across gateway, SDK, channel, and UI surfaces.
2026-05-26 22:46:09 -07:00
Peter Steinberger
b9f6abf5e8
fix: bind plugin command llm auth to host agent
2026-05-27 06:38:35 +01:00
Agustin Rivera
119d2359f3
fix(memory): reject prompt-like memory stores ( #87142 )
...
* fix(memory): reject prompt-like memory stores
* fix(changelog): mention memory store rejection
2026-05-26 21:37:29 -07:00
Agustin Rivera
e72621e566
fix(hooks): enforce default hook agent allowlist
...
Enforce hook allowedAgentIds against the effective default agent when hook payloads omit or blank agentId, while preserving omitted-agent dispatch semantics for default/global routing.
Also updates the affected generated hook config docs from the contributor change and fixes the current-main memory-core test mock after rebasing the PR branch.
Verification:
- pnpm format:check extensions/memory-core/src/dreaming.test.ts src/gateway/hooks.ts src/gateway/hooks.test.ts src/gateway/server/hooks-request-handler.ts src/gateway/server.hooks.test.ts && git diff --check
- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway-server.config.ts src/gateway/hooks.test.ts src/gateway/server.hooks.test.ts --reporter=dot --pool=forks --no-file-parallelism --testTimeout=120000
- node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test-local-pr87124.tsbuildinfo
- pnpm check:test-types
- .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
- GitHub PR merge state CLEAN; CodeQL Critical Quality rerun succeeded after first runner checkout wedged
Co-authored-by: Agustin Rivera <agustin@rivera-web.com >
2026-05-27 05:05:18 +01:00
Steady-ai
eb8f9b46da
fix(codex): avoid native compaction on budget triggers ( #86772 )
...
* fix(codex): avoid native compaction on budget triggers
* fix(codex): require manual trigger for native compaction
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-27 05:04:35 +01:00
Peter Steinberger
d2711c900d
perf(gateway): reuse prepared auth stores
2026-05-27 04:51:43 +01:00
Peter Steinberger
1ce363743a
test: speed up codex app server run attempts
2026-05-27 04:51:20 +01:00
Peter Steinberger
231a812276
build(codex): update Codex CLI to 0.134.0
2026-05-27 04:42:12 +01:00
Peter Steinberger
acbb06e266
test: harden e2e harness isolation
2026-05-26 23:20:42 -04:00
Peter Steinberger
145b57c734
perf(gateway): defer skipped-channel sidecars
2026-05-27 04:20:26 +01:00
Jason (Json)
13cfb77c10
fix: repair local approval resolution ( #86771 )
2026-05-26 19:56:30 -07:00
Peter Steinberger
0cfccdb0c7
fix(codex): keep WebChat delivery hints out of user requests
...
Land PR #87003 from @ragesaq with a maintainer fix for routed room events.
Co-authored-by: Forge <forge@psiclawops.dev >
2026-05-27 03:44:27 +01:00
Josh Lehman
9119492f15
fix: preserve plugin LLM command auth ( #85936 )
...
Merged via squash.
Prepared head SHA: e61c724708
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-05-26 22:41:52 -04:00
Peter Steinberger
df659d124d
refactor(telegram): encode conversation binding mode
2026-05-27 03:26:31 +01:00
Agustin Rivera
06047005ef
fix(browser): validate current tab before snapshots ( #78526 )
...
* fix(browser): validate current tab before snapshots
* fix(browser): reject snapshot selector before SSRF guard
* fix(test): stabilize plugin activation normalization
* fix(ci): fetch opengrep base history
* fix(snapshot): enforce snapshot ssrf policy
* docs(changelog): add unreleased entry for snapshot SSRF fix
* Revert "docs(changelog): add unreleased entry for snapshot SSRF fix"
This reverts commit 4f3031ff65 .
* fix(changelog): record snapshot ssrf entry
2026-05-26 19:11:01 -07:00
Vincent Koc
d7d037b46f
fix(codex): quarantine unsupported dynamic tool schemas
2026-05-27 04:02:07 +02:00
kesslerio
b8ea6d2aee
fix(telegram): route plugin-bound topic messages
2026-05-27 02:52:25 +01:00