Commit Graph

7137 Commits

Author SHA1 Message Date
Peter Steinberger
e5e1b7b834 feat: add clickclack channel extension 2026-05-09 15:29:27 +01:00
Peter Steinberger
24e1bbc014 feat: add subagent delegation preference mode 2026-05-09 15:02:44 +01:00
Peter Steinberger
50cb027a88 docs: document trusted skill symlink targets 2026-05-09 14:59:34 +01:00
Peter Steinberger
8e0486c6b7 fix: honor Codex dynamic tool timeouts 2026-05-09 14:45:38 +01:00
Peter Steinberger
5618a8f8f6 feat: allow trusted skill symlink targets 2026-05-09 14:43:54 +01:00
Peter Steinberger
6a2260eac0 fix: stabilize Discord realtime voice proxy 2026-05-09 14:21:51 +01:00
Liu Wenyu
c91fffdd67 feat(config): support Qwen thinkingFormat values (#79777)
## Summary
- allow configured OpenAI-compatible Qwen models to opt into `qwen` and `qwen-chat-template` thinking payloads
- preserve those compat values through schema validation and catalog normalization
- map OpenClaw `/think` levels to `enable_thinking` or `chat_template_kwargs.enable_thinking` without also sending `reasoning_effort`
- clarify docs that request-level chat-template kwargs require compatible backends such as vLLM

## Verification
- git diff --check
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/gateway/config-agents.md docs/gateway/config-tools.md src/config/zod-schema.core.ts src/config/types.models.ts src/model-catalog/normalize.ts src/agents/openai-transport-stream.ts src/config/config-misc.test.ts src/model-catalog/normalize.test.ts src/agents/openai-transport-stream.test.ts
- pnpm config:schema:check
- pnpm test src/config/config-misc.test.ts src/model-catalog/normalize.test.ts src/agents/openai-transport-stream.test.ts
- GitHub CI on 2404edca39

Thanks @indulgeback.
2026-05-09 08:02:39 -04:00
Peter Steinberger
eb200e369c feat: default discord voice to agent proxy 2026-05-09 12:36:37 +01:00
Peter Steinberger
355ea947f5 fix: allow explicit local infer static catalog models 2026-05-09 12:16:58 +01:00
VACInc
b8e2f648a7 chat: clear thinking and fast defaults 2026-05-09 06:51:20 -04:00
VACInc
5ac1fee4de fix(cli): route infer thinking through simple completions 2026-05-09 06:51:20 -04:00
VACInc
223c4cf46c feat(cli): add thinking override to infer model run 2026-05-09 06:51:20 -04:00
VACInc
cfb0c34ff6 feat: add realtime consult overrides 2026-05-09 06:51:20 -04:00
Peter Steinberger
b27a251ce5 docs: document mistral medium 3.5 usage 2026-05-09 11:45:43 +01:00
Steven Liekens
8d70f7e90f feat(mistral): add mistral-medium-3-5 model with reasoning support
- Add mistral-medium-3-5 to model catalog with reasoning: true
- Add compat support for reasoning in api.ts
- Update docs/providers/mistral.md

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-09 06:37:45 -04:00
Peter Steinberger
d80f20057e fix: align realtime voice consult tool flow 2026-05-09 11:33:56 +01:00
Peter Steinberger
cc4a596be2 fix(discord): make realtime barge-in guard tunable 2026-05-09 11:11:54 +01:00
Peter Steinberger
b59d46b699 ci: include plugin docker lanes in full release 2026-05-09 06:06:08 -04:00
Peter Steinberger
c443469452 test: add plugin install docker e2e lanes 2026-05-09 06:06:08 -04:00
Peter Steinberger
1f4f51e8e2 feat: add plugin install overrides 2026-05-09 06:06:08 -04:00
Ayaan Zaidi
dc64b99c41 docs(qa): list Telegram auth E2E scenario 2026-05-09 15:28:54 +05:30
Peter Steinberger
4883a0e6c4 chore: update workspace dependencies 2026-05-09 10:58:36 +01:00
Peter Steinberger
beaecbcad4 refactor: use PI Codex Responses transport (#79726)
Routes explicit OpenAI Codex Responses runs through PI's native WebSocket-capable transport and removes the custom OpenClaw WebSocket implementation.
2026-05-09 05:40:30 -04:00
Peter Steinberger
0071f67fe6 feat(plugin-sdk): share presentation control helpers 2026-05-09 10:11:56 +01:00
Abner Shang
9eaca28ef7 fix(backup): retry tar EOF races and skip live volatile files
Fixes #72249.\n\nSummary:\n- retry live backup tar EOF races\n- skip current live session, cron, log, and delivery-queue state files\n- preserve workspace lock/temp files and keep backup --json parseable\n\nVerification:\n- Crabbox pre-fix repro: tbx_01kr5xt9vf5pas5ee4aefrp3am\n- Crabbox post-fix proof: tbx_01kr5y3e1kbtt6chbypfdydbgs\n- pnpm check:test-types\n- pnpm lint:core\n- pnpm test src/commands/backup.test.ts src/infra/backup-volatile-filter.test.ts src/infra/backup-create.test.ts\n- CI on 37664570c7: green\n\nThanks @abnershang.
2026-05-09 05:11:43 -04:00
Dmitry Golubev
f13fb2e940 docs: update stale sub-agent context injection details (#79470)
Summary:
- Correct stale sub-agent docs to list the current minimal bootstrap context files.
- Add changelog credit for @lastguru-net.

Verification:
- pnpm docs:list
- pnpm exec oxfmt --check --threads=1 docs/tools/subagents.md CHANGELOG.md
- git diff --check
- GitHub CI: check-docs, Real behavior proof
2026-05-09 05:04:56 -04:00
Peter Steinberger
e582cebf2d fix(matrix): wire presentation metadata delivery 2026-05-09 04:41:45 -04:00
kakahu
31a9eda81f Document Matrix presentation metadata 2026-05-09 04:41:45 -04:00
Peter Steinberger
21970c9ac9 fix(openai): log realtime voice interruptions 2026-05-09 09:36:09 +01:00
Peter Steinberger
fe9a89a2d2 fix: interrupt active discord realtime voice 2026-05-09 08:51:41 +01:00
Peter Steinberger
e4bae42d63 feat(plugin-sdk): derive tool target paths for hooks
Summary:
- derive apply_patch target paths for before_tool_call and trusted policy events
- route native Codex PreToolUse cwd/sandbox path facts through the host parser
- document the additive derivedPaths hook field and refresh the SDK API baseline

Verification:
- pnpm test src/agents/apply-patch-paths.test.ts src/plugins/host-tool-param-parsers.test.ts src/agents/pi-tools.before-tool-call.e2e.test.ts src/agents/harness/native-hook-relay.test.ts src/plugins/contracts/host-hooks.contract.test.ts
- pnpm check:test-types
- pnpm lint:core
- pnpm plugin-sdk:api:gen
- pnpm plugin-sdk:api:check
- pnpm run check:no-conflict-markers
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/plugins/hooks.md docs/.generated/plugin-sdk-api-baseline.sha256 src/agents/apply-patch-paths.test.ts src/agents/apply-patch-paths.ts src/agents/harness/native-hook-relay.test.ts src/agents/harness/native-hook-relay.ts src/agents/pi-tools.before-tool-call.e2e.test.ts src/agents/pi-tools.before-tool-call.ts src/agents/pi-tools.ts src/auto-reply/reply/dispatch-from-config.test.ts src/plugins/contracts/host-hooks.contract.test.ts src/plugins/hook-types.ts src/plugins/host-tool-param-parsers.test.ts src/plugins/host-tool-param-parsers.ts src/plugins/trusted-tool-policy.ts
- git diff --check origin/main...HEAD && git diff --check
- pnpm build

Co-authored-by: Eva <eva@100yen.org>
Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-05-09 03:31:42 -04:00
Peter Steinberger
9385eaaf88 chore(release): prepare 2026.5.8 2026-05-09 08:05:17 +01:00
Peter Steinberger
74ab0fdd7a docs: refresh plugin sdk api baseline 2026-05-09 02:34:56 -04:00
Peter Steinberger
311e4608d1 feat: unify model catalog registration 2026-05-09 02:34:56 -04:00
TheArchitectit
80a3d48b99 feat(acpx): support structured agent args
Summary:
- Add optional ACPX agent args config support while preserving command-only configs.
- Quote flattened args before passing the command string to the ACP client so spaces and single quotes preserve argv boundaries.
- Document the config shape and add changelog attribution.

Verification:
- pnpm test extensions/acpx/src/config.test.ts
- pnpm exec oxfmt --check --threads=1 extensions/acpx/src/config.ts extensions/acpx/src/config.test.ts docs/tools/acp-agents-setup.md CHANGELOG.md
- git diff --check
- pnpm check:changed
- isolated openclaw config patch/validate/get real behavior proof for ACPX args.
2026-05-09 01:26:17 -05:00
Peter Steinberger
2e5ab0ae91 feat: improve discord realtime voice routing 2026-05-09 07:15:40 +01:00
Peter Steinberger
a4b17d65a8 refactor: consolidate message delivery API 2026-05-09 07:04:04 +01:00
tmimmanuel
2945948a5e feat(gateway): add SDK task ledger RPCs (#74847)
Adds Gateway task ledger RPCs and SDK methods for listing, fetching, and cancelling durable background tasks. Includes protocol schemas/scopes, generated Swift models, docs, and tests. Public task summary text is sanitized before SDK exposure.
2026-05-09 00:55:06 -05:00
Peter Steinberger
58a80d3d93 docs(oc-path): expand usage examples 2026-05-09 01:48:35 -04:00
Peter Steinberger
696540f63a docs(oc-path): explain why path addressing helps 2026-05-09 01:48:35 -04:00
Peter Steinberger
52a319047e docs(oc-path): add bundled plugin overview and per-kind CLI recipes 2026-05-09 01:48:35 -04:00
Gio Della-Libera
4656848900 docs(path): format oc-path CLI table 2026-05-09 01:48:35 -04:00
Gio Della-Libera
8f26422840 fix(oc-path): tighten path contracts 2026-05-09 01:48:35 -04:00
Peter Steinberger
a22c5822c3 docs: finish oc-path plugin docs 2026-05-09 01:48:35 -04:00
Gio Della-Libera
457c29b36a docs(path): scrub references to dropped grammar features 2026-05-09 01:48:35 -04:00
Peter Steinberger
e3b33a26cd refactor: move oc-path into plugin 2026-05-09 01:48:35 -04:00
Peter Steinberger
b34cf2f1a2 fix: externalize matrix plugin 2026-05-09 06:38:29 +01:00
Josh Avant
024528c937 fix(nextcloud-talk): detect missing bot response feature (#79657)
* fix(nextcloud-talk): detect missing bot response feature

* docs(changelog): note nextcloud talk response fix
2026-05-09 00:06:44 -05:00
Omar Shahine
81e0a1a99b feat(imessage): inbound catchup (cursor + replay loop + monitor wiring) (#79387)
Closes #78649. Adds opt-in inbound iMessage catchup that recovers messages landing in chat.db while the gateway is offline (crash, restart, mac sleep). Mirrors the design of the retired BlueBubbles catchup, adapted for the imsg JSON-RPC chats.list + messages.history fetch path.

- Schema: new channels.imessage.catchup block with enabled / maxAgeMinutes (1..720) / perRunLimit (1..500) / firstRunLookbackMinutes (1..720) / maxFailureRetries (1..1000). Disabled by default — opt-in.
- Cursor + replay loop (extensions/imessage/src/monitor/catchup.ts): per-account state under <openclawStateDir>/imessage/catchup/. Walks rows oldest-first, advances on success/give-up, holds at failed.rowid - 1 when a failure is below maxFailureRetries (cannot leapfrog held failures even when later rows in the same batch succeed). Watermark floor for parse-rejected rows.
- Bridge (extensions/imessage/src/monitor/catchup-bridge.ts): live chats.list + per-chat messages.history fetch adapter; dispatch adapter routes through the live handleMessageNow path so allowlists / group policy / dedupe / echo cache behave identically on replayed and live messages. Watermark clamped to last dispatched rowid when the cap truncates.
- Monitor wiring (extensions/imessage/src/monitor/monitor-provider.ts): catchup runs once between watch.subscribe and the live dispatch loop when enabled. Bypasses the inbound debouncer for serial per-row dispatch.
- Echo-cache TTL bumped 2 min → 12 h so own outbound rows from before a gap are not re-fed as inbound on replay.
- Generated bundled-channel-config-metadata.generated.ts so the runtime AJV schema accepts the new catchup block.
- Docs: new "Catching up after gateway downtime" section + BlueBubbles migration parity update.

Tests: 322/322 in extensions/imessage/, including 5 regression tests covering the cursor-leapfrog, parse-rejected stall, watermark vs held failure, and cap-truncation-cursor-floor edge cases that codex (gpt-5.4) and clawsweeper (gpt-5.5) found during review. Live-tested end-to-end against the running gateway: replayed=1 fetchedCount=1, agent reply observed, cursor persisted at the test row's exact rowid.

Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 22:55:59 -04:00
Peter Steinberger
b3c06e8d79 revert: remove oc-path implementation 2026-05-09 03:07:12 +01:00