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