Peter Steinberger
99ffd714ce
refactor: extract markdown core package ( #88265 )
...
* refactor: extract markdown core package
* refactor: remove old markdown sources
* fix: use source paths for markdown core imports
* fix: clean markdown package dependency ownership
* fix: refresh root shrinkwrap for markdown dependency move
2026-05-30 09:33:24 +02:00
Peter Steinberger
5f4fc7512e
fix(runtime): centralize timeout grace clamping
2026-05-30 03:15:50 -04:00
Peter Steinberger
f90b8cffc7
perf: prefer built plugin public surfaces
2026-05-30 07:54:30 +01:00
Peter Steinberger
311c1a05eb
fix(plugins): cap CLI node invoke timeout
2026-05-30 02:25:18 -04:00
Peter Steinberger
7c1484d637
refactor: extract media generation core package
...
Extract pure media generation catalog/model-ref/normalization helpers into a private workspace package and wire the package through build, watch, SDK alias, and plugin boundary d.ts paths.
Verification:
- node scripts/run-vitest.mjs test/scripts/crabbox-wrapper.test.ts packages/media-generation-core/src src/media-generation/runtime-shared.test.ts src/plugins/sdk-alias.test.ts src/infra/watch-node.test.ts src/plugins/registry.provider-like.test.ts src/agents/model-ref-shared.test.ts extensions/codex-supervisor/src/plugin-tools.test.ts extensions/codex-supervisor/src/supervisor.test.ts src/wizard/setup.official-plugins.test.ts src/infra/net/http-connect-tunnel.test.ts
- node scripts/prepare-extension-package-boundary-artifacts.mjs --mode=all
- node scripts/run-vitest.mjs src/plugins/contracts/extension-package-project-boundaries.test.ts src/plugins/sdk-alias.test.ts
- pnpm protocol:check
- pnpm check:changed
- .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
- GitHub CI 26676608512
2026-05-30 08:17:43 +02:00
Peter Steinberger
fcdc25ba64
test: dedupe redundant test coverage
2026-05-30 06:27:13 +01:00
Peter Steinberger
d5e8da8499
fix(ci): repair main normalization checks
2026-05-29 23:53:28 +01:00
Peter Steinberger
41a92ae445
perf: resolve native esm plugin sdk imports
2026-05-29 23:38:08 +01: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
260e8e26fd
fix(ci): repair main checks
2026-05-30 00:02:24 +02:00
Peter Steinberger
1517fe2c32
perf: prefer package-local bundled plugin artifacts
2026-05-29 22:57:40 +01:00
Peter Steinberger
522d0f7ef5
perf: reuse gateway runtime metadata
2026-05-29 22:16:53 +01: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
057be10e5b
perf: reuse provider handles and strict tool schemas
2026-05-29 21:34:59 +01:00
Peter Steinberger
e2966faea7
perf: reuse gateway session and plugin metadata paths
2026-05-29 21:01:00 +01:00
Peter Steinberger
f10bad944f
fix(oauth): cap tls preflight timeout
2026-05-29 15:59:27 -04:00
Peter Steinberger
99b24a80fb
build(plugins): externalize copilot runtime
2026-05-29 20:14:38 +01:00
Peter Steinberger
7f4338d435
test: speed up slow assertions
2026-05-29 20:52:18 +02:00
Shakker
6e026fbb46
refactor: centralize skills subsystem
2026-05-29 17:35:02 +01: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
Vincent Koc
19c70e2a29
refactor: share provider install choice fields
2026-05-29 14:44:51 +02:00
Vincent Koc
f712bbcb3f
refactor: share host hook projection collection
2026-05-29 14:21:21 +02: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
27eb8732d3
fix(workboard): clear landing gates
2026-05-29 11:04:37 +01:00
Peter Steinberger
e7e3b4a58b
fix(workboard): align bundled metadata
2026-05-29 11:04:37 +01:00
Peter Steinberger
82a16d2fee
fix: alias net policy in plugin loader
2026-05-29 10:47:27 +01:00
Peter Steinberger
57a3dbe736
perf: avoid jiti for built plugin startup paths
2026-05-29 10:17:43 +01:00
Peter Steinberger
2e015ab124
test(release): fix beta live release checks
2026-05-29 09:54:00 +01:00
Peter Steinberger
f4c6c0aec4
refactor: extract net policy package
2026-05-29 09:45:14 +01:00
Phil
00ca654c74
fix(plugins): persist resolved npm install specs
...
Preserve npm install selectors while recording resolved npm provenance for plugin and hook install/update records. Active `record.spec` stays the requested selector unless explicitly pinned, while resolved npm fields remain available for audit and diagnostics.
Adds focused coverage for hook-pack npm fallback provenance after the maintainer review found that path worth pinning down.
Co-authored-by: Phil <99397913+GitHoubi@users.noreply.github.com >
2026-05-29 09:42:46 +01:00
Peter Steinberger
def11c0978
fix(plugins): bound config contract array indexes
2026-05-29 04:29:14 -04:00
Peter Steinberger
d4a17477b0
fix(schema): reject noncanonical array refs
2026-05-29 04:25:10 -04:00
Peter Steinberger
5ff0c75da7
fix(config): preserve large numeric schema keys
2026-05-29 04:20:42 -04:00
Pavan Kumar Gondhi
9497629c1e
fix(msteams): pin attachment fetch DNS
...
Route Microsoft Teams attachment downloads through the shared SSRF guarded fetch path so DNS validation is pinned into the dispatcher used for the actual request.
Keep Teams auth fallback and allowlisted HTTPS Authorization redirect behavior while failing closed for custom fetch hooks that cannot accept dispatcher injection.
Verification:
- CI=1 OPENCLAW_VITEST_MAX_WORKERS=1 timeout 300 node scripts/run-vitest.mjs run extensions/msteams/src/attachments/shared.test.ts extensions/msteams/src/attachments/bot-framework.test.ts src/infra/net/fetch-guard.ssrf.test.ts
- gh pr checks 87567 --repo openclaw/openclaw --watch=false
PR: #87567
2026-05-29 09:03:50 +01:00
Vincent Koc
d78b0814d5
fix(gateway): avoid cold-loading providers for MCP inventory
2026-05-29 08:48:35 +02:00
YEEE
aa53823981
fix(whatsapp): resolve auth dir from active profile ( #82492 )
...
Merged via squash.
Prepared head SHA: 82b1404905
Co-authored-by: lidge-jun <243035832+lidge-jun@users.noreply.github.com >
Co-authored-by: mcaxtr <7562095+mcaxtr@users.noreply.github.com >
Reviewed-by: @mcaxtr
2026-05-29 03:20:26 -03: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
Vincent Koc
4b147f2c2e
refactor: share embedding provider runtime lookup
2026-05-29 06:41:16 +02:00
Vincent Koc
2fef80aee5
refactor: share provider catalog projection
2026-05-29 06:21:05 +02: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
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
ee3efc0152
test(plugins): alias gateway workspace packages in plugin loader
2026-05-29 03:54:10 +01:00
Peter Steinberger
51b5f75b92
refactor: move plugin model catalogs into plugin state
2026-05-29 03:23:57 +01:00
Peter Steinberger
d6c76eb5bf
perf: prefer bundled plugin dist entries
2026-05-29 02:47:30 +01:00
Peter Steinberger
9b692f0a5b
test(plugins): expect openclaw npm metadata lookup
2026-05-29 02:29:07 +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
Peter Steinberger
f927e532da
perf: cache installed package paths
2026-05-29 02:00:21 +01:00
Peter Steinberger
1901b832eb
perf: cache installed package metadata
2026-05-29 01:32:11 +01:00
Peter Steinberger
92a405b536
chore: remove unused plugin source loader
2026-05-28 20:08:42 -04:00
Peter Steinberger
0296f0a779
perf: load provider discovery entries natively
2026-05-29 00:49:20 +01:00