Commit Graph

2706 Commits

Author SHA1 Message Date
Peter Steinberger
90b405ecb5 refactor: retire legacy session store config 2026-05-10 06:04:30 +01:00
Peter Steinberger
09904d2029 refactor: move cron runtime state to sqlite 2026-05-10 06:04:29 +01:00
Peter Steinberger
e07df2ba27 refactor: make sessions sqlite-only 2026-05-10 06:04:29 +01:00
Peter Steinberger
53a9b7a786 refactor: move session management to sqlite 2026-05-10 06:04:29 +01:00
Peter Steinberger
add224cec2 refactor: move session state migration to doctor 2026-05-10 06:04:29 +01:00
Peter Steinberger
f6c55550ab chore: fix branch lint 2026-05-10 06:04:28 +01:00
Peter Steinberger
a3016424ee refactor: remove cron session reaper 2026-05-10 06:04:28 +01:00
Peter Steinberger
b707ab10a4 refactor: simplify session store loads 2026-05-10 06:04:28 +01:00
Peter Steinberger
a3be92065e refactor: drop stale session load options 2026-05-10 06:04:28 +01:00
Peter Steinberger
da4646e421 refactor: remove legacy session store cache 2026-05-10 06:04:28 +01:00
Peter Steinberger
2b708f88d2 refactor: remove duplicate session status reader 2026-05-10 06:04:28 +01:00
Peter Steinberger
dea2c7f504 refactor: remove session maintenance write options 2026-05-10 06:04:28 +01:00
Peter Steinberger
3330c1abfc refactor: make session cleanup explicit 2026-05-10 06:04:28 +01:00
Peter Steinberger
81f1a01c5e refactor: keep session import in doctor 2026-05-10 06:04:28 +01:00
Peter Steinberger
851a68e12b refactor: make sessions json doctor-import only 2026-05-10 06:04:28 +01:00
Peter Steinberger
115d0266eb refactor: move agent runtime state toward piless 2026-05-10 06:04:28 +01:00
Peter Steinberger
7f5728b4b2 fix: align wildcard model allowlist selection 2026-05-10 00:50:10 -04:00
Hua Yang
dff4a04c1f feat(signal): support container REST API
Adds container REST/WebSocket support for bbernhard/signal-cli-rest-api Signal deployments.

Closes #10240.

Thanks @Hua688.

Verification:
- pnpm exec oxfmt --check --threads=1 docs/channels/signal.md
- pnpm lint:extensions
- pnpm test extensions/signal
- pnpm tsgo:extensions && pnpm tsgo:test:extensions
- pnpm config:docs:check
- git diff --check
- CI checks on PR head 1d0a536ecd
- Crabbox/Testbox live Docker smoke tbx_01kr7h07shhcafxjc0ezfh946w / run 25614453516
2026-05-09 23:13:55 -04:00
Peter Steinberger
f8fee34aef ci(release): stabilize full validation gates 2026-05-10 02:54:37 +01:00
VACInc
c5cc1bb184 Enable realtime Talk instructions config 2026-05-09 21:20:06 -04:00
Peter Steinberger
5131c3d677 build: clean tsdown declaration warnings 2026-05-10 02:14:40 +01:00
brokemac79
864cd1444b fix(feishu): keep group context on chat target 2026-05-09 20:50:12 -04:00
samzong
d832ad214c [Feat] Add upload archive install RPC (#74430)
* feat(skills): add upload archive install RPC

- src/agents/skills-archive-install.ts:83 [BOT-SCOPE]: `withExtractedArchiveRoot()` still returns unstructured extract failures, so exact transient-vs-terminal classification should be moved into the shared install-flow layer in a follow-up rather than expanding this PR.

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(skills): address archive upload review findings

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(skills): regen protocol bindings and classify transient archive errors

* feat: gate uploaded skill installs by config

* test: add docker skill install proof

* docs: clarify uploaded skill archive gate

* chore: refresh config docs baseline

* style: format docker e2e plan test

* fix: use fs-safe path checks for skill archives

* fix: classify skill publish failures as unavailable

* test: update skill clawhub path mock

* fix: pass mutable archive root markers

* fix: use current json dir mode option

* test: satisfy skill upload lint

* test: refresh core support expectations

---------

Signed-off-by: samzong <samzong.lu@gmail.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-09 20:44:18 -04:00
Peter Steinberger
5c7630e4bd test: tighten config schema assertions 2026-05-10 00:14:58 +01:00
Peter Steinberger
4efc25fe49 test: tighten channel config loader assertions 2026-05-09 23:57:05 +01:00
Peter Steinberger
c58e01569b test: tighten config validation assertions 2026-05-09 23:53:49 +01:00
Peter Steinberger
765549966f test: tighten config audit assertions 2026-05-09 23:46:35 +01:00
Peter Steinberger
449b61e232 test: tighten config schema assertions 2026-05-09 23:44:37 +01:00
Peter Steinberger
3681ff6874 test: tighten runtime schema loader assertions 2026-05-09 23:43:21 +01:00
Peter Steinberger
f82deaff04 fix: normalize retired gemini config writes 2026-05-09 23:38:25 +01:00
hcl
aeb7d07364 fix(cli-runner): gate raw transcript reseed
Summary:
- Gate raw transcript reseeding behind an explicit CLI backend opt-in.
- Keep auth-profile and auth-epoch invalidations from replaying raw transcript history.
- Add regression coverage, docs, config schema/baseline, and changelog entry for #79713.

Verification:
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/gateway/cli-backends.md docs/gateway/config-agents.md src/agents/cli-runner.reliability.test.ts src/agents/cli-runner/prepare.test.ts src/agents/cli-runner/prepare.ts src/agents/cli-runner/session-history.test.ts src/agents/cli-runner/session-history.ts src/config/types.agent-defaults.ts src/config/zod-schema.core.ts
- pnpm run lint:extensions:bundled
- pnpm deadcode:dependencies
- pnpm test src/agents/cli-runner/session-history.test.ts src/agents/cli-runner/prepare.test.ts src/agents/cli-runner.reliability.test.ts src/config/schema.test.ts src/config/zod-schema.agent-defaults.test.ts
- GitHub CI on b63f3afdc4: lint, prod/test types, docs, dependencies, fast contracts, core/agentic shards, and real behavior proof passed.

Co-authored-by: hclsys <hclsys@openclaw.ai>
2026-05-09 10:52:30 -04:00
Peter Steinberger
caf14ceb33 fix: repair clickclack channel metadata 2026-05-09 15:29:27 +01:00
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
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
8bb9331855 test: tighten talk schema success assertion 2026-05-09 12:05:17 +01:00
VACInc
cfb0c34ff6 feat: add realtime consult overrides 2026-05-09 06:51:20 -04:00
Shakker
01741f81f8 test: remove stale unused imports 2026-05-09 11:26:43 +01:00
Peter Steinberger
cc4a596be2 fix(discord): make realtime barge-in guard tunable 2026-05-09 11:11:54 +01:00
Peter Steinberger
2e5ab0ae91 feat: improve discord realtime voice routing 2026-05-09 07:15:40 +01:00
Shakker
21317a69df test: tighten config empty array assertions 2026-05-09 05:10:54 +01:00
Shakker
dcf3c851f0 test: tighten config snapshot empty assertions 2026-05-09 04:11:57 +01:00
Shakker
7442355088 test: tighten config empty map assertions 2026-05-09 04:03:34 +01:00
Shakker
cf71412a35 test: tighten config empty object assertions 2026-05-09 04:01:03 +01: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
Shakker
2f6047a16f test: tighten config schema rejection assertions 2026-05-09 03:26:23 +01:00
Peter Steinberger
4d8e0bcecc test: tighten session lock cleanup assertion 2026-05-09 02:49:38 +01:00