Commit Graph

1421 Commits

Author SHA1 Message Date
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