Peter Steinberger
8d2d6db9ad
test: fix Node 24+ test runner and subagent registry mocks
2026-03-09 06:45:13 +00:00
Vincent Koc
6d5e142b93
Docker: improve build cache reuse ( #40351 )
...
* Docker: improve build cache reuse
* Tests: cover Docker build cache layout
* Docker: fix sandbox cache mount continuations
* Docker: document qr-import manifest scope
* Docker: narrow e2e install inputs
* CI: cache Docker builds in workflows
* CI: route sandbox smoke through setup script
* CI: keep sandbox smoke on script path
2026-03-08 17:57:46 -07:00
Vincent Koc
3f3f66a5f7
Docker: trim runtime image payload ( #40307 )
...
* Docker: shrink runtime image payload
* Docker: add runtime pnpm opt-in
* Docker: collapse helper entrypoint chmod layers
* Docker: restore bundled pnpm runtime
* Update CHANGELOG.md
2026-03-08 16:07:04 -07:00
langdon
bd1fe4d8b4
fix(run-openclaw-podman): add SELinux :Z mount option on enforcing/permissive hosts ( #39449 )
...
* fix(run-openclaw-podman): add SELinux :Z mount option on Linux with enforcing/permissive SELinux
* fix(quadlet): add SELinux :Z label to openclaw.container.in volume mount
* fix(podman): add SELinux :Z mount option for Fedora/RHEL hosts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: sallyom <somalley@redhat.com>
---------
Signed-off-by: sallyom <somalley@redhat.com>
Co-authored-by: sallyom <somalley@redhat.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 18:53:09 -04:00
Peter Steinberger
3ada30e670
fix: restore gate after rebase
2026-03-08 18:40:15 +00:00
Peter Steinberger
d307a7ca1a
refactor: extract bundled extension manifest parser
2026-03-08 18:26:36 +00:00
Peter Steinberger
f493b03202
refactor: validate bundled extension release metadata
2026-03-08 18:26:36 +00:00
Peter Steinberger
64d4d9aabb
refactor: move bundled extension gap allowlists into manifests
2026-03-08 18:26:35 +00: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
GitBuck
caf1b84822
feat: allow compaction model override via config ( #38753 )
...
Merged via squash.
Prepared head SHA: a3d6d6c845
Co-authored-by: starbuck100 <25417736+starbuck100@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-08 10:47:34 -07:00
Peter Steinberger
1ec1f0f1f2
refactor: scope prep push results to env artifacts
2026-03-08 16:22:52 +00:00
Peter Steinberger
fa00b1d0ca
refactor: dedupe prep branch push flow
2026-03-08 16:22:52 +00:00
Peter Steinberger
032778fb2e
refactor: avoid checkout during prep head verification
2026-03-08 16:22:52 +00:00
Altay
ca5e352c53
CLI: include commit hash in --version output ( #39712 )
...
* CLI: include commit hash in --version output
* fix(version): harden commit SHA resolution and keep output consistent
* CLI: keep install checks compatible with commit-tagged version output
* fix(cli): include commit hash in root version fast path
* test(cli): allow null commit-hash mocks
* Installer: share version parser across install scripts
* Installer: avoid sourcing helpers from stdin cwd
* CLI: note commit-tagged version output
* CLI: anchor commit hash resolution to module root
* CLI: harden commit hash resolution
* CLI: fix commit hash lookup edge cases
* CLI: prefer live git metadata in dev builds
* CLI: keep git lookup inside package root
* Infra: tolerate invalid moduleUrl hints
* CLI: cache baked commit metadata fallbacks
* CLI: align changelog attribution with prep gate
* CLI: restore changelog contributor credit
---------
Co-authored-by: echoVic <echovic@163.com>
Co-authored-by: echoVic <echoVic@users.noreply.github.com>
2026-03-08 19:10:48 +03:00
Peter Steinberger
eba9dcc67a
Refactor release hardening follow-ups ( #39959 )
...
* build: fail fast on stale host-env swift policy
* build: sync generated host env swift policy
* build: guard bundled extension root dependency gaps
* refactor: centralize provider capability quirks
* test: table-drive provider regression coverage
* fix: block merge when prep branch has unpushed commits
* refactor: simplify models config merge preservation
2026-03-08 14:49:58 +00:00
Charles Dusek
64760614aa
macOS: default release app builds to universal binaries
2026-03-08 14:14:36 +00:00
Peter Steinberger
dd8fd98ad4
build: reduce build log noise
2026-03-08 04:12:32 +00:00
Peter Steinberger
21df014d56
fix: stage docker live tests from mounted source
2026-03-08 04:06:26 +00:00
Peter Steinberger
79e3d1f956
fix: retry git lock in committer
2026-03-08 00:28:37 +00:00
Peter Steinberger
9856d8432d
chore(scripts): remove changelog fragment workflow helpers
2026-03-08 00:24:49 +00:00
Peter Steinberger
efdff9c738
fix(scripts): enforce changelog.md and post clickable SHA links
2026-03-08 00:23:45 +00:00
Peter Steinberger
168e4159ad
fix(podman): honor OPENCLAW_GATEWAY_BIND env-file override ( #38785 , thanks @majinyu666)
...
Co-authored-by: majinyu666 <majy14miles@gmail.com>
2026-03-07 21:08:15 +00:00
Peter Steinberger
e27bbe4982
fix(exec): block dangerous override-only env pivots
2026-03-07 19:18:05 +00:00
Nimrod Gutman
43ab4f33ad
feat(ios): prepare app store connect release assets
2026-03-07 17:21:07 +02:00
Vincent Koc
a190220967
Tests: serialize low-memory test runner lanes
2026-03-06 17:45:44 -05:00
Vincent Koc
60d20f9daf
Install Smoke: allow reusing prebuilt test images
2026-03-06 14:23:00 -05:00
Vincent Koc
6a9deb21b8
CI: cover skill and extension tests
2026-03-06 11:21:03 -05:00
Shakker
60849f3335
chore(pr): enforce changelog placement and reduce merge sync churn
2026-03-05 06:37:53 +00:00
Shakker
5d5fa0dac8
fix(pr): make review claim step required
2026-03-05 04:53:32 +00:00
Shakker
4cc293d084
fix(review): enforce behavioral sweep validation
2026-03-04 18:49:36 +00:00
Gustavo Madeira Santana
7a2f5a0098
Plugin SDK: add full bundled subpath wiring
2026-03-04 02:35:12 -05:00
Gustavo Madeira Santana
802b9f6b19
Plugins: add root-alias shim and cache/docs updates
2026-03-04 01:20:48 -05:00
Gustavo Madeira Santana
1278ee9248
plugin-sdk: add channel subpaths and migrate bundled plugins
2026-03-03 22:07:03 -05:00
Igal Tabachnik
a4850b1b8f
fix(plugins): lazily initialize runtime and split plugin-sdk startup imports ( #28620 )
...
Merged via squash.
Prepared head SHA: 8bd7d6c13b
Co-authored-by: hmemcpy <601206+hmemcpy@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-03 19:58:48 -05:00
Shakker
b02a07655d
fix: harden pr review artifact validation
2026-03-03 21:14:37 +00:00
Shadow
3b3738e41e
fix(discord): use fetch for voice upload slots
2026-03-03 10:22:28 -06:00
Peter Steinberger
b52c9f2575
fix(ci): handle disabled systemd units in docker doctor flow
2026-03-03 05:52:14 +00:00
Peter Steinberger
f175a5d6d3
fix(ci): avoid shell interpolation in changed-scope git diff
2026-03-03 03:34:46 +00:00
Vincent Koc
2c6616b830
CI: gate Windows checks by windows-relevant scope ( #32456 )
...
* CI: add windows scope output for changed-scope
* Test: cover windows scope gating in changed-scope
* CI: gate checks-windows by windows scope
* Docs: update CI windows scope and runner label
* CI: move checks-windows to 32 vCPU runner
* Docs: align CI windows runner with workflow
2026-03-02 19:10:58 -08:00
Peter Steinberger
da6e6fb900
test: fix strict runtime mock types in channel tests
2026-03-03 03:06:22 +00:00
Peter Steinberger
7fd4328854
fix(e2e): include shared tool display resource in onboard docker build
2026-03-03 03:02:27 +00: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
Josh Lehman
3a8133d587
fix(scripts/pr): SSH-first prhead remote with GraphQL fallback for fork PRs ( #32126 )
...
Co-authored-by: Shakker <shakkerdroid@gmail.com>
2026-03-03 02:46:01 +00:00
Peter Steinberger
59567a8c5d
ci: move changed-scope logic into tested script
2026-03-03 02:37:23 +00:00
Peter Steinberger
493b560dfd
refactor(runtime): unify node version guard parsing
2026-03-03 02:19:34 +00:00
Jason Hargrove
f8ed48293c
fix(cli): align Node 22.12 preflight checks and clean runtime guard output
...
Tighten installer/runtime consistency so users on Node 22.0-22.11 are blocked before install/runtime drift, with cleaner CLI guidance.
- Enforce Node >=22.12 in scripts/install.sh preflight checks
- Align installer messages to the same 22.12+ runtime floor
- Replace openclaw.mjs thrown version error with stderr+exit to avoid noisy stack traces
2026-03-03 02:03:45 +00:00
Jason Hargrove
96a38d5aa4
fix(cli): fail fast on unsupported Node versions in install and runtime paths
...
Surface a clear Node 22.12+ requirement before npm/install bootstrap work so users avoid misleading downstream errors.
- Add installer shell preflight to block active Node <22 and suggest NVM recovery commands
- Add openclaw.mjs runtime preflight for npm/npx usage with explicit Node version guidance
- Keep messaging actionable for both NVM and non-NVM environments
2026-03-03 02:03:45 +00:00
Peter Steinberger
596621919c
chore(test): add vitest hotspot reporter script
2026-03-03 00:43:01 +00:00
Peter Steinberger
d37ad9d866
test(perf): slim ios team-id harness and add perf budget guard
2026-03-03 00:20:46 +00:00
Peter Steinberger
b8b8a5f314
fix(security): enforce explicit ingress owner context
2026-03-02 23:50:36 +00:00
Peter Steinberger
11adaa15a8
test: isolate high-variance suites in parallel scheduler
2026-03-02 22:29:13 +00:00
Peter Steinberger
453a1c179d
fix: restore release-check control flow after export guard merge
2026-03-02 21:35:12 +00:00
Glucksberg
58e9ca2fb6
fix(release-check): add 4 missing plugin-sdk exports to align with check script
2026-03-02 21:30:44 +00:00
Glucksberg
61d14e8a8a
fix(plugin-sdk): add export verification tests and release guard ( #27569 )
2026-03-02 21:30:44 +00:00
Peter Steinberger
eb816e0551
refactor: dedupe extension and ui helpers
2026-03-02 19:57:33 +00:00
Vincent Koc
a19a7f5e6e
feat(security): Harden Docker browser container chromium flags ( #23889 ) ( #31504 )
...
* Gateway: honor OPENCLAW_GATEWAY_URL override for remote/local calls
* Agents: fix sandbox sessionKey usage for PI embedded subagent calls
* Sandbox: tighten browser container Chromium runtime flags
* fix: add sandbox browser defaults for container hardening
* docs: expand sandbox browser default flags list
* fix: make sandbox browser flags optional and preserve gateway env auth overrides
* docs: scope PR 31504 changelog entry
* style: format gateway call override handling
* fix: dedupe sandbox browser chrome args
* fix: preserve remote tls fingerprint for env gateway override
* fix: enforce auth for env gateway URL override
* chore: document gateway override auth security expectations
2026-03-02 11:28:27 -08:00
Peter Steinberger
1c9deeda97
refactor: split webhook ingress and policy guards
2026-03-02 18:02:21 +00:00
Peter Steinberger
d3e8b17aa6
fix: harden webhook auth-before-body handling
2026-03-02 17:21:09 +00:00
Hiren Thakore
193ad2f4f0
fix: handle PowerShell execution policy on Windows install ( #24794 )
...
* fix: add Arch Linux support to install.sh (GH#8051)
* fix: handle PowerShell execution policy on Windows install (GH#24784)
2026-03-02 11:09:01 -06:00
Peter Steinberger
a229ae6c3e
chore(lint): add registerHttpHandler usage guard script
2026-03-02 16:24:06 +00:00
Peter Steinberger
dbc78243f4
refactor(scripts): share guard runners and paged select UI
2026-03-02 14:36:41 +00:00
Peter Steinberger
4dcb16d696
ci: fix install smoke docker helper path
2026-03-02 11:01:56 +00:00
Peter Steinberger
756f9c9fef
refactor(scripts): dedupe installer CLI verification
2026-03-02 08:59:33 +00:00
Peter Steinberger
00a2456b72
refactor(scripts): dedupe guard checks and smoke helpers
2026-03-02 08:54:20 +00:00
Tyler Yust
f918b336d1
fix: agent-only announce path, BB message IDs, sender identity, SSRF allowlist ( #23970 )
...
* fix(agents): defer announces until descendant cleanup settles
* fix(bluebubbles): harden message metadata extraction
* feat(contributors): rank by composite score (commits, PRs, LOC, tenure)
* refactor(control-ui): move method guard after path checks to improve request handling
* fix subagent completion announce when only current run is pending
* fix(subagents): keep orchestrator runs active until descendants finish
* fix: prepare PR feedback follow-ups (#23970 ) (thanks @tyler6204)
2026-03-01 22:52:11 -08:00
Peter Steinberger
842deefe5d
test: split fast lane from channel and gateway suites
2026-03-02 05:33:07 +00:00
Peter Steinberger
d17f4432b3
chore: fix gate formatting and raw-fetch allowlist lines
2026-03-02 04:18:48 +00:00
Peter Steinberger
706cfcd54f
fix: isolate docker onboard e2e config env
2026-03-02 04:10:28 +00:00
Peter Steinberger
6c5633598e
fix(security): harden clawlog command execution
2026-03-01 23:33:13 +00:00
Vincent Koc
38da2d076c
CLI: add root --help fast path and lazy channel option resolution ( #30975 )
...
* CLI argv: add strict root help invocation guard
* Entry: add root help fast-path bootstrap bypass
* CLI context: lazily resolve channel options
* CLI context tests: cover lazy channel option resolution
* CLI argv tests: cover root help invocation detection
* Changelog: note additional startup path optimizations
* Changelog: split startup follow-up into #30975 entry
* CLI channel options: load precomputed startup metadata
* CLI channel options tests: cover precomputed metadata path
* Build: generate CLI startup metadata during build
* Build script: invoke CLI startup metadata generator
* CLI routes: preload plugins for routed health
* CLI routes tests: assert health plugin preload
* CLI: add experimental bundled entry and snapshot helper
* Tools: compare CLI startup entries in benchmark script
* Docs: add startup tuning notes for Pi and VM hosts
* CLI: drop bundled entry runtime toggle
* Build: remove bundled and snapshot scripts
* Tools: remove bundled-entry benchmark shortcut
* Docs: remove bundled startup bench examples
* Docs: remove Pi bundled entry mention
* Docs: remove VM bundled entry mention
* Changelog: remove bundled startup follow-up claims
* Build: remove snapshot helper script
* Build: remove CLI bundle tsdown config
* Doctor: add low-power startup optimization hints
* Doctor: run startup optimization hint checks
* Doctor tests: cover startup optimization host targeting
* Doctor tests: mock startup optimization note export
* CLI argv: require strict root-only help fast path
* CLI argv tests: cover mixed root-help invocations
* CLI channel options: merge metadata with runtime catalog
* CLI channel options tests: assert dynamic catalog merge
* Changelog: align #30975 startup follow-up scope
* Docs tests: remove secondary-entry startup bench note
* Docs Pi: add systemd recovery reference link
* Docs VPS: add systemd recovery reference link
2026-03-01 14:23:46 -08:00
Vincent Koc
94a5d28d26
CI: remove Vitest JSON report artifacts ( #30976 )
...
* CI: remove vitest JSON report upload steps
* Tests: stop injecting vitest JSON reporter
* Tests: remove vitest slowest report script
2026-03-01 13:03:06 -08:00
Vincent Koc
bdd59e0149
Scripts: add CLI startup benchmark harness
2026-03-01 12:56:56 -08:00
Onur
79fcc8404e
Scripts: add openclaw driver mode to discord ACP smoke
2026-03-01 20:39:24 +01:00
Charlie Niño
26db298d3e
fix: sed escaping and UID mismatch in Podman Quadlet setup ( #26414 )
...
* fix: sed escaping and UID mismatch in Podman Quadlet setup
Fix two bugs in the Podman/Quadlet installation path:
1. setup-podman.sh line 227: Remove `/` from sed escape character class.
The sed substitution uses `|` as delimiter, so `/` doesn't need
escaping. Including it causes paths like `/home/openclaw` to become
`\/home\/openclaw`, which Podman rejects as invalid volume names.
2. openclaw.container.in: Add `User=%U:%G` after `UserNS=keep-id`.
The Dockerfile sets `USER node` (UID 1000), but the `openclaw` system
user created by setup-podman.sh may get a different UID (e.g., 1001).
Without `User=%U:%G`, the container process runs as UID 1000 and
cannot read config files owned by the openclaw user.
Closes #26400
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* scripts: extract quadlet sed replacement escaping helper
* podman: document quadlet user mapping rationale
* scripts: correct sed replacement escaping for pipe delimiter
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-02-28 09:20:18 -08:00
Ayaan Zaidi
f29c642c13
fix(release): enforce lane floor for calver appcast entries
2026-02-28 10:28:53 +05:30
Ayaan Zaidi
83698bf13e
fix(macos): derive canonical APP_BUILD after deps install
2026-02-28 10:04:25 +05:30
Ayaan Zaidi
af9edc98e4
fix(release): unify sparkle build policy and defaults
2026-02-28 10:04:25 +05:30
Logan Pritchett
84adedd1cb
macos: treat empty APP_BUILD as fallback
2026-02-28 10:04:25 +05:30
Logan Pritchett
0332dce203
macos: parse calver month/day as decimal for Sparkle build
2026-02-28 10:04:25 +05:30
Logan Pritchett
e4ee585b73
release-check: align appcast floor with Sparkle build lanes
2026-02-28 10:04:25 +05:30
Logan Pritchett
08fd579412
macos: make derived Sparkle build unique for same-day releases
2026-02-28 10:04:25 +05:30
Logan Pritchett
3be12b9fc4
release-check: validate appcast sparkle version floor
2026-02-28 10:04:25 +05:30
Logan Pritchett
7237b4666b
macos: make default Sparkle build version monotonic
2026-02-28 10:04:25 +05:30
Sid
4221b5f809
fix: pass rootId to streaming card in Feishu topic groups (openclaw#28346) thanks @Sid-Qin
...
Verified:
- pnpm check
- pnpm test extensions/feishu/src/reply-dispatcher.test.ts
Co-authored-by: Sid-Qin <201593046+Sid-Qin@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-27 20:20:53 -06:00
Shakker
46d9605ef8
merge-pr: use short squash merge banner
2026-02-27 21:41:24 +00:00
Peter Steinberger
cb917b7f05
chore: silence onboard warning noise
2026-02-26 22:47:35 +01:00
Peter Steinberger
bce643a0bd
refactor(security): enforce account-scoped pairing APIs
2026-02-26 21:57:52 +01:00
Peter Steinberger
10481097f8
refactor(security): enforce v1 node exec approval binding
2026-02-26 18:09:01 +01:00
Peter Steinberger
cd80c7e7ff
refactor: unify dm policy store reads and reason codes
2026-02-26 17:47:57 +01:00
Peter Steinberger
273973d374
refactor: unify typing dispatch lifecycle and policy boundaries
2026-02-26 17:36:16 +01:00
Peter Steinberger
4894d907fa
refactor(exec-approvals): unify system.run binding and generate host env policy
2026-02-26 16:58:01 +01:00
Peter Steinberger
57334cd7d8
refactor: unify channel/plugin ssrf fetch policy and auth fallback
2026-02-26 16:44:13 +01:00
Peter Steinberger
051fdcc428
fix(security): centralize dm/group allowlist auth composition
2026-02-26 16:35:33 +01:00
Peter Steinberger
ecb2053fdd
chore(pr): guard against dropped changelog refs
2026-02-26 13:19:25 +01:00
Peter Steinberger
5df9aacf68
fix(podman): default run-openclaw-podman bind to loopback (land #27491 , thanks @robbyczgw-cla)
...
Co-authored-by: robbyczgw-cla <robbyczgw@gmail.com>
2026-02-26 12:13:20 +00:00
Onur Solmaz
a7d56e3554
feat: ACP thread-bound agents ( #23580 )
...
* docs: add ACP thread-bound agents plan doc
* docs: expand ACP implementation specification
* feat(acp): route ACP sessions through core dispatch and lifecycle cleanup
* feat(acp): add /acp commands and Discord spawn gate
* ACP: add acpx runtime plugin backend
* fix(subagents): defer transient lifecycle errors before announce
* Agents: harden ACP sessions_spawn and tighten spawn guidance
* Agents: require explicit ACP target for runtime spawns
* docs: expand ACP control-plane implementation plan
* ACP: harden metadata seeding and spawn guidance
* ACP: centralize runtime control-plane manager and fail-closed dispatch
* ACP: harden runtime manager and unify spawn helpers
* Commands: route ACP sessions through ACP runtime in agent command
* ACP: require persisted metadata for runtime spawns
* Sessions: preserve ACP metadata when updating entries
* Plugins: harden ACP backend registry across loaders
* ACPX: make availability probe compatible with adapters
* E2E: add manual Discord ACP plain-language smoke script
* ACPX: preserve streamed spacing across Discord delivery
* Docs: add ACP Discord streaming strategy
* ACP: harden Discord stream buffering for thread replies
* ACP: reuse shared block reply pipeline for projector
* ACP: unify streaming config and adopt coalesceIdleMs
* Docs: add temporary ACP production hardening plan
* Docs: trim temporary ACP hardening plan goals
* Docs: gate ACP thread controls by backend capabilities
* ACP: add capability-gated runtime controls and /acp operator commands
* Docs: remove temporary ACP hardening plan
* ACP: fix spawn target validation and close cache cleanup
* ACP: harden runtime dispatch and recovery paths
* ACP: split ACP command/runtime internals and centralize policy
* ACP: harden runtime lifecycle, validation, and observability
* ACP: surface runtime and backend session IDs in thread bindings
* docs: add temp plan for binding-service migration
* ACP: migrate thread binding flows to SessionBindingService
* ACP: address review feedback and preserve prompt wording
* ACPX plugin: pin runtime dependency and prefer bundled CLI
* Discord: complete binding-service migration cleanup and restore ACP plan
* Docs: add standalone ACP agents guide
* ACP: route harness intents to thread-bound ACP sessions
* ACP: fix spawn thread routing and queue-owner stall
* ACP: harden startup reconciliation and command bypass handling
* ACP: fix dispatch bypass type narrowing
* ACP: align runtime metadata to agentSessionId
* ACP: normalize session identifier handling and labels
* ACP: mark thread banner session ids provisional until first reply
* ACP: stabilize session identity mapping and startup reconciliation
* ACP: add resolved session-id notices and cwd in thread intros
* Discord: prefix thread meta notices consistently
* Discord: unify ACP/thread meta notices with gear prefix
* Discord: split thread persona naming from meta formatting
* Extensions: bump acpx plugin dependency to 0.1.9
* Agents: gate ACP prompt guidance behind acp.enabled
* Docs: remove temp experiment plan docs
* Docs: scope streaming plan to holy grail refactor
* Docs: refactor ACP agents guide for human-first flow
* Docs/Skill: add ACP feature-flag guidance and direct acpx telephone-game flow
* Docs/Skill: add OpenCode and Pi to ACP harness lists
* Docs/Skill: align ACP harness list with current acpx registry
* Dev/Test: move ACP plain-language smoke script and mark as keep
* Docs/Skill: reorder ACP harness lists with Pi first
* ACP: split control-plane manager into core/types/utils modules
* Docs: refresh ACP thread-bound agents plan
* ACP: extract dispatch lane and split manager domains
* ACP: centralize binding context and remove reverse deps
* Infra: unify system message formatting
* ACP: centralize error boundaries and session id rendering
* ACP: enforce init concurrency cap and strict meta clear
* Tests: fix ACP dispatch binding mock typing
* Tests: fix Discord thread-binding mock drift and ACP request id
* ACP: gate slash bypass and persist cleared overrides
* ACPX: await pre-abort cancel before runTurn return
* Extension: pin acpx runtime dependency to 0.1.11
* Docs: add pinned acpx install strategy for ACP extension
* Extensions/acpx: enforce strict local pinned startup
* Extensions/acpx: tighten acp-router install guidance
* ACPX: retry runtime test temp-dir cleanup
* Extensions/acpx: require proactive ACPX repair for thread spawns
* Extensions/acpx: require restart offer after acpx reinstall
* extensions/acpx: remove workspace protocol devDependency
* extensions/acpx: bump pinned acpx to 0.1.13
* extensions/acpx: sync lockfile after dependency bump
* ACPX: make runtime spawn Windows-safe
* fix: align doctor-config-flow repair tests with default-account migration (#23580 ) (thanks @osolmaz)
2026-02-26 11:00:09 +01:00
Josh Avant
72adf2458b
CI: shard Windows test lane for faster CI critical path ( #27234 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f7c41089e0
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
Reviewed-by: @joshavant
2026-02-26 00:33:36 -06:00
Peter Steinberger
e915b4c64a
refactor: unify monitor abort lifecycle handling
2026-02-26 04:36:25 +01:00
Nimrod Gutman
b3f46f0e28
fix(test): stabilize low-mem parallel runner and cron session mock ( #26324 )
...
* fix(test): stabilize low-mem parallel lane and cron session mock
* feat(android): make QR scanning first-class onboarding
* docs(android): update README for native Android workflow
* fix(android): stabilize chat composer ime and tab layout
* fix(android): stabilize chat ime insets and tab bar
* fix(android): remove tab bar gap above system nav
* fix(android): harden scanned setup code parsing
* test(android): cover non-string setupCode QR payload
* fix(test): add changelog note for low-mem test runner (#26324 ) (thanks @ngutman)
---------
Co-authored-by: Ayaan Zaidi <zaidi@uplause.io>
2026-02-25 12:16:17 +02:00
Peter Steinberger
52d933b3a9
refactor: replace bot.molt identifiers with ai.openclaw
2026-02-25 05:03:24 +00:00
Peter Steinberger
146c92069b
fix: stabilize live docker test handling
2026-02-25 04:35:05 +00:00
Peter Steinberger
7c59b78aee
test: cap docker live model sweeps and harden timeouts
2026-02-25 02:48:34 +00:00
Peter Steinberger
def993dbd8
refactor(tmp): harden temp boundary guardrails
2026-02-24 23:51:10 +00:00
Peter Steinberger
d3da67c7a9
fix(security): lock sandbox tmp media paths to openclaw roots
2026-02-24 23:10:19 +00:00
Peter Steinberger
e806b34779
chore: remove changelog add helper script
2026-02-24 15:33:09 +00:00
Peter Steinberger
d18ae2256f
refactor: unify channel plugin resolution, family ordering, and changelog entry tooling
2026-02-24 15:15:22 +00:00
Peter Steinberger
6c5ab543c0
refactor: tighten external-link policy and window.open guard
2026-02-24 15:05:31 +00:00
Peter Steinberger
069c56cd75
fix(ios): normalize team IDs before preferred match
...
Co-authored-by: Brian Leach <bleach@gmail.com>
2026-02-24 15:02:27 +00:00
Peter Steinberger
1ae8c0a589
fix(ios): make team-id python lookup cross-platform
...
Co-authored-by: Brian Leach <bleach@gmail.com>
2026-02-24 15:02:27 +00:00
Peter Steinberger
fd07861bc3
fix(ios): harden team-id profile fallback and tests
2026-02-24 15:02:27 +00:00
Brian Leach
73f526f025
fix(ios): support Xcode 16+ team detection and fix ntohl build error
...
Xcode 16+/26 no longer writes IDEProvisioningTeams to the preferences
plist, breaking ios-team-id.sh for newly signed-in accounts. Add
provisioning profile fallback and actionable error when an account
exists but no team ID can be resolved. Also replace ntohl() with
UInt32(bigEndian:) for Swift 6 compatibility and gitignore Xcode
build output directories.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:02:27 +00:00
Shakker
e5836283ab
ui: centralize safe external URL opening
2026-02-24 14:48:10 +00:00
Peter Steinberger
31f2bf9519
test: fix gate regressions
2026-02-24 04:39:53 +00:00
Shakker
ef1ffacfb2
scripts: exclude unresolved clawtributors from README
2026-02-24 02:55:02 +00:00
Peter Steinberger
6c441ea797
fix: support legacy and beta prerelease version formats
2026-02-24 02:05:37 +00:00
Nimrod Gutman
420c18364e
fix(test): tier local vitest worker defaults by host memory
2026-02-23 21:19:21 +02:00
Peter Steinberger
89a4695020
test: consolidate shard tests for faster trigger/directive suites
2026-02-23 13:30:47 +00:00
Peter Steinberger
384a161bbc
test: consolidate media auto-detect coverage
2026-02-23 04:25:00 +00:00
Peter Steinberger
70cac824b1
perf(test): optimize parallel vitest worker budget
2026-02-22 21:59:22 +00:00
Peter Steinberger
95e85e627e
fix(feishu): restore group command fallback and plugin deps
2026-02-22 19:13:19 +01:00
Peter Steinberger
3a19b0201c
test(installer): drop legacy gum env from docker smoke
2026-02-22 18:44:21 +01:00
Peter Steinberger
48ddb1cc81
fix(ci): stabilize install smoke in docker
2026-02-21 20:39:34 +01:00
Peter Steinberger
549549f6a0
fix(ci): sync plugin versions and harden install smoke
2026-02-21 20:18:37 +01:00
Peter Steinberger
74e6c210c0
fix: ignore prerelease suffixes in release-check plugin version checks
2026-02-21 17:48:21 +01:00
Peter Steinberger
fa89ae8e9e
fix: stabilize swift protocol generation and flaky tests
2026-02-21 16:53:46 +01:00
Peter Steinberger
b520e7ac38
fix: stabilize docker live model and doctor-switch tests
2026-02-21 15:36:24 +01:00
Peter Steinberger
352b5262da
fix(ci): make docs spellcheck fallback deterministic
2026-02-21 15:08:28 +01:00
Peter Steinberger
f48698a50b
fix(security): harden sandbox browser network defaults
2026-02-21 14:02:53 +01:00
Peter Steinberger
621d8e1312
fix(sandbox): require noVNC observer password auth
2026-02-21 13:44:24 +01:00
Vincent Koc
f4a59eb5d8
Chore: harden A2UI bundle dependency resolution ( #22507 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: d84c5bde51
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-21 13:16:31 +05:30
Vincent Koc
55eab106ac
chore: remove root long and rolldown deps ( #22481 )
...
* chore(deadcode): add deadcode scanning and remove unused lockfile deps
* chore(changelog): mention deadcode CI scan pass
* ci: disable deadcode job temporarily
* docs(changelog): add PR ref and thanks for deadcode scan entry
* ci: comment out deadcode job condition while keeping it disabled
* Deps: remove dead root dependency from package manifest
* Changelog: reference PR for deadcode dependency cleanup
* Deps: remove unused root signal-utils
* Chore: remove unused lit context deps
* Chore: remove unused root lit dependency
* Chore: remove root long and rolldown deps
* Chore: add changelog for root long/rolldown removal
* Chore: fix a2ui bundling after root lit dependency removal
* Chore: simplify a2ui bundle script dependencies
2026-02-21 02:05:41 -05:00
Vincent Koc
3002be76e4
docs: add custom spellcheck dictionary and fix docs typos ( #22457 )
...
* docs: fix typos and add docs spellcheck workflow
* docs: add changelog entry for docs spellcheck updates
* docs: fix FAQ TOC fragment links for markdownlint
* docs: fix TOC nesting and spellcheck dictionary flags
2026-02-21 01:35:35 -05:00
Vincent Koc
e7eba01efc
Security: disable sandbox container --no-sandbox by default ( #22451 )
2026-02-21 01:23:49 -05:00
Shadow
84281abd4b
Docker: drop root in test images
2026-02-20 12:45:34 -06:00
Logan Pritchett
8f80e2a467
fix(macos): set release bundle ID so Sparkle auto-update works ( #19750 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: d16e61e35a
Co-authored-by: loganprit <72722788+loganprit@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-20 12:08:10 +05:30
Coy Geek
8ae2d5110f
fix(docker): pin base images to SHA256 digests ( #7734 )
...
* fix(docker): pin base images to SHA256 digests for supply chain security
Pin all 9 Dockerfiles to immutable SHA256 digests to prevent supply chain
attacks where a compromised upstream image could be silently pulled into
production builds.
Also add Docker ecosystem to Dependabot configuration for automated
digest updates.
Images pinned:
- node:22-bookworm@sha256:cd7bcd2e7a1e6f72052feb023c7f6b722205d3fcab7bbcbd2d1bfdab10b1e935
- node:22-bookworm-slim@sha256:3cfe526ec8dd62013b8843e8e5d4877e297b886e5aace4a59fec25dc20736e45
- debian:bookworm-slim@sha256:98f4b71de414932439ac6ac690d7060df1f27161073c5036a7553723881bffbe
- ubuntu:24.04@sha256:cd1dba651b3080c3686ecf4e3c4220f026b521fb76978881737d24f200828b2b
Fixes #7731
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* test(docker): add digest pinning regression coverage
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-19 12:42:07 -08:00
Peter Steinberger
9130fd2b06
ci: harden workflow action input handling
2026-02-19 15:27:48 +01:00
zerone0x
466a1e1cdb
fix(clawdock): include docker-compose.extra.yml in helper commands ( #17094 )
...
_clawdock_compose() only passed -f docker-compose.yml, ignoring the
extra compose file that docker-setup.sh generates for persistent home
volumes and custom mounts. This broke all clawdock-* commands for
setups using OPENCLAW_HOME_VOLUME.
Fixes #17083
Co-authored-by: Claude <noreply@anthropic.com>
2026-02-19 03:40:47 -08:00
Nimrod Gutman
9bd2261c0f
fix(ios): auto-generate local signing overrides ( #20716 )
2026-02-19 15:48:46 +08:00
Gustavo Madeira Santana
b228c06bbd
chore: polish PR review skills
2026-02-18 22:24:41 -05:00
Nimrod Gutman
cb34e80f98
fix(ios): restore auto-selected team for local signing ( #19993 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 6f375238f0
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Reviewed-by: @ngutman
2026-02-18 19:38:23 +08:00
Peter Steinberger
ca43efa965
fix(ci): force npm install path in smoke docker tests
2026-02-18 03:25:14 +00:00
Peter Steinberger
b8b43175c5
style: align formatting with oxfmt 0.33
2026-02-18 01:34:35 +00:00
Peter Steinberger
31f9be126c
style: run oxfmt and fix gate failures
2026-02-18 01:29:02 +00:00
Nimrod Gutman
98962ed81d
feat(ios): auto-select local signing team ( #18421 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: bbb9c3aa48
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
Reviewed-by: @ngutman
2026-02-18 03:16:10 +08:00
cpojer
49bd9f75f4
chore: Fix types in tests 33/N.
2026-02-17 15:50:07 +09:00
cpojer
d0cb8c19b2
chore: wtf.
2026-02-17 13:36:48 +09:00
Sebastian
ed11e93cf2
chore(format)
2026-02-16 23:20:16 -05:00
Josh Avant
81741c37fd
fix(gateway): remove watch-mode build/start race ( #18782 )
2026-02-17 11:24:08 +09:00
Sebastian
bbb5fbc71f
fix(scripts): harden Windows UI spawn behavior
2026-02-16 20:49:09 -05:00
Gustavo Madeira Santana
37064e5cc6
Revert "feat(docker): add init script support via /openclaw-init.d/"
...
This reverts commit 53af9f7437 .
2026-02-16 20:25:46 -05:00
Gustavo Madeira Santana
09c82a1fbf
Revert "fix: capture init script exit codes instead of swallowing via pipe"
...
This reverts commit 8b14052ebe .
2026-02-16 20:25:46 -05:00
cpojer
90ef2d6bdf
chore: Update formatting.
2026-02-17 09:18:40 +09:00
Peter Steinberger
eaa2f7a7bf
fix(ci): restore main lint/typecheck after direct merges
2026-02-16 23:26:11 +00:00
boris
f70b3a2e68
refactor: bundle export-html templates instead of reading from node_modules
...
- Copy templates from pi-coding-agent into src/auto-reply/reply/export-html/
- Add build script to copy templates to dist/
- Remove fragile node_modules path traversal
- Templates are now self-contained (~250KB total)
2026-02-17 00:00:57 +01:00
Rob Dunn
ddea5458d0
cron: log model+token usage per run + add usage report script
2026-02-16 23:58:38 +01:00
JayMishra-github
8b14052ebe
fix: capture init script exit codes instead of swallowing via pipe
...
Address review feedback: the pipe to sed swallowed the script's exit
code. Now capture output in a variable and check exit status separately
so failures are logged as warnings in the entrypoint output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:52:26 +01:00
JayMishra-github
53af9f7437
feat(docker): add init script support via /openclaw-init.d/
...
Adds an ENTRYPOINT script that runs user-provided init scripts from
/openclaw-init.d/ before starting the gateway. This is the standard
Docker pattern (used by nginx, postgres, etc.) for customizing container
startup without overriding the entire entrypoint.
Usage:
docker run -v ./my-init-scripts:/openclaw-init.d:ro openclaw
Scripts must be executable. Non-executable files are skipped with a
warning. Scripts run in alphabetical order with output prefixed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:52:26 +01:00
OscarMinjarez
b9c45d003d
chore: format scripts/ui.js with oxfmt
2026-02-16 23:50:05 +01:00
OscarMinjarez
b60b44b42e
fix(scripts): fix spawn EINVAL error on Windows in ui.js
2026-02-16 23:50:05 +01:00
Peter Steinberger
7aa7b04fb0
test: rebalance isolated unit test lane
2026-02-16 05:22:00 +00:00
Peter Steinberger
f1654b4ba2
test: isolate telegram bot behavior suite from unit-fast lane
2026-02-16 04:50:19 +00:00
Peter Steinberger
510889d439
test: isolate slack slash and telegram bootstrap suites
2026-02-16 04:34:51 +00:00
Peter Steinberger
794808b169
test: isolate hook installer suite from unit-fast lane
2026-02-16 04:31:30 +00:00
Peter Steinberger
1b223dbdd8
test: isolate git-hooks integration and stabilize exec timeout
2026-02-16 04:24:00 +00:00
Peter Steinberger
e7ccbd1445
test: isolate block-streaming suite from unit-fast lane
2026-02-16 04:20:21 +00:00
Peter Steinberger
fbe6d7c701
ci: include a2ui sources in onboarding docker build
2026-02-16 02:45:00 +00:00
Peter Steinberger
c1655982d4
refactor: centralize pre-commit file filtering
2026-02-16 03:42:11 +01:00
Peter Steinberger
67bfe8fb80
perf(test): cut gateway unit suite overhead
2026-02-16 00:18:26 +00:00
Peter Steinberger
92f8c0fac3
perf(test): speed up suites and reduce fs churn
2026-02-15 19:29:27 +00:00
Tak Hoffman
df7fff8fd7
test: add serial macmini test profile
2026-02-15 07:40:55 -06:00
Peter Steinberger
3faf5ada2e
ci(test): raise node heap for CI vitest
2026-02-15 05:07:02 +00:00
Vignesh Natarajan
277b2de491
fix (cli): harden daemon compat shim for minimal bundle exports
2026-02-14 20:53:32 -08:00
Peter Steinberger
960850445b
fix(build): restore daemon-cli legacy shim
2026-02-15 04:52:55 +00:00
Peter Steinberger
3b08f3058b
perf(test): isolate imessage monitor tests from vmForks
2026-02-15 04:49:53 +00:00
Peter Steinberger
d355fecd4d
fix(ci): avoid Windows spawn EINVAL in test runner
2026-02-15 03:35:06 +00:00
Peter Steinberger
fef86e475b
refactor: dedupe shared helpers across ui/gateway/extensions
2026-02-15 03:34:14 +00:00
Peter Steinberger
2690dfa77b
test: quiet docker onboard e2e noise
2026-02-15 03:58:23 +01:00
Peter Steinberger
107cc03140
ci: reduce docker e2e log brittleness
2026-02-15 02:53:39 +00:00
Peter Steinberger
a7eb0dd9a5
fix(security): harden Windows child process spawning
2026-02-15 03:24:55 +01:00
Peter Steinberger
852c897956
refactor(sandbox): add sandbox-common dockerfile
2026-02-15 00:57:13 +01:00
artale
3189430ad0
fix(sandbox): switch to root user for package installation in sandbox-common-setup
...
The base image (Dockerfile.sandbox) sets USER sandbox at the end, so
when sandbox-common-setup.sh builds FROM it, apt-get runs as the
unprivileged sandbox user and fails with 'Permission denied'.
Add USER root before apt-get/npm/curl install steps, and restore
USER sandbox at the end to preserve the non-root runtime default.
Fixes #16420
2026-02-15 00:18:44 +01:00
Peter Steinberger
a429380e33
fix(scripts): harden clawtributors updater
2026-02-14 23:25:32 +01:00
Peter Steinberger
d9d321f94b
chore(security): bump qs and golang.org/x/net
2026-02-14 21:22:46 +01:00
Peter Steinberger
e03dc987e3
chore(test): keep gateway vitest on forks
2026-02-14 20:47:00 +01:00
Glucksberg
f537bd1796
fix(telegram): exclude plugin commands from setMyCommands when native=false (openclaw#15164) thanks @Glucksberg
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-14 13:22:58 -06:00
Tak Hoffman
3369ef5aef
test: add macmini low-cpu test profile
2026-02-14 12:16:23 -06:00
Peter Steinberger
709c225b2b
fix(podman): bootstrap config and token
2026-02-14 18:07:05 +01:00
Christoph Spörk
81b5e2766b
feat(podman): add optional Podman setup and documentation ( #16273 )
...
* feat(podman): add optional Podman setup and documentation
- Introduced `setup-podman.sh` for one-time host setup of OpenClaw in a rootless Podman environment, including user creation, image building, and launch script installation.
- Added `run-openclaw-podman.sh` for running the OpenClaw gateway as a Podman container.
- Created `openclaw.podman.env` for environment variable configuration.
- Updated documentation to include Podman installation instructions and a new dedicated Podman guide.
- Added a systemd Quadlet unit for managing the OpenClaw service as a user service.
* fix: harden Podman setup and docs (#16273 ) (thanks @DarwinsBuddy)
* style: format cli credentials
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-14 17:39:06 +01:00
Peter Steinberger
9fb48f4dff
refactor(scripts): make run-node main testable
2026-02-14 16:36:15 +00:00
Peter Steinberger
9a134c8a10
perf(test): tune parallel vitest worker split
2026-02-14 13:27:18 +00:00
Tanwa Arpornthip
c76288bdf1
fix(slack): download all files in multi-image messages ( #15447 )
...
* fix(slack): download all files in multi-image messages
resolveSlackMedia() previously returned after downloading the first
file, causing multi-image Slack messages to lose all but the first
attachment. This changes the function to collect all successfully
downloaded files into an array, matching the pattern already used by
Telegram, Line, Discord, and iMessage adapters.
The prepare handler now populates MediaPaths, MediaUrls, and
MediaTypes arrays so downstream media processing (vision, sandbox
staging, media notes) works correctly with multiple attachments.
Fixes #11892 , #7536
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(slack): preserve MediaTypes index alignment with MediaPaths/MediaUrls
The filter(Boolean) on MediaTypes removed entries with undefined contentType,
shrinking the array and breaking index correlation with MediaPaths and MediaUrls.
Downstream code (media-note.ts, attachments.ts) requires these arrays to have
equal lengths for correct per-attachment MIME type lookup. Replace filter(Boolean)
with a nullish coalescing fallback to "application/octet-stream".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(slack): align MediaType fallback and tests (#15447 ) (thanks @CommanderCrowCode)
* fix: unblock plugin-sdk account-id typing (#15447 )
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-14 14:16:02 +01:00
Peter Steinberger
ec399aaddf
perf(test): parallelize unit-isolated
2026-02-14 13:01:02 +00:00
Peter Steinberger
6543ce717c
perf(test): avoid plugin-sdk barrel imports
2026-02-14 12:42:19 +00:00
Peter Steinberger
d1f01de59a
perf(test): default to vmForks on Node 25; unstub envs
2026-02-14 03:38:55 +00:00
Peter Steinberger
38a157ff23
perf(test): reduce setup overhead; isolate sharp-heavy suites
2026-02-14 03:29:55 +00:00
Peter Steinberger
748d6821d2
fix(config): add forensic config write audit and watch attribution
2026-02-14 01:36:15 +00:00
Peter Steinberger
f86840f4df
perf(cli): reduce read-only startup overhead
2026-02-14 01:18:44 +00:00
Peter Steinberger
fecb3f326e
perf(test): trim models/browser suite overhead
2026-02-14 00:08:02 +00:00
Joseph Krug
4e9f933e88
fix: reset stale execution state after SIGUSR1 in-process restart ( #15195 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 676f9ec451
Co-authored-by: joeykrug <5925937+joeykrug@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-13 15:30:09 -05:00