Peter Steinberger
7f28c8bd07
fix: route media completions through requester agent ( #88141 )
2026-05-30 00:24:28 +02:00
Sally O'Malley
6037a74660
Add plugin manifest contract for SecretRef provider integrations ( #82326 )
...
* secret-provider-integrations
Signed-off-by: sallyom <somalley@redhat.com >
* feat(secrets): configure plugin provider presets
* secrets: use plugin-managed provider refs
Signed-off-by: sallyom <somalley@redhat.com >
* fix secretref auth profile service env
* test secret provider integration e2e
* fix secretref plugin config service env
* fix secret provider preset schema alignment
* stabilize secret provider service proof
* validate secret provider plugin integrations
* harden secret provider resolver paths
* scope secret provider config validation
* stabilize openai secret provider proof
* fix secret provider metadata proof
* stabilize config baseline proof
* fix secret provider e2e lint
---------
Signed-off-by: sallyom <somalley@redhat.com >
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-05-29 18:20:45 -04:00
Peter Steinberger
31169ff3b4
fix: bound default heartbeat run timeout ( #88133 )
...
Fixes #87438 .
Bound unset heartbeat run timeouts so background heartbeat turns no longer inherit the built-in 48-hour interactive agent default. Timeout precedence is explicit heartbeat timeout, explicit global agent timeout, then heartbeat cadence capped at 600 seconds.
Verification:
- git diff --check
- Testbox tbx_01kstna69zvznn4fq7zrqr04a1: corepack pnpm test src/infra/heartbeat-runner.model-override.test.ts -- --reporter=verbose passed 13 tests
- Direct node --import tsx runtime probe verified 300s, 600s, 60s, and 45s timeout precedence cases
- Autoreview clean
Known CI state:
- PR CI run 26661465248 has failures matching latest main CI run 26661386468 at a7820b2f54; failures are outside this six-file heartbeat/docs diff.
2026-05-29 22:56:13 +02:00
Peter Steinberger
0b86decf94
fix: keep live OpenClaw session locks during cleanup ( #88129 )
...
Keep session lock cleanup from removing live OpenClaw-owned locks solely because they are old. Cleanup now reports age-only stale locks without deleting them, while still removing dead, orphaned, recycled, malformed-old, and non-OpenClaw-owned locks.
Update doctor docs and regression coverage for the cleanup/repair contract.
Refs #87779
2026-05-29 22:42:04 +02:00
Peter Steinberger
a509c48f0e
feat: add core session goals ( #87469 )
...
* feat: add core session goals
* feat: polish session goals in tui
* fix: resolve goal tool session stores
* fix: keep get goal read-only
* fix: migrate legacy goal session slots
* fix: persist goal token accounting
* fix: validate goal session rows
* refactor: remove unshipped goal legacy handling
* fix: handle goal commands in local tui
* fix: satisfy goal tool display checks
* fix: reset goal budget on overdue resume
* feat: surface session goals across control surfaces
* test: update gateway protocol test import
* test: align goal fixture types with protocol
* fix: scope selected global transcript usage fallback
* fix: scope selected global web subscriptions
* fix: preserve selected global agent during chat dispatch
* fix: scope chat inject to selected global agents
2026-05-29 22:36:29 +02:00
Peter Steinberger
69c3b56bde
fix: stabilize codex supervisor session listing
2026-05-29 21:20:00 +01:00
Lucas Giordano
eb7e237151
docs(browser): add Notte cloud browser to direct WebSocket CDP providers
...
Notte exposes a CDP-compatible WebSocket gateway at
wss://us-prod.notte.cc/sessions/connect?token=<NOTTE_API_KEY> that
auto-creates a session on connect — the same shape OpenClaw's existing
"Direct WebSocket CDP providers" section was generically framed for
(per #31085 ).
Real behaviour proof (against wss://us-prod.notte.cc/sessions/connect):
$ openclaw browser --browser-profile notte open https://example.com
opened: https://example.com/
tab: t4
id: 7FE04AC44931A6E1C799DE4ABF0DC807
A screenshot captured against the same session is a 1254x1111 PNG of
the rendered example.com page.
Playwright connectOverCDP flow against the same URL (today):
connectOverCDP 695ms
context.newCDPSession(page) 169ms
session.send('Target.getTargetInfo') → targetId 87ms
page.goto('https://example.com ') 631ms
total 1.8s
AI-assisted (Claude Opus 4.7). codex review --base origin/main returned
clean. See PR description for the full pre-flight checklist.
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-29 22:17:32 +02:00
zhang-guiping
689e8ec893
fix(agents): forward ACP spawn attachments
...
Forward initial image/file attachments when spawning ACP subagents through the existing sessions_spawn attachment opt-in. Remove the PR-only acpEnabled config split so ACP uses the same attachment gate as other runtimes.
Also fix the PR branch CI fallout: type the browser element CLI request mock and use Vitest env stubs in the Azure speech test to satisfy the changed-path security scan.
Verification:
- GitHub CI passed on f6ca26b160 .
- Autoreview clean.
- Crabbox AWS live OpenAI proof passed: cbx_a576d49493fe / run_081dcc6c6a1b.
Thanks @zhangguiping-xydt.
2026-05-29 22:08:19 +02:00
Peter Steinberger
b3dc7a4a80
fix(exec): bind node auto-review to prepared plans
2026-05-29 22:01:27 +02:00
Peter Steinberger
2b15850b47
build(plugins): externalize tokenjuice
2026-05-29 21:00:29 +01:00
Peter Steinberger
1e2fda9e68
docs(plugins): clarify external plugin installs
2026-05-29 20:43:51 +01:00
Peter Steinberger
99b24a80fb
build(plugins): externalize copilot runtime
2026-05-29 20:14:38 +01:00
Nimrod Gutman
0167f0a6df
feat(ios): default to hosted push relay ( #88096 )
...
Merged via squash.
Prepared head SHA: 75f939af5c
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-05-29 22:05:25 +03:00
Peter Steinberger
61031d1b1c
feat(workboard): add agent coordination tools
...
Summary:
- Add Workboard agent coordination tools for list/read/claim/heartbeat/release/comment/proof/unblock flows.
- Store artifacts, claims, diagnostics, and notifications in the Workboard SQLite-backed plugin state; surface the new metadata through Gateway, Control UI, docs, and plugin manifest contracts.
- Add scoped claim authorization, token redaction, stale diagnostic cleanup, atomic proof artifact writes, and generated i18n metadata.
Verification:
- pnpm test ui/src/i18n/test/translate.test.ts extensions/browser/src/cli/browser-cli-actions-input/register.element.test.ts extensions/workboard/src/store.test.ts extensions/workboard/src/gateway.test.ts extensions/workboard/src/tools.test.ts ui/src/ui/controllers/workboard.test.ts ui/src/ui/views/workboard.test.ts
- pnpm ui:i18n:check
- env -u OPENCLAW_TESTBOX pnpm check:changed
- autoreview --mode local: clean
- PR CI passed; Windows checkout failure rerun passed on attempt 2
2026-05-29 20:23:21 +02:00
joshavant
80227005a0
feat(exec): add normalized auto mode
...
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
2026-05-30 00:04:06 +10:00
Peter Steinberger
cb765f1664
ci(release): require all plugins for core publish
2026-05-29 12:07:03 +01:00
Peter Steinberger
fbf900c746
refactor: move plugin state consumers to sqlite
...
Summary:
- add plugin-state runtime SDK subpaths backed by the existing sidecar DB
- migrate Discord model-picker preferences and Feishu dedup state to plugin-state keyed stores
- wire doctor legacy-state migration imports, including TTL preservation, for existing plugin JSON state
Verification:
- pnpm plugin-sdk:api:check
- focused plugin-state, doctor, Discord, Feishu, and package-boundary Vitest suites
- git diff --check origin/main...HEAD
- env -u OPENCLAW_TESTBOX pnpm check:changed
- autoreview --mode branch --base origin/main
- GitHub Actions PR checks green on 1025c2b570
2026-05-29 11:12:15 +01:00
Peter Steinberger
aff6d079d3
fix(agents): add typed tool progress updates
...
Add a general typed tool-progress contract so long-running non-exec tools can emit public channel progress without overloading model-facing tool content.
`web_fetch` now uses the generic delayed progress helper: it shows `Fetching page content...` only when the fetch is still pending after five seconds, clears the timer on completion/abort, passes the abort signal into guarded fetch, and avoids provider fallback or cached success after cancellation. The subscriber path accepts only explicit `visibility: "channel"` and `privacy: "public"` progress metadata, while untyped tool partials and exec output keep their existing behavior.
Docs now explain typed progress, delayed producer examples, and the `web_fetch` timing behavior.
Proof: `pnpm test src/agents/tools/web-tools.fetch.test.ts src/agents/embedded-agent-subscribe.handlers.tools.test.ts -- --run`; `pnpm docs:check-mdx`; changed-file `pnpm exec oxlint ...`; `git diff --check`; autoreview clean.
2026-05-29 11:06:13 +01:00
Peter Steinberger
27eb8732d3
fix(workboard): clear landing gates
2026-05-29 11:04:37 +01:00
Peter Steinberger
1d645ff66b
feat(workboard): persist card metadata
2026-05-29 11:04:37 +01:00
Peter Steinberger
ab3eca14f1
fix(workboard): tighten controls and track card events
2026-05-29 11:04:37 +01:00
Peter Steinberger
7e59e43ce6
feat(workboard): add card execution actions
2026-05-29 11:04:37 +01:00
Peter Steinberger
63111746b1
feat: capture sessions into workboard
2026-05-29 11:04:37 +01:00
Peter Steinberger
024cd0e4aa
feat: sync workboard cards with sessions
2026-05-29 11:04:37 +01:00
Peter Steinberger
86ed25af34
feat: add workboard dashboard plugin
2026-05-29 11:04:37 +01:00
拐爷&&老拐瘦
f634062f35
fix(cron): quarantine malformed persisted jobs
...
Quarantine malformed persisted cron rows before sanitizing active jobs.json.
Preserve raw malformed rows plus split runtime metadata in jobs-quarantine.json so later cron writes cannot silently delete recoverable data.
Doctor now reports quarantine sidecars for manual review.
Closes #51871 .
Thanks @yfge.
Verification:
- pnpm test src/cron/service/store.test.ts src/cron/service/store.load-missing-session-target.test.ts src/cron/store.test.ts src/commands/doctor-cron-store-migration.test.ts src/commands/doctor-cron.test.ts ui/src/ui/controllers/cron-filters.test.ts ui/src/ui/controllers/cron.test.ts ui/src/ui/app-render.helpers.node.test.ts ui/src/ui/app-settings.refresh-active-tab.node.test.ts
- node scripts/run-tsgo.mjs -p tsconfig.core.json --files src/cron/store.ts src/cron/service/store.ts src/cron/service/state.ts src/commands/doctor-cron.ts && node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --files src/cron/store.test.ts src/cron/service/store.test.ts src/cron/service/store.load-missing-session-target.test.ts src/commands/doctor-cron.test.ts src/commands/doctor-cron-store-migration.test.ts
- node scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.core.json src/cron/store.ts src/cron/service/store.ts src/cron/service/state.ts src/commands/doctor-cron.ts src/cron/store.test.ts src/cron/service/store.test.ts src/cron/service/store.load-missing-session-target.test.ts src/commands/doctor-cron.test.ts src/commands/doctor-cron-store-migration.test.ts
- git diff --check
- pnpm docs:list
- autoreview clean: no accepted/actionable findings reported
- GitHub CI: cron, doctor, docs, lint/type/build/security/quality, real behavior proof, and Windows rerun green; checks-node-agentic-agents remains red on current PR and recent main with unrelated pre-existing module/mock failures outside touched files.
Co-authored-by: yfge <geyunfei@gmail.com >
2026-05-29 10:27:45 +01:00
Peter Steinberger
837d6a13a2
test(release): refresh plugin sdk api baseline
2026-05-29 10:20:09 +01:00
兰之
6950e85605
fix(agents): allow hyphenated subagent task names
...
Allow `sessions_spawn.taskName` to accept lowercase hyphenated task slugs while keeping the existing underscore support and invalid-name rejection. Update the tool schema, system prompt wording, docs, focused tests, and generated prompt snapshots so the user/model-facing contract matches the validator.
Verification:
- `pnpm prompt:snapshots:check`
- `node scripts/run-vitest.mjs src/agents/tools/sessions-spawn-tool.test.ts src/agents/system-prompt.test.ts`
- Real behavior proof gate: https://github.com/openclaw/openclaw/actions/runs/26628449324/job/78470916945
- PR CI: https://github.com/openclaw/openclaw/actions/runs/26628441940 , with failures matching current `main` at https://github.com/openclaw/openclaw/actions/runs/26628128225
Co-authored-by: chenhaoqiang <chenhaoqiang@xiaomi.com >
Co-authored-by: Lanzhi <lizhan3@xiaomi.com >
2026-05-29 10:10:12 +01:00
兰之
b620c58e65
fix: remove telegram-only reasoning stream copy
...
Remove stale Telegram-only wording from the reasoning stream acknowledgement and docs so channel-neutral behavior is reflected.
Fixes #68305 .
Co-authored-by: Lanzhi <lizhan3@xiaomi.com >
2026-05-29 09:54:37 +01:00
Zee Zheng
17907bc2cd
fix(clawdock): load compose override file
...
Load `docker-compose.override.yml` when ClawDock builds its explicit Docker Compose file list, preserving standard Compose override behavior while keeping `docker-compose.extra.yml` as the final OpenClaw overlay.
Update Docker docs so manual Compose users include the same override order, and keep the regression test for the generated `_clawdock_compose` arguments.
Fixes #49909 .
Thanks @spacegeologist.
Co-authored-by: zhengzuo0-ai <zheng.zuo0@gmail.com >
2026-05-29 09:45:35 +01:00
Peter Steinberger
f4c6c0aec4
refactor: extract net policy package
2026-05-29 09:45:14 +01:00
Peter Steinberger
6fab00acaa
fix(docs): preserve plugin reference manual sections
2026-05-29 09:00:28 +01:00
ZC
7a381b807e
fix(cron): preflight model fallbacks before skip ( #82887 )
...
Fix cron local-model preflight fallback handling so scheduled runs try configured fallback candidates before skipping when the local primary is unavailable.
Verification:
- GitHub CI on PR head fe884dab90 : passing required CI checks.
- Local focused cron/model fallback tests passed earlier for the touched surface.
- Local merge-wrapper build and check passed on the prepared candidate.
- Local full pnpm test reported unrelated failures outside this PR's touched files; touched files are limited to cron docs, src/agents/model-fallback.ts, and src/cron/isolated-agent/*.
Co-authored-by: chen-zhang-cs-code <chenzhangcode@163.com >
Co-authored-by: Onur Solmaz <2453968+osolmaz@users.noreply.github.com >
2026-05-29 14:29:26 +08:00
Rob Pierson
b474f429ee
feat(plugin-sdk): add reply payload sending hook ( #82823 )
...
* feat(plugin-sdk): add reply payload sending hook
* fix(dispatch): compose caller beforeDeliver with plugin hooks instead of nullish-coalescing
ClawSweeper review identified that Telegram's identity beforeDeliver
would skip reply_payload_sending and message_sending hooks entirely.
Now we always compose caller-provided hooks with global plugin hooks
so plugins get a chance to run even when the caller already supplies
a beforeDeliver hook.
Also adds regression test for composition case.
* test(dispatch): align beforeDeliver hook assertion with current context
* fix(plugin-sdk): remove leftover merge markers from hook types
* feat(plugin-sdk): add reply payload sending hook
* fix(plugin-sdk): protect reply payload media trust
* fix(auto-reply): honor suppressed routed ACP blocks
* fix(auto-reply): avoid double message sending hooks
* fix(auto-reply): require routed reply kind
* test(auto-reply): type routed suppression mock
* fix(auto-reply): honor reply payload hooks in followups
* fix(auto-reply): suppress empty hooked dispatcher replies
* fix(auto-reply): wire reply payload hooks at dispatcher boundary
* fix(plugins): preserve reply payload metadata in hooks
* fix(auto-reply): defer reply hook availability checks
* fix(auto-reply): preserve message hook order for routed payloads
* fix(auto-reply): persist routed payload hook decisions
* fix(auto-reply): run routed payload hooks inside delivery
* fix(auto-reply): enforce message hooks after payload edits
* fix(auto-reply): gate source reply mirrors on delivery
* fix(auto-reply): scope hook-mutated media delivery
* chore(plugin-sdk): refresh reply hook api baseline
* fix(auto-reply): mirror delivered source replies
---------
Co-authored-by: Rob via OpenClaw <noreply@openclaw.local >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-29 07:15:10 +01:00
Gio Della-Libera
08beb6b0e8
Policy: add policy file comparison command ( #86768 )
...
Merged via squash.
Prepared head SHA: 2023e8cba1
Co-authored-by: giodl73-repo <235387111+giodl73-repo@users.noreply.github.com >
Reviewed-by: @giodl73-repo
2026-05-28 23:10:27 -07:00
Peter Steinberger
13cb9f8277
docs: update Anthropic Claude CLI billing guidance
2026-05-29 06:14:30 +01:00
Peter Steinberger
1188aa3b81
feat: add Claude Opus 4.8 support ( #87890 )
...
* feat: add Claude Opus 4.8 support
* fix: omit Vertex Opus sampling overrides
* fix: preserve Opus adaptive thinking levels
* fix: clamp Anthropic max effort support
* fix: use sha256 for QA mock call ids
* fix: type Anthropic transport test model metadata
* test: update PDF model default for Opus 4.8
2026-05-29 06:10:42 +01:00
Gio Della-Libera
5fb83af3e3
Policy: add ingress channel conformance checks ( #85744 )
...
Policy: add ingress channel conformance checks (#85744 )
Merged via squash.
Prepared head SHA: bd63c8d153
Co-authored-by: giodl73-repo <235387111+giodl73-repo@users.noreply.github.com >
Reviewed-by: @giodl73-repo
2026-05-28 22:07:49 -07:00
Ramrajprabu
f3cfd752d3
feat(copilot): add GitHub Copilot agent runtime
...
Adds the opt-in bundled GitHub Copilot agent runtime, pinned SDK install path, docs/inventory, SDK/tool/sandbox/auth wiring, and replay/tool-safety fixes.
Verification:
- Local: git diff --check; fnm exec --using 24.15.0 pnpm tsgo:extensions; fnm exec --using 24.15.0 pnpm check:test-types; fnm exec --using 24.15.0 pnpm build.
- Autoreview local: clean for the replay-safety fix; branch autoreview engine returned empty output twice, so local autoreview plus local/Crabbox/CI proof was used.
- Crabbox focused Copilot: run_2c0db9f48a4a, 19 files / 485 tests passed.
- Crabbox additional boundary shard: run_26a246a1aa24, prompt snapshots and plugin SDK boundary/export checks passed.
- Crabbox live Copilot: run_d128e4048b4e, real gpt-4.1 turn with live_echo phase-1-green and clean session-file check.
- GitHub checks: green on head 7cc8657e0d , including Dependency Guard after exact-head approval.
Co-authored-by: Ramraj Balasubramanian <ramrajba@microsoft.com >
2026-05-29 05:15:22 +01:00
Gio Della-Libera
af64a824a1
Policy: add sandbox posture conformance checks ( #85572 )
...
Policy: add sandbox posture conformance checks (#85572 )
Merged via squash.
Prepared head SHA: 1cf1953d8c
Co-authored-by: giodl73-repo <235387111+giodl73-repo@users.noreply.github.com >
Co-authored-by: giodl73-repo <235387111+giodl73-repo@users.noreply.github.com >
Reviewed-by: @giodl73-repo
2026-05-28 21:00:24 -07:00
Peter Steinberger
00c9f81171
fix: retry transient recurring cron failures
2026-05-29 04:54:42 +01:00
Vincent Koc
27b15a19e8
refactor(voice): catalog voice models through providers ( #87794 )
...
* refactor(providers): catalog voice models
* feat(tts): route speech through voice models
* refactor(tts): rename speaker selection fields
* refactor(tts): mark default speech models
* test(tts): type migrated speaker config assertions
* refactor(providers): avoid catalog merge map spread
* fix(tts): honor voice model fallbacks
* refactor(tts): move speech core into package
* chore(tts): register speech core knip workspace
* fix(tts): show migrated speaker voice in status
* fix(tts): satisfy speech core lint
* fix(tts): preserve explicit model aliases
* test(tts): narrow provider config assertion
* test(doctor): allow slow commitments repair check
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-29 04:46:45 +01:00
Peter Steinberger
2209faef40
feat: improve cron create delivery ergonomics
...
Summary:
- Add Hermes-style schedule-first cron create parsing while preserving flagged create options.
- Support webhook create/edit delivery and clear stale webhook/chat delivery fields across mode changes.
- Update cron docs and schedule identity normalization tests.
Verification:
- pnpm test src/cron/schedule-identity.test.ts src/cli/cron-cli.test.ts src/cron/service.jobs.test.ts -- --reporter=verbose
- pnpm test src/cli/cron-cli.test.ts src/cron/service.jobs.test.ts -- --reporter=verbose
- pnpm check:test-types
- pnpm check:import-cycles
- pnpm check:docs
- pnpm check:changed via Crabbox run_8c44bcb158da, exit 0
- autoreview branch diff clean
2026-05-29 04:34:50 +01:00
clawsweeper[bot]
4df1fcf7b3
feat(discord): show commentary in progress drafts ( #85200 )
...
Adds opt-in Discord progress-draft commentary for assistant preambles while keeping commentary hidden by default and final delivery unchanged.
Keeps commentary config Discord-specific, strips directive tags/NO_REPLY, and clears stale commentary rows without stopping the active draft stream.
Thanks @bryanpearson.
Co-authored-by: bryanpearson <bryanmpearson@gmail.com >
2026-05-29 04:21:06 +01:00
Peter Steinberger
d503ec52d8
feat: add Fal Krea image model schemas ( #87845 )
...
* feat: add fal krea image model schemas
* fix: support fal model-specific aspect ratios
* fix: preserve fal native auto aspect ratio
* fix: honor image model-specific geometry
2026-05-29 03:58:46 +01:00
Peter Steinberger
9dd3bce549
feat: add codex supervisor extension
...
* feat: add codex supervisor plugin
* fix: restore merged branch checks
* fix: unblock supervisor extension CI
* fix: restore merged agent checks
2026-05-29 03:49:43 +01:00
Peter Steinberger
51b5f75b92
refactor: move plugin model catalogs into plugin state
2026-05-29 03:23:57 +01:00
Vincent Koc
14ce8733fe
fix(context-engine): quarantine broken plugin engines
2026-05-29 02:32:06 +01:00
Peter Steinberger
b1117d9862
refactor: extract gateway client package ( #87797 )
...
* refactor: extract gateway client package
* chore: drop generated gateway package artifacts
* refactor: move gateway protocol package
* refactor: remove old gateway protocol tree
* test: keep auth compat split in run mode
* test: expose gateway wrapper options for internals
* fix: watch moved gateway package sources
* test: normalize slash command import guard
* chore: teach knip gateway package entries
* ci: route gateway client package checks
* fix: reuse ipaddr for gateway client hosts
* fix: sync gateway protocol usage schema
2026-05-29 02:23:42 +01:00
Dallin Romney
93c30de17b
ci: restore timing summary artifact ( #87832 )
...
* ci: restore timing summary artifact
* ci: report pnpm warmup fanout timing
* ci: run timing summary from trusted base
2026-05-28 18:08:12 -07:00