Peter Steinberger
a52104c235
test: restore fs bridge helper export
2026-03-11 02:38:00 +00:00
Peter Steinberger
aad014c7c1
fix: harden subagent control boundaries
2026-03-11 01:44:38 +00:00
Peter Steinberger
68c674d37c
refactor(security): simplify system.run approval model
2026-03-11 01:43:06 +00:00
Peter Steinberger
5716e52417
refactor: unify gateway credential planning
2026-03-11 01:37:25 +00:00
Peter Steinberger
702f6f3305
fix: fail closed for unresolved local gateway auth refs
2026-03-11 01:14:06 +00:00
Peter Steinberger
158a3b49a7
test: deduplicate cli option collision fixtures
2026-03-10 20:34:54 +00:00
merlin
f184e7811c
fix: move config pre-flight before onNotLoaded in runServiceRestart (Codex P2)
...
The config check was positioned after onNotLoaded, which could send
SIGUSR1 to an unmanaged process before config was validated.
2026-03-09 05:53:52 +00:00
merlin
c79a0dbdb4
fix: address bot review feedback on #35862
...
- Remove dead 'return false' in runServiceStart (Greptile)
- Include stack trace in run-loop crash guard error log (Greptile)
- Only catch startup errors on subsequent restarts, not initial start (Codex P1)
- Add JSDoc note about env var false positive edge case (Codex P1)
2026-03-09 05:53:52 +00:00
merlin
335223af32
test: add runServiceStart config pre-flight tests ( #35862 )
...
Address Greptile review: add test coverage for runServiceStart path.
The error message copy-paste issue was already fixed in the DRY refactor
(uses params.serviceNoun instead of hardcoded 'restart').
2026-03-09 05:53:52 +00:00
merlin
eea925b12b
fix(gateway): validate config before restart to prevent crash + macOS permission loss ( #35862 )
...
When 'openclaw gateway restart' is run with an invalid config, the new
process crashes on startup due to config validation failure. On macOS,
this causes Full Disk Access (TCC) permissions to be lost because the
respawned process has a different PID.
Add getConfigValidationError() helper and pre-flight config validation
in both runServiceRestart() and runServiceStart(). If config is invalid,
abort with a clear error message instead of crashing.
The config watcher's hot-reload path already had this guard
(handleInvalidSnapshot), but the CLI restart/start commands did not.
AI-assisted (OpenClaw agent, fully tested)
2026-03-09 05:53:52 +00:00
Tyson Cung
4d501e4ccf
fix(telegram): add download timeout to prevent polling loop hang ( #40098 )
...
Merged via squash.
Prepared head SHA: abdfa1a35f
Co-authored-by: tysoncung <45380903+tysoncung@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-03-09 08:29:21 +05:30
yuweuii
f6243916b5
fix(models): use 1M context for openai-codex gpt-5.4 ( #37876 )
...
Merged via squash.
Prepared head SHA: c41020779e
Co-authored-by: yuweuii <82372187+yuweuii@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-08 18:23:49 -07:00
Radek Sienkiewicz
4f42c03a49
gateway: fix global Control UI 404s for symlinked wrappers and bundled package roots ( #40385 )
...
Merged via squash.
Prepared head SHA: 567b3ed684
Co-authored-by: velvet-shark <126378+velvet-shark@users.noreply.github.com >
Co-authored-by: velvet-shark <126378+velvet-shark@users.noreply.github.com >
Reviewed-by: @velvet-shark
2026-03-09 01:50:42 +01:00
bbblending
4ff4ed7ec9
fix(config): refresh runtime snapshot from disk after write. Fixes #37175 ( #37313 )
...
Merged via squash.
Prepared head SHA: 69e1861abf
Co-authored-by: bbblending <122739024+bbblending@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-08 19:49:15 -04:00
Peter Steinberger
3f2f007c9a
refactor: extract gateway port diagnostics helper
2026-03-08 23:38:24 +00:00
Peter Steinberger
32a6eae576
refactor: share gateway argv parsing
2026-03-08 23:38:24 +00:00
Vincent Koc
efcca3d2ea
Tests: format daemon lifecycle CLI coverage
2026-03-08 11:22:41 -07:00
yuweuii
6c9b49a10b
fix(sessions): clear stale contextTokens on model switch ( #38044 )
...
Merged via squash.
Prepared head SHA: bac2df4b7f
Co-authored-by: yuweuii <82372187+yuweuii@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-08 10:59:16 -07:00
Ayaan Zaidi
c217237a36
style(daemon-cli): format lifecycle test
2026-03-08 11:22:57 +05:30
Vincent Koc
c3810346f9
CLI: avoid false update restart failures without listener attribution ( #39508 )
2026-03-07 21:42:25 -08:00
Peter Steinberger
59102a1ff7
fix: add gemini 3.1 flash-lite support
2026-03-08 05:12:48 +00:00
Ayaan Zaidi
5214859c52
chore: add changelog and format fix for #39414
2026-03-08 09:17:02 +05:30
Peter Steinberger
f2a4bdf069
fix(ci): resolve current gate regressions
2026-03-08 03:34:36 +00:00
Peter Steinberger
380eb1c072
refactor: reuse shared gateway probe auth
2026-03-08 03:02:25 +00:00
Peter Steinberger
fd1e481624
refactor: split daemon status gathering
2026-03-08 03:02:25 +00:00
Peter Steinberger
2646739d23
refactor: centralize strict numeric parsing
2026-03-08 03:02:25 +00:00
Peter Steinberger
56cd0084d9
test: fix gate regressions
2026-03-08 02:45:08 +00:00
Vincent Koc
bf9c362129
Gateway: stop and restart unmanaged listeners ( #39355 )
...
* Daemon: allow unmanaged gateway lifecycle fallback
* Status: fix service summary formatting
* Changelog: note unmanaged gateway lifecycle fallback
* Tests: cover unmanaged gateway lifecycle fallback
* Daemon: split unmanaged restart health checks
* Daemon: harden unmanaged gateway signaling
* Daemon: reject unmanaged restarts when disabled
2026-03-07 18:20:29 -08:00
Vincent Koc
ae15e3fd60
Daemon CLI: format lifecycle core imports
2026-03-07 18:00:13 -08:00
Vincent Koc
2c7fb54956
Config: fail closed invalid config loads ( #39071 )
...
* Config: fail closed invalid config loads
* CLI: keep diagnostics on explicit best-effort config
* Tests: cover invalid config best-effort diagnostics
* Changelog: note invalid config fail-closed fix
* Status: pass best-effort config through status-all gateway RPCs
* CLI: pass config through gateway secret RPC
* CLI: skip plugin loading from invalid config
* Tests: align daemon token drift env precedence
2026-03-07 17:48:13 -08:00
Peter Steinberger
7ac7b39eff
refactor(daemon): extract gateway token drift helper
2026-03-08 00:48:56 +00:00
Vincent Koc
0d66834f94
Daemon: scope relaxed systemd probes to install flows
2026-03-07 16:45:18 -08:00
Josh Avant
25252ab5ab
gateway: harden shared auth resolution across systemd, discord, and node host
2026-03-07 18:28:32 -06:00
Peter Steinberger
4e07bdbdfd
fix(cron): restore isolated delivery defaults
2026-03-08 00:18:45 +00:00
Vincent Koc
029fdd4208
Daemon CLI: type-safe install plan assertions
2026-03-07 16:02:27 -08:00
Vincent Koc
c5fb661742
Daemon CLI: resolve token drift from gateway credentials
2026-03-07 16:02:18 -08:00
Peter Steinberger
fecca6fd8d
refactor: unify gateway SecretRef auth resolution paths
2026-03-07 23:27:50 +00:00
Peter Steinberger
265367d99b
fix(gateway): land #28428 from @l0cka
...
Landed from contributor PR #28428 by @l0cka.
Co-authored-by: Daniel Alkurdi <danielalkurdi@gmail.com >
2026-03-07 22:51:08 +00:00
Peter Steinberger
b955ba1688
refactor: consolidate daemon runtime and start hints
2026-03-07 21:09:26 +00:00
Peter Steinberger
a91731a831
refactor: centralize gateway auth env credential readers
2026-03-07 21:09:26 +00:00
Vincent Koc
e4d80ed556
CI: restore main detect-secrets scan ( #38438 )
...
* Tests: stabilize detect-secrets fixtures
* Tests: fix rebased detect-secrets false positives
* Docs: keep snippets valid under detect-secrets
* Tests: finalize detect-secrets false-positive fixes
* Tests: reduce detect-secrets false positives
* Tests: keep detect-secrets pragmas inline
* Tests: remediate next detect-secrets batch
* Tests: tighten detect-secrets allowlists
* Tests: stabilize detect-secrets formatter drift
2026-03-07 10:06:35 -08:00
Peter Steinberger
0a73328053
refactor(cli): dedupe restart health probe setup tests
2026-03-07 17:05:23 +00:00
Peter Steinberger
8db5d67768
chore: update dependencies except carbon
2026-03-07 10:55:18 +00:00
zerone0x
94fdee2eac
fix(memory-flush): ban timestamped variant files in default flush prompt ( #34951 )
...
Merged via squash.
Prepared head SHA: efadda4988
Co-authored-by: zerone0x <39543393+zerone0x@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-03-05 18:15:13 -08:00
Josh Avant
72cf9253fc
Gateway: add SecretRef support for gateway.auth.token with auth-mode guardrails ( #35094 )
2026-03-05 12:53:56 -06:00
Vincent Koc
2b98cb6d8b
Fix gateway restart false timeouts on Debian/systemd ( #34874 )
...
* daemon(systemd): target sudo caller user scope
* test(systemd): cover sudo user scope commands
* infra(ports): fall back to ss when lsof missing
* test(ports): verify ss fallback listener detection
* cli(gateway): use probe fallback for restart health
* test(gateway): cover restart-health probe fallback
2026-03-04 10:52:33 -08:00
Josh Avant
806803b7ef
feat(secrets): expand SecretRef coverage across user-supplied credentials ( #29580 )
...
* feat(secrets): expand secret target coverage and gateway tooling
* docs(secrets): align gateway and CLI secret docs
* chore(protocol): regenerate swift gateway models for secrets methods
* fix(config): restore talk apiKey fallback and stabilize runner test
* ci(windows): reduce test worker count for shard stability
* ci(windows): raise node heap for test shard stability
* test(feishu): make proxy env precedence assertion windows-safe
* fix(gateway): resolve auth password SecretInput refs for clients
* fix(gateway): resolve remote SecretInput credentials for clients
* fix(secrets): skip inactive refs in command snapshot assignments
* fix(secrets): scope gateway.remote refs to effective auth surfaces
* fix(secrets): ignore memory defaults when enabled agents disable search
* fix(secrets): honor Google Chat serviceAccountRef inheritance
* fix(secrets): address tsgo errors in command and gateway collectors
* fix(secrets): avoid auth-store load in providers-only configure
* fix(gateway): defer local password ref resolution by precedence
* fix(secrets): gate telegram webhook secret refs by webhook mode
* fix(secrets): gate slack signing secret refs to http mode
* fix(secrets): skip telegram botToken refs when tokenFile is set
* fix(secrets): gate discord pluralkit refs by enabled flag
* fix(secrets): gate discord voice tts refs by voice enabled
* test(secrets): make runtime fixture modes explicit
* fix(cli): resolve local qr password secret refs
* fix(cli): fail when gateway leaves command refs unresolved
* fix(gateway): fail when local password SecretRef is unresolved
* fix(gateway): fail when required remote SecretRefs are unresolved
* fix(gateway): resolve local password refs only when password can win
* fix(cli): skip local password SecretRef resolution on qr token override
* test(gateway): cast SecretRef fixtures to OpenClawConfig
* test(secrets): activate mode-gated targets in runtime coverage fixture
* fix(cron): support SecretInput webhook tokens safely
* fix(bluebubbles): support SecretInput passwords across config paths
* fix(msteams): make appPassword SecretInput-safe in onboarding/token paths
* fix(bluebubbles): align SecretInput schema helper typing
* fix(cli): clarify secrets.resolve version-skew errors
* refactor(secrets): return structured inactive paths from secrets.resolve
* refactor(gateway): type onboarding secret writes as SecretInput
* chore(protocol): regenerate swift models for secrets.resolve
* feat(secrets): expand extension credential secretref support
* fix(secrets): gate web-search refs by active provider
* fix(onboarding): detect SecretRef credentials in extension status
* fix(onboarding): allow keeping existing ref in secret prompt
* fix(onboarding): resolve gateway password SecretRefs for probe and tui
* fix(onboarding): honor secret-input-mode for local gateway auth
* fix(acp): resolve gateway SecretInput credentials
* fix(secrets): gate gateway.remote refs to remote surfaces
* test(secrets): cover pattern matching and inactive array refs
* docs(secrets): clarify secrets.resolve and remote active surfaces
* fix(bluebubbles): keep existing SecretRef during onboarding
* fix(tests): resolve CI type errors in new SecretRef coverage
* fix(extensions): replace raw fetch with SSRF-guarded fetch
* test(secrets): mark gateway remote targets active in runtime coverage
* test(infra): normalize home-prefix expectation across platforms
* fix(cli): only resolve local qr password refs in password mode
* test(cli): cover local qr token mode with unresolved password ref
* docs(cli): clarify local qr password ref resolution behavior
* refactor(extensions): reuse sdk SecretInput helpers
* fix(wizard): resolve onboarding env-template secrets before plaintext
* fix(cli): surface secrets.resolve diagnostics in memory and qr
* test(secrets): repair post-rebase runtime and fixtures
* fix(gateway): skip remote password ref resolution when token wins
* fix(secrets): treat tailscale remote gateway refs as active
* fix(gateway): allow remote password fallback when token ref is unresolved
* fix(gateway): ignore stale local password refs for none and trusted-proxy
* fix(gateway): skip remote secret ref resolution on local call paths
* test(cli): cover qr remote tailscale secret ref resolution
* fix(secrets): align gateway password active-surface with auth inference
* fix(cli): resolve inferred local gateway password refs in qr
* fix(gateway): prefer resolvable remote password over token ref pre-resolution
* test(gateway): cover none and trusted-proxy stale password refs
* docs(secrets): sync qr and gateway active-surface behavior
* fix: restore stability blockers from pre-release audit
* Secrets: fix collector/runtime precedence contradictions
* docs: align secrets and web credential docs
* fix(rebase): resolve integration regressions after main rebase
* fix(node-host): resolve gateway secret refs for auth
* fix(secrets): harden secretinput runtime readers
* gateway: skip inactive auth secretref resolution
* cli: avoid gateway preflight for inactive secret refs
* extensions: allow unresolved refs in onboarding status
* tests: fix qr-cli module mock hoist ordering
* Security: align audit checks with SecretInput resolution
* Gateway: resolve local-mode remote fallback secret refs
* Node host: avoid resolving inactive password secret refs
* Secrets runtime: mark Slack appToken inactive for HTTP mode
* secrets: keep inactive gateway remote refs non-blocking
* cli: include agent memory secret targets in runtime resolution
* docs(secrets): sync docs with active-surface and web search behavior
* fix(secrets): keep telegram top-level token refs active for blank account tokens
* fix(daemon): resolve gateway password secret refs for probe auth
* fix(secrets): skip IRC NickServ ref resolution when NickServ is disabled
* fix(secrets): align token inheritance and exec timeout defaults
* docs(secrets): clarify active-surface notes in cli docs
* cli: require secrets.resolve gateway capability
* gateway: log auth secret surface diagnostics
* secrets: remove dead provider resolver module
* fix(secrets): restore gateway auth precedence and fallback resolution
* fix(tests): align plugin runtime mock typings
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-03-03 02:58:20 +00:00
Gustavo Madeira Santana
f26853f14c
CLI: dedupe config validate errors and expose allowed values
2026-03-02 20:05:12 -05:00
Peter Steinberger
b1c30f0ba9
refactor: dedupe cli config cron and install flows
2026-03-02 19:57:33 +00:00
Peter Steinberger
db3d8d82c1
test(perf): avoid module reset churn in daemon lifecycle tests
2026-03-02 15:43:20 +00:00