Peter Steinberger
4c33aaa86c
refactor: unify OpenAI provider identity ( #88451 )
...
* refactor: unify OpenAI provider identity
* refactor: move legacy oauth sidecar doctor helpers
* test: align OpenAI fixtures after rebase
* test: clean OpenAI provider unification
* fix: finish OpenAI provider cleanup
* fix: finish OpenAI cleanup follow-through
* fix: finish OpenAI CI cleanup
2026-05-31 00:29:44 +01:00
Peter Steinberger
8d6a6e9d03
feat: move workboard to relational sqlite
...
Move Workboard durable data into a relational SQLite database and add extension doctor migration for .28 plugin-state rows. Preserve attachment lifecycle behavior, SQLite permissions/WAL settings, and scoped plugin migration access.
2026-05-31 00:02:23 +01:00
Peter Steinberger
3fc0df953c
refactor(agents): bind subagent threads in core ( #88416 )
...
Move subagent thread binding ownership into core so session-mode spawns prepare channel bindings before launching the child agent. Deprecate the legacy subagent_spawning SDK hook in code, compatibility metadata, diagnostics, and plugin docs; plugin authors should observe subagent_spawned instead.
Verification:
- node scripts/run-vitest.mjs src/agents/sessions-spawn-hooks.test.ts src/agents/subagent-spawn.thread-binding.test.ts src/agents/subagent-spawn.workspace.test.ts src/agents/subagent-spawn.mode-session-diagnostics.test.ts
- node scripts/run-tsgo.mjs -p tsconfig.core.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core.tsbuildinfo
- git diff --check
- .agents/skills/autoreview/scripts/autoreview --mode local
- CI run 26693808952 green, including checks-node-agentic-agents-core and checks-node-agentic-plugin-sdk
2026-05-30 21:19:09 +01:00
Abner Shang
961691def2
fix(codex): keep app-server continuation turns alive
...
Keep Codex app-server continuation turns alive after post-tool, raw assistant, and progress notifications, and reschedule continuation idle watches when shorter progress timeouts apply.
Add regression coverage for the plugin-sdk child_process mock helper deadlock that blocked CI shards on this PR.
Co-authored-by: abnershang <abner.shang@gmail.com >
2026-05-30 20:41:04 +01:00
Shakker
308fdbe7fb
refactor: remove skill workshop plugin package
2026-05-30 20:04:52 +01:00
Peter Steinberger
5435b453ca
feat: expand workboard orchestration metadata ( #88408 )
2026-05-30 19:22:19 +01:00
guanbear
044f5a814e
Expose subagent resolved model metadata ( #80037 )
...
Co-authored-by: guanbear <guanbear@macmini.bearhome >
2026-05-30 18:52:21 +01:00
Peter Steinberger
7086e34533
feat(workboard): persist orchestration metadata in sqlite
...
Persist Workboard orchestration data in plugin SQLite KV storage, including board metadata, cards, notification subscriptions, decomposition history, and board lifecycle/RPC support.
2026-05-30 16:24:14 +01:00
Peter Steinberger
d92b3b5cc2
refactor: unify OpenAI provider identity
...
Refactor OpenAI provider identity so OpenAI remains the canonical provider for API-key and OAuth-backed flows while legacy openai-codex state is doctor/migration-only.
Keeps OpenAI Codex Responses as an API/transport class rather than a provider identity, moves auth aliases through providerAuthAliases, updates doctor repair sequencing for old auth/profile state, and refreshes tests/docs around the canonical OpenAI behavior.
2026-05-30 11:48:41 +02:00
NianJiu
da5d1a6215
feat(xiaomi): add Token Plan provider support
...
Adds first-class Xiaomi Token Plan provider support with regional onboarding/configuration, token-plan key prefix validation, runtime pricing/catalog metadata, and docs/test coverage.
Keeps Token Plan model catalog discovery runtime-owned so region-specific base URLs are required and the provider cannot silently fall back to the static SGP manifest catalog.
Fixes #86169 .
Verification:
- node scripts/run-vitest.mjs src/plugins/provider-discovery.runtime.test.ts extensions/xiaomi/index.test.ts src/plugins/manifest-model-catalog.test.ts src/model-catalog/manifest-planner.test.ts
- git diff --check
- autoreview --mode local: clean, no accepted/actionable findings
- CI run 26678998539: all relevant checks passed; check-prod-types failed on unrelated browser unused-function issue already present on origin/main
Co-authored-by: NianJiuZst <3235467914@qq.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-30 11:37:36 +02:00
Vincent Koc
b13529767b
refactor: share inline image data URL sanitizer
2026-05-30 10:08:54 +02:00
Dmitry Golubev
3fbd2432b6
fix(codex): move stable context to developer instructions
...
Move OpenClaw skills and the routed workspace-memory pointer out of native Codex turn user input and into turn-scoped collaboration developer instructions.
Preserve full MEMORY.md fallback prompt injection, delivery-hint rewrapping, lightweight cron exact prompts, and trajectory reporting for the rendered developer surface.
Co-authored-by: Beru <beru@lastguru.lv >
2026-05-30 08:59:02 +02:00
Peter Steinberger
f61a5bc797
feat(workboard): add board ops recovery metadata
...
Add board-scoped Workboard metadata, stats, and recovery operations.\n\nIncludes gateway/tool contracts, docs, UI normalization, and regression coverage for board-scoped idempotency, linked child manifests, recovery diagnostics, and worker context.
2026-05-30 08:43:58 +02:00
Peter Steinberger
470fc879e8
feat: add hosted model providers ( #88247 )
...
* feat(providers): add GMI provider
* feat(providers): add Novita provider
* feat(providers): add Qwen OAuth provider
* feat(providers): add Ollama Cloud provider
* docs: add hosted provider pages
* test(providers): align qwen catalog result typing
2026-05-30 08:26:16 +02:00
Peter Steinberger
72a2cc0acb
chore(release): refresh generated release metadata
2026-05-30 06:51:37 +01:00
Vincent Koc
985b41e136
refactor: share Codex auth identity helpers
2026-05-30 03:57:20 +02:00
Vincent Koc
75de853c37
refactor: share provider OAuth runtime helpers
2026-05-30 03:30:51 +02:00
Peter Steinberger
a341ae27ec
feat(workboard): add orchestration primitives
...
Adds Workboard orchestration statuses, dependency links, idempotent child creation, dispatch, and complete/block lifecycle operations backed by the plugin SQLite keyed store.
Persists tenant, skills, workspace, schedule, runtime, retry, dispatch, and handoff metadata in card records, with claim scoping and token redaction. Surfaces the new states and metadata in the Control UI, horizontal board layout, localized strings, and Workboard docs.
Verification:
- pnpm test extensions/workboard/src/store.test.ts extensions/workboard/src/tools.test.ts extensions/workboard/src/gateway.test.ts ui/src/ui/controllers/workboard.test.ts ui/src/styles/workboard.test.ts ui/src/ui/views/workboard.test.ts -- --reporter=verbose
- pnpm ui:i18n:check
- /Users/steipete/Projects/agent-scripts/skills/autoreview/scripts/autoreview --mode branch --base origin/main, followed by focused clean local autoreview loops for final fixes
- env -u OPENCLAW_TESTBOX pnpm check:changed
- git diff --check
2026-05-30 02:40:46 +02:00
Vincent Koc
c01a0f5588
refactor: share provider oauth runtime helpers
2026-05-30 01:31:10 +02:00
Vincent Koc
f3f85ae5f7
refactor: share live transport scenario helpers
2026-05-30 01:05:56 +02:00
keshavbotagent
5f89fbe669
fix(codex): recover app-server completion stalls
...
Fix Codex app-server completion-stall recovery so replay-safe stdio completion-idle failures retry once, while progress/terminal turn-watch timeouts only surface timeout payloads.
Also preserve post-tool completion guards for scoped native response deltas and stabilize the oversized CONNECT timeout regression test picked up from latest main.
Co-authored-by: Kelaw - Keshav's Agent <keshavbotagent@gmail.com >
2026-05-30 00:52:48 +02:00
Kevin Lin
c57671176e
refactor: share native approval route gates
...
Share native approval route gate helpers across mainstream channel approval runtimes and keep PR #87770 green on current main.
2026-05-29 15:32:31 -07: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
69c3b56bde
fix: stabilize codex supervisor session listing
2026-05-29 21:20:00 +01: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
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
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
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
Peter Steinberger
6fab00acaa
fix(docs): preserve plugin reference manual sections
2026-05-29 09:00:28 +01: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
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
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
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
e12a6d6a67
refactor(agents): own system prompt assembly
2026-05-29 01:22:09 +01:00
Peter Steinberger
56a5d7e865
fix(codex): defer report-mode plugin approvals
...
Route Codex app-server report-mode PreToolUse plugin approval requirements through the matching app-server approval request instead of failing closed. Shares duplicate in-flight approvals, preserves block/rewrite fail-closed behavior, and keeps generic plugin allow-always scoped to one Codex request. Supersedes #86978 ; thanks @clawSean for the original docs clarification.
2026-05-29 00:09:23 +01:00
Peter Steinberger
ea682182d0
fix: isolate npm plugin installs per package ( #87647 )
...
* fix: isolate npm plugin installs per package
* test: assert isolated npm plugin projects in upgrade survivor
* test: assert plugin lifecycle npm project roots
* test: resolve npm project deps in live assertions
* fix: resolve codex bins from isolated npm projects
* docs: document isolated npm plugin projects
* ci: configure testbox workflow for crabbox
* fix: stabilize npm project fingerprint
* fix: keep fetch runtime import side-effect free
* test: keep dynamic live model unit hermetic
* ci: handle empty node toolcache roots
* test: make nounset toolcache probe deterministic
2026-05-28 21:16:07 +01:00
Peter Steinberger
8ed9330a30
perf: defer Slack full startup ( #87760 )
2026-05-28 20:37:09 +01:00
Rohit
376b03f8ea
fix(plugins): reject incompatible package plugin API installs ( #87477 )
...
* fix(plugins): enforce package plugin API compatibility
* fix(plugins): preserve plugin API prerelease floors
* fix(plugins): gate persisted plugin api compatibility
* fix(plugins): skip incompatible package discovery
* fix(plugins): check api compatibility before package shape
* fix(plugins): gate bundle package api compatibility
* docs(plugins): clarify plugin API release sync
* test(agents): keep dynamic live model unit test runtime-free
* fix(plugins): normalize correction plugin api floors
* test(agents): align dynamic normalizer expectation
* fix(plugins): reject malformed plugin api metadata
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-28 20:25:30 +01:00