Peter Steinberger
8e88998449
refactor: use sqlite model catalog at runtime
2026-05-11 01:44:05 +01:00
Peter Steinberger
a75b02932e
docs: align backup docs with sqlite state
2026-05-11 01:44:03 +01:00
Peter Steinberger
e4bb219537
refactor: keep embedded runner diagnostics in sqlite
2026-05-11 01:43:48 +01:00
Peter Steinberger
a06af9591c
refactor: store tts prefs only in sqlite
2026-05-11 01:43:44 +01:00
Peter Steinberger
58e9f177ff
refactor: store default tts prefs in sqlite
2026-05-11 01:43:43 +01:00
Peter Steinberger
1376b0e96d
refactor: store exec approvals in sqlite
2026-05-11 01:43:22 +01:00
Peter Steinberger
c948e77951
refactor: store diagnostic traces in sqlite
2026-05-11 01:43:19 +01:00
Peter Steinberger
fd148169ee
docs: point session storage docs at sqlite
2026-05-11 01:43:14 +01:00
Peter Steinberger
8aeb8c6623
refactor: finish database-first state migration
2026-05-11 01:43:12 +01:00
Peter Steinberger
557a06b937
refactor: retire legacy session store config
2026-05-11 01:42:09 +01:00
Peter Steinberger
60737e1617
refactor: move channel pairing state to sqlite
2026-05-11 01:42:09 +01:00
Peter Steinberger
839b3aff8c
refactor: move device and push state to sqlite
2026-05-11 01:42:09 +01:00
Peter Steinberger
25ada6ba19
refactor: move cron runtime state to sqlite
2026-05-11 01:42:08 +01:00
Peter Steinberger
456b7e9743
refactor: make sessions sqlite-only
2026-05-11 01:42:08 +01:00
Peter Steinberger
a47c8bf48d
refactor: move session management to sqlite
2026-05-11 01:42:08 +01:00
Peter Steinberger
cd57b91f10
refactor: remove cron session reaper
2026-05-11 01:42:07 +01:00
Peter Steinberger
f9c46cbd4d
refactor: make sqlite sidecars import-only
2026-05-11 01:42:07 +01:00
Peter Steinberger
fc9e6fff28
refactor: make session cleanup explicit
2026-05-11 01:42:06 +01:00
Peter Steinberger
fb579bc1ee
refactor: move agent runtime state toward piless
2026-05-11 01:42:06 +01:00
Peter Steinberger
3f815fad12
fix(gateway): widen native protocol compatibility
2026-05-11 01:38:23 +01:00
Vincent Koc
8dc221121c
docs(gateway): fix configuration-examples to use schema-correct agents.defaults paths
...
The page used the legacy top-level agent: { ... } shape and a top-level
identity: { ... } block. Both are rejected by OpenClawSchema today
(see src/config/zod-schema.ts and the legacy rejection test in
src/config/config.legacy-config-detection.accepts-imessage-dmpolicy.test.ts).
Fixes:
- 6 examples: agent: { workspace, model, elevated } -> agents.defaults.*
- agents.defaults.elevated.enabled (non-existent) -> agents.defaults.elevatedDefault (off|on|ask|full per src/config/zod-schema.agent-defaults.ts:245)
- top-level identity: blocks moved into agents.list[].identity (canonical form per docs/gateway/config-agents.md and AgentEntrySchema)
- Expanded example identity merged into the existing main agent entry rather than a duplicate agents: block
2026-05-11 08:20:45 +08:00
Peter Steinberger
848c28537b
feat(models): start local services on demand
2026-05-10 18:21:27 +01:00
Peter Steinberger
8e700ba317
feat(slack): add unfurl controls
...
Co-authored-by: Hemantsudarshan <hemanthsudarshan2002@gmail.com >
2026-05-10 15:29:24 +01:00
Peter Steinberger
335e5456d0
fix(agent): respect delivery status evidence
2026-05-10 14:09:01 +01:00
Peter Steinberger
325d9ca7cb
fix: add strict OpenAI-compatible message key mode
2026-05-10 10:02:05 +01:00
Peter Steinberger
a39c05559b
fix: preserve Codex auth during route repair
...
Summary:
- repair legacy openai-codex model refs to canonical openai refs without losing Codex auth intent
- keep scoped repairs from broadening runtime policy to unrelated agent/channel routes
- preserve explicit concrete model runtime pins and shield listed-agent canonical refs from default policy spillover
Verification:
- pnpm test src/commands/doctor/shared/codex-route-warnings.test.ts src/config/plugin-auto-enable.core.test.ts src/commands/doctor/shared/missing-configured-plugin-install.test.ts
- env -u OPENCLAW_TESTBOX -u OPENCLAW_TESTBOX_ID pnpm check:changed
- GitHub checks for 81b2934240
2026-05-10 04:53:44 -04:00
bitloi
ed6b030a43
feat(process): show input-wait hints in log and poll
...
Show input-wait hints in process log/poll for idle interactive background sessions, keep list markers and structured stdin metadata, and document the recovery flow through log plus existing input actions.
Docs: updated docs/gateway/background-process.md.
Verification:
- pnpm test src/agents/bash-tools.test.ts
- pnpm test src/agents/bash-tools.process.input-hints.test.ts
- pnpm test src/agents/bash-tools.process.input-hints.test.ts src/agents/bash-tools.process.poll-timeout.test.ts src/agents/bash-tools.process.supervisor.test.ts src/agents/bash-tools.process-send-keys.test.ts
- pnpm check:docs
- git diff --check
- CI on 4aea1f11fe : check, check-additional, check-docs, checks-node-core, process/security relevant shards, real behavior proof passed
Fixes #33957 .
Thanks @bitloi and @vincentkoc.
Co-authored-by: bitloi <89318445+bitloi@users.noreply.github.com >
Co-authored-by: bitloi <raphaelaloi.eth@gmail.com >
2026-05-10 04:13:07 -04:00
MkDev11
e37a3050d9
fix(agents): clean false-live session locks ( #76854 )
...
Summary:
- Clean false-live session locks whose live PID resolves to a non-OpenClaw owner.
- Tighten owner argv detection so generic JS entrypoints require an OpenClaw command token.
- Add regression coverage for generic non-OpenClaw entrypoints and preserve real gateway argv.
Verification:
- pnpm test src/agents/session-write-lock.test.ts src/commands/doctor-session-locks.test.ts
- pnpm test src/infra/gateway-process-argv.test.ts
- pnpm exec oxfmt --check --threads=1 src/agents/session-write-lock.ts src/agents/session-write-lock.test.ts src/commands/doctor-session-locks.ts src/commands/doctor-session-locks.test.ts docs/gateway/doctor.md CHANGELOG.md
- node scripts/run-oxlint.mjs src/agents/session-write-lock.ts src/agents/session-write-lock.test.ts src/commands/doctor-session-locks.ts src/commands/doctor-session-locks.test.ts
- CI workflow success on d42f9c46ef
Co-authored-by: mkdev11 <MkDev11@users.noreply.github.com >
2026-05-10 02:13:55 -04:00
Peter Steinberger
53cd3daed3
fix(kimi): use stable coding model id
2026-05-10 06:17:58 +01:00
80mills
ebd776298f
Add provider wildcard model visibility
2026-05-10 00:50:10 -04:00
Kevin Lin
b79de62b3c
fix(codex): remove dynamic tools profile option
2026-05-09 21:34:33 -07:00
Kevin Lin
ce0584af89
docs: reorganize Codex harness docs ( #80029 )
...
* docs: reorganize codex harness docs
* docs: address codex harness review findings
* docs: move codex references to reference nav
* docs: add codex topic configuration section
2026-05-09 19:02:50 -07:00
Peter Steinberger
38fe4d36c6
fix(discord): suppress stale realtime consults
2026-05-10 02:23:25 +01:00
VACInc
c5cc1bb184
Enable realtime Talk instructions config
2026-05-09 21:20:06 -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
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
50cb027a88
docs: document trusted skill symlink targets
2026-05-09 14:59:34 +01:00
Peter Steinberger
5618a8f8f6
feat: allow trusted skill symlink targets
2026-05-09 14:43:54 +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
VACInc
cfb0c34ff6
feat: add realtime consult overrides
2026-05-09 06:51:20 -04:00
Peter Steinberger
d80f20057e
fix: align realtime voice consult tool flow
2026-05-09 11:33:56 +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
Andy Ye
368c21e211
fix(daemon): include Homebrew in macOS service PATH
...
Summary:
- Document the canonical macOS LaunchAgent PATH including Apple Silicon Homebrew bin directories.
- Add service-audit regression coverage that flags stale macOS service PATHs missing Homebrew directories.
- Record the user-facing Gateway/macOS fix in the changelog.
Verification:
- Exact PR head 8aa19dde07 was approved, CLEAN, and MERGEABLE before merge.
- GitHub exact-head CI/check-docs/proof lanes were green with no failing or pending check runs.
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/gateway/doctor.md src/daemon/service-audit.test.ts src/daemon/service-env.ts src/daemon/service-env.test.ts src/commands/daemon-install-helpers.test.ts
- pnpm check:changelog-attributions
2026-05-08 17:59:46 -05:00
RenzoMXD
60f1b1f8d9
fix(gateway): preserve external Tailscale Funnel routes in serve mode
...
Adds opt-in `gateway.tailscale.preserveFunnel`. When `tailscale.mode = "serve"`
and an externally configured Tailscale Funnel route already covers the gateway
port, OpenClaw checks `tailscale funnel status --json` before re-applying
`tailscale serve` and skips both Serve and the `resetOnExit` teardown for that
run, preserving operator-managed Funnel exposure across gateway restarts.
The Funnel-status parser handles every documented Tailscale target scheme
(http, https, https+insecure) via an RFC 3986 scheme strip, plus loopback
hostnames (127.0.0.1, localhost, ::1) and bare-port forms. AllowFunnel-disabled
hosts and other-port routes are ignored.
Closes #57241 .
2026-05-08 09:28:51 -04:00
pashpashpash
02fe0d8978
Keep OpenAI Codex migrations on automatic runtime routing ( #79238 )
...
* fix: keep migrated openai codex routes automatic
* scope runtime policy to providers and models
* fix runtime policy surfaces
* fix ci runtime policy checks
* fix doctor stale session runtime pins
2026-05-08 16:05:35 +09:00
Peter Steinberger
d29201fe4f
docs: clarify BlueBubbles to imsg migration
2026-05-08 06:49:37 +01:00
Peter Steinberger
1f88cb2ce5
fix(gateway): persist macOS stop disable after bootout
...
Summary:
- carry forward #78412 's macOS LaunchAgent bootout-by-default stop behavior and repair guard
- fix the remaining `gateway stop --disable` tail when the service is already not loaded after bootout
- add lifecycle regressions, docs, and changelog
Verification:
- pnpm install
- pnpm test src/cli/daemon-cli/lifecycle-core.test.ts src/cli/daemon-cli/lifecycle.test.ts src/daemon/launchd.test.ts
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md src/cli/daemon-cli/lifecycle-core.ts src/cli/daemon-cli/lifecycle.ts src/cli/daemon-cli/lifecycle-core.test.ts src/cli/daemon-cli/lifecycle.test.ts docs/cli/gateway.md docs/gateway/index.md src/daemon/launchd.ts src/daemon/launchd.test.ts src/cli/daemon-cli/register-service-commands.ts src/cli/daemon-cli/types.ts src/daemon/service-types.ts
- git diff --check origin/main...HEAD
- pnpm build
- Parallels macOS Tahoe VM reproduce/fix proof in PR body
- PR checks green: Real behavior proof, auto-response, dispatch, label, label-issues
Co-authored-by: wdeveloper16 <25180374+wdeveloper16@users.noreply.github.com >
2026-05-08 05:35:21 +01:00
Daev Mithran
9e1e59717f
feat(plugin-sdk): add LLM completion API to plugin ( #64294 )
2026-05-07 19:27:48 -07:00
Josh Avant
83aad863fd
Clarify exec filesystem policy drift ( #79153 )
...
* docs: clarify exec filesystem policy
* fix: warn on exec filesystem policy drift
* docs: clarify exec filesystem mutation surface
2026-05-07 20:05:19 -05:00
Kevin Lin
a1ac559ed7
feat(codex): enable native plugin app support ( #78733 )
...
* feat(codex): add native plugin config schema
* feat(codex): add native plugin inventory activation
* feat(codex): configure native plugin apps for threads
* feat(codex): enforce plugin elicitation policy
* feat(codex): migrate native plugins
* docs(codex): document native plugin support
* fix(codex): harden plugin migration refresh
* fix(codex): satisfy plugin activation lint
* fix: stabilize codex plugin app config
* fix: address codex plugin review feedback
* fix: key codex plugin app cache by websocket credentials
* fix: keep codex plugin app fingerprints stable
* fix: refresh codex plugin cache test fixtures
* fix: refresh plugin app readiness after activation
* fix: support remote codex plugin activation
* fix: recover plugin app bindings after cache refresh
* fix: force codex app refresh after plugin activation
* fix: recover partial codex plugin app bindings
* fix: sync codex plugin selection config
* fix: keep codex plugin activation fail closed
* fix: align codex plugin protocol types with main
* fix: refresh partial codex plugin app bindings
* fix: key codex app cache by env api key
* fix: skip failed codex plugin migration config
* test: update codex prompt snapshots
* fix: fail closed on missing codex app inventory entries
* fix(codex): enforce native plugin policy gates
* fix(codex): normalize native plugin policy types
* fix(codex): fail closed on plugin refresh errors
* fix(codex): use native plugin destructive policy
* fix(codex): key plugin cache by api-key profiles
* fix(codex): drop unshipped plugin fingerprint compat
* fix(codex): let native app policy gate plugin tools
* fix(codex): allow open-world plugin app tools
* fix(codex): revalidate native plugin app bindings
* fix(codex): preserve plugin binding on recheck failure
* docs(codex): clarify plugin harness scope
* fix(codex): return activation report state exhaustively
* test(codex): refresh prompt snapshots after rebase
* fix(codex): match namespaced plugin ids
2026-05-07 17:20:28 -07:00