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
Peter Steinberger
28eb4cfa12
fix(codex): ignore invalid history timestamps
2026-05-30 05:28:14 -04:00
Vincent Koc
b72853a742
refactor: share native approval route gates
2026-05-30 11:15:49 +02:00
Peter Steinberger
ff2a99b22e
fix(codex): ignore invalid rate limit reset dates
2026-05-30 05:10:50 -04:00
Peter Steinberger
de1dfab03e
refactor: move terminal core into package ( #88279 )
...
* refactor: move terminal core into package
* refactor: move terminal module files
* fix: clean terminal package CI followups
* test: update lint suppression allowlist
* fix: ship terminal core runtime aliases
2026-05-30 11:07:45 +02:00
Peter Steinberger
7b699fddac
fix(auth): guard codex jwt expiry timestamps
2026-05-30 05:03:03 -04:00
Vincent Koc
b13529767b
refactor: share inline image data URL sanitizer
2026-05-30 10:08:54 +02:00
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
Vincent Koc
ceb179f84d
refactor: share web search time filters
2026-05-30 07:53:51 +02:00
Peter Steinberger
aa0d6e1bca
refactor: extract LLM core packages ( #88117 )
...
* refactor: extract llm core packages
* chore: drop generated llm package artifacts
* fix: align llm package export artifacts
* test: fix moving main CI expectations
* fix: align llm core subpath aliases
* fix: use llm package exports
* fix: stabilize llm package boundary artifacts
* fix: sync llm boundary path contract
* test: isolate crabbox provider env
* test: pin crabbox configured-provider cases
* test: apply crabbox lease provider override
2026-05-30 07:45:04 +02:00
Peter Steinberger
fcdc25ba64
test: dedupe redundant test coverage
2026-05-30 06:27:13 +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
Vincent Koc
c01a0f5588
refactor: share provider oauth runtime helpers
2026-05-30 01:31:10 +02:00
Peter Steinberger
90d569e896
fix(telegram): centralize positive timer bounds
2026-05-29 19:25:30 -04:00
Vincent Koc
f3f85ae5f7
refactor: share live transport scenario helpers
2026-05-30 01:05:56 +02:00
Peter Steinberger
41a92ae445
perf: resolve native esm plugin sdk imports
2026-05-29 23:38:08 +01: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
3416edf740
fix(codex-supervisor): centralize session limit parsing
2026-05-29 17:10:38 -04:00
Peter Steinberger
a0c1f5962d
fix(runtime): centralize safe timer timeout resolution
2026-05-29 15:36:38 -04:00
Peter Steinberger
bf3921dab7
refactor: centralize timer-safe timeout bounds
2026-05-29 13:44:41 -04:00
Peter Steinberger
604a6b5452
fix(minimax): reject unsafe oauth expiry
2026-05-29 13:15:00 -04:00
Peter Steinberger
5a294cb2bd
refactor: centralize safe expiry parsing
2026-05-29 12:38:11 -04:00
Shakker
6e026fbb46
refactor: centralize skills subsystem
2026-05-29 17:35:02 +01:00
Shakker
d9278c8efd
refactor: organize skills subsystem layout
2026-05-29 17:35:02 +01:00
Shakker
bedfd4c200
refactor: move skill lifecycle code into skills subsystem
2026-05-29 17:35:02 +01:00
Shakker
22e2d1560f
refactor: centralize skills subsystem
2026-05-29 17:35:02 +01:00
Peter Steinberger
ec1e27d562
fix(msteams): ignore unsafe retry-after delays
2026-05-29 10:48:05 -04:00
Peter Steinberger
c093e4508d
fix(tts): centralize directive number parsing
2026-05-29 10:05:37 -04: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
58e82d91ba
fix(media): centralize content length parsing
2026-05-29 09:02:21 -04:00
Peter Steinberger
4b6517d114
fix(provider-auth): centralize copilot expiry parsing
2026-05-29 07:18:04 -04: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
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
Peter Steinberger
4829d30cf0
fix(mattermost): bound slash callback env port
2026-05-29 02:31:53 -04: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
Peter Steinberger
621db8f0b1
fix(browser): reject explicit zero cdp ports
2026-05-29 01:43:05 -04:00
Peter Steinberger
6bf2fdf739
fix(channels): normalize direct dm guard numeric overrides
2026-05-29 01:28:40 -04:00
Peter Steinberger
1e5ccd1ce8
fix(matrix): centralize initial sync limit coercion
2026-05-29 01:22:24 -04: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
Peter Steinberger
4dd3ba149c
fix(browser): default non-finite snapshot limits
2026-05-29 00:32:35 -04: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
Vincent Koc
ffd4a80145
refactor: share live transport QA CLI helpers
2026-05-29 05:21:23 +02: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
c8cc010e09
fix(infra): centralize non-finite numeric option bounds
2026-05-28 22:48:19 -04:00