Gustavo Madeira Santana
21e8d88c1d
build: fix ineffective dynamic imports with lazy boundaries ( #33690 )
...
Merged via squash.
Prepared head SHA: 38b3c23d6f8f2b4c8a36a88ee65b508102f1ec36
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-03 20:14:41 -05:00
Shadow
b0bcea03db
fix: drop discord opus dependency
2026-03-03 12:23:19 -06:00
Sid
4ffe15c6b2
fix(telegram): warn when accounts.default is missing in multi-account setup ( #32544 )
...
Merged via squash.
Prepared head SHA: 7ebc3f65b21729137d352fa76bc31f2f849934c0
Co-authored-by: Sid-Qin <201593046+Sid-Qin@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-03 03:27:19 -05: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
Peter Steinberger
c85bd2646a
refactor(cli): extract plugin install plan helper
2026-03-03 02:51:11 +00:00
Gustavo Madeira Santana
15a0455d04
CLI: unify routed config positional parsing
2026-03-02 21:11:53 -05:00
Peter Steinberger
67e3eb85d7
refactor(tests): dedupe browser and config cli test setup
2026-03-03 01:15:09 +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
1b5ac8b0b1
feat(cli): add configurable banner tagline mode
2026-03-03 00:31:51 +00:00
Peter Steinberger
8824565c2a
chore(cli): refresh tagline set
2026-03-03 00:17:18 +00:00
Peter Steinberger
fd3ca8a34c
refactor: dedupe agent and browser cli helpers
2026-03-03 00:15:00 +00:00
Peter Steinberger
bb60687b89
refactor(nodes): dedupe camera payload and node resolve helpers
2026-03-02 23:32:41 +00:00
Peter Steinberger
3bf19d6f40
fix(security): fail-close node camera URL downloads
2026-03-02 23:23:39 +00:00
Peter Steinberger
2287d1ec13
test: micro-optimize slow suites and CLI command setup
2026-03-02 23:00:49 +00:00
Peter Steinberger
067855e623
refactor(browser): dedupe browser and cli command wiring
2026-03-02 21:31:36 +00:00
Peter Steinberger
b782ecb7eb
refactor: harden plugin install flow and main DM route pinning
2026-03-02 21:22:38 +00:00
Peter Steinberger
ad12d1fbce
fix(plugins): prefer bundled plugin ids over bare npm specs
2026-03-02 20:49:50 +00:00
scoootscooob
bfb6c6290f
fix: distinguish warning message for non-OpenClaw vs missing npm package
...
Address Greptile review: show "not a valid OpenClaw plugin" when the
npm package was found but lacks openclaw.extensions, instead of the
misleading "npm package unavailable" message.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 20:49:50 +00:00
scoootscooob
da8a17d8de
fix(plugins): fall back to bundled plugin when npm spec resolves to non-OpenClaw package ( #32019 )
...
When `openclaw plugins install diffs` downloads the unrelated npm
package `diffs@0.1.1` (which lacks `openclaw.extensions`), the install
fails without trying the bundled `@openclaw/diffs` plugin.
Two fixes:
1. Broaden the bundled-fallback trigger to also fire on
"missing openclaw.extensions" errors (not just npm 404s)
2. Match bundled plugins by pluginId in addition to npmSpec so
unscoped names like "diffs" resolve to `@openclaw/diffs`
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 20:49:50 +00:00
Peter Steinberger
b1c30f0ba9
refactor: dedupe cli config cron and install flows
2026-03-02 19:57:33 +00:00
bmendonca3
8b27582509
fix(cli): apply --profile before dotenv bootstrap in runCli ( #31950 )
...
Co-authored-by: bmendonca3 <bmendonca3@users.noreply.github.com >
2026-03-02 18:09:45 +00:00
Tak Hoffman
1ea42ebe98
fix(tsgo): unblock baseline type errors ( #31873 )
2026-03-02 10:09:49 -06:00
Peter Steinberger
d01e82d54a
test(perf): avoid module reload churn in config guard tests
2026-03-02 15:56:30 +00:00
Peter Steinberger
db3d8d82c1
test(perf): avoid module reset churn in daemon lifecycle tests
2026-03-02 15:43:20 +00:00
Evgeny Zislis
4b4ea5df8b
feat(cron): add failure destination support to failed cron jobs ( #31059 )
...
* feat(cron): add failure destination support with webhook mode and bestEffort handling
Extends PR #24789 failure alerts with features from PR #29145 :
- Add webhook delivery mode for failure alerts (mode: 'webhook')
- Add accountId support for multi-account channel configurations
- Add bestEffort handling to skip alerts when job has bestEffort=true
- Add separate failureDestination config (global + per-job in delivery)
- Add duplicate prevention (prevents sending to same as primary delivery)
- Add CLI flags: --failure-alert-mode, --failure-alert-account-id
- Add UI fields for new options in web cron editor
* fix(cron): merge failureAlert mode/accountId and preserve failureDestination on updates
- Fix mergeCronFailureAlert to merge mode and accountId fields
- Fix mergeCronDelivery to preserve failureDestination on updates
- Fix isSameDeliveryTarget to use 'announce' as default instead of 'none'
to properly detect duplicates when delivery.mode is undefined
* fix(cron): validate webhook mode requires URL in resolveFailureDestination
When mode is 'webhook' but no 'to' URL is provided, return null
instead of creating an invalid plan that silently fails later.
* fix(cron): fail closed on webhook mode without URL and make failureDestination fields clearable
- sendCronFailureAlert: fail closed when mode is webhook but URL is missing
- mergeCronDelivery: use per-key presence checks so callers can clear
nested failureDestination fields via cron.update
Note: protocol:check shows missing internalEvents in Swift models - this is
a pre-existing issue unrelated to these changes (upstream sync needed).
* fix(cron): use separate schema for failureDestination and fix type cast
- Create CronFailureDestinationSchema excluding after/cooldownMs fields
- Fix type cast in sendFailureNotificationAnnounce to use CronMessageChannel
* fix(cron): merge global failureDestination with partial job overrides
When job has partial failureDestination config, fall back to global
config for unset fields instead of treating it as a full override.
* fix(cron): avoid forcing announce mode and clear inherited to on mode change
- UI: only include mode in patch if explicitly set to non-default
- delivery.ts: clear inherited 'to' when job overrides mode, since URL
semantics differ between announce and webhook modes
* fix(cron): preserve explicit to on mode override and always include mode in UI patches
- delivery.ts: preserve job-level explicit 'to' when overriding mode
- UI: always include mode in failureAlert patch so users can switch between announce/webhook
* fix(cron): allow clearing accountId and treat undefined global mode as announce
- UI: always include accountId in patch so users can clear it
- delivery.ts: treat undefined global mode as announce when comparing for clearing inherited 'to'
* Cron: harden failure destination routing and add regression coverage
* Cron: resolve failure destination review feedback
* Cron: drop unrelated timeout assertions from conflict resolution
* Cron: format cron CLI regression test
* Cron: align gateway cron test mock types
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 09:27:41 -06:00
Peter Steinberger
87bd6226bd
test(perf): merge overlapping preaction hook scenarios
2026-03-02 14:52:38 +00:00
Robin Waslander
9f98d2766a
fix(logs): respect TZ env var for timestamp display, fix Windows timezone ( #21859 )
2026-03-02 08:44:37 -06:00
Ajay Elika
e23b6fb2ba
fix(gateway): add Windows-compatible port detection using netstat fallback (openclaw#29239) thanks @ajay99511
...
Verified:
- pnpm vitest src/cli/program.force.test.ts
- pnpm check
- pnpm build
Co-authored-by: ajay99511 <73169130+ajay99511@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 08:33:59 -06:00
tda
d145518f94
fix(cli): wait for process exit before restarting gateway on Windows (openclaw#27913) thanks @tda1017
...
Verified:
- pnpm vitest src/cli/update-cli/restart-helper.test.ts
- pnpm check
- pnpm build
Co-authored-by: tda1017 <95275462+tda1017@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 08:31:03 -06:00
Peter Machona
c2d41dc473
fix(daemon): recover Windows restarts from unknown stale listeners (openclaw#24734) thanks @chilu18
...
Verified:
- pnpm vitest src/cli/daemon-cli/restart-health.test.ts src/cli/gateway-cli.coverage.test.ts
- pnpm oxfmt --check src/cli/daemon-cli/restart-health.ts src/cli/daemon-cli/restart-health.test.ts
- pnpm check (fails on unrelated repo baseline tsgo errors in extensions/* and src/process/exec.windows.test.ts)
Co-authored-by: chilu18 <7957943+chilu18@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 08:24:25 -06:00
Peter Steinberger
38bdb0d271
test(perf): prune redundant preaction command-path cases
2026-03-02 14:14:02 +00:00
Peter Steinberger
98e5851d8a
test(perf): collapse overlapping preaction scenarios
2026-03-02 14:07:06 +00:00
Peter Steinberger
534f436d4e
test(perf): reduce repeated cli program setup overhead
2026-03-02 14:02:47 +00:00
Peter Steinberger
0d620a56e2
test(refactor): reuse shared program setup in preaction tests
2026-03-02 13:53:10 +00:00
Peter Steinberger
16e85360a1
perf(cli): cache preaction lazy module imports
2026-03-02 13:26:54 +00:00
kleebaker
b40d5817a2
fix(cron): avoid 30s timeout for cron run --expect-final ( #29942 )
...
* fix(cron): use longer default timeout for cron run --expect-final
* test(cron-cli): stabilize cron run timeout assertions with explicit run exits
---------
Co-authored-by: Kelly Baker <kelly@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 07:24:42 -06:00
Peter Steinberger
848ade07da
test(cli): fix gateway coverage mock signature
2026-03-02 13:00:21 +00:00
Peter Steinberger
b02b94673f
refactor: dedupe runtime and helper flows
2026-03-02 12:55:47 +00:00
Peter Steinberger
7b38e8231e
test(perf): stub expensive cli coverage integration paths
2026-03-02 12:41:45 +00:00
Peter Steinberger
ba3957ad77
test(perf): bypass daemon install token-generation path in coverage test
2026-03-02 12:24:03 +00:00
Peter Steinberger
bdfd3bae6f
test(perf): reuse cli programs in coverage tests
2026-03-02 12:00:28 +00:00
Peter Steinberger
94e480f64a
test(refactor): dedupe preaction command coverage
2026-03-02 11:41:40 +00:00
Peter Steinberger
0c2d85529a
test(refactor): dedupe cli and ios script scenarios
2026-03-02 11:16:33 +00:00
Peter Steinberger
96ef6ea3cf
test(perf): dedupe setup in cli/security script suites
2026-03-02 10:53:21 +00:00
Peter Steinberger
fcb956a0a2
test(cli): reduce update/program suite overhead
2026-03-02 09:46:27 +00:00
Vincent Koc
db28dda120
fix(cli): let browser start honor --timeout ( #31365 )
...
* fix(cli): respect browser start timeout option
* test(cli): cover browser start timeout propagation
* changelog: note browser start timeout propagation fix
2026-03-01 23:16:23 -08:00
Peter Steinberger
cded1b960a
test(commands): dedupe command and onboarding test cases
2026-03-02 07:13:10 +00:00
Sid
3002f13ca7
feat(config): add openclaw config validate and improve startup error messages ( #31220 )
...
Merged via squash.
Prepared head SHA: 4598f2a541f0bde300a096ef51638408d273c4bd
Co-authored-by: Sid-Qin <201593046+Sid-Qin@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-02 00:45:51 -05:00
Peter Steinberger
a13586619b
test: move integration-heavy suites to e2e lane
2026-03-02 05:33:07 +00:00
cyb1278588254
96ffbb5aaf
CLI: add config path subcommand to print active config file path ( #26256 )
...
Merged via squash.
Prepared head SHA: b11c593a34c5730f4244c054e1d1ab536953b0ef
Co-authored-by: cyb1278588254 <48212932+cyb1278588254@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-01 23:33:20 -05:00