Peter Steinberger
75332a2671
fix(tooling): fail deadcode report on scan errors ( #122847 )
2026-08-12 15:59:37 -07:00
Peter Steinberger
c23d66e3b5
refactor: consolidate coercion ownership ( #122692 )
...
* refactor: consolidate coercion ownership
* test: align shard check with weighted planning
* chore: refresh plugin SDK API baseline
2026-08-12 09:25:28 -07:00
Vincent Koc
3e6aec1d55
fix(state): avoid startup ownership snapshots ( #122518 )
2026-08-12 19:07:15 +08:00
Peter Steinberger
a5420dfd91
fix(windows): launch npm-installed native session CLIs ( #122334 )
...
* fix(windows): resolve runnable npm launchers
* fix(windows): preserve npm shim argv in terminal sessions
2026-08-11 18:41:35 -07:00
Peter Steinberger
964c8c84c1
refactor: consolidate coercion ownership ( #122299 )
...
* refactor: consolidate coercion ownership
Centralize four canonical coercion helpers, migrate exact core and plugin duplicates through narrow Plugin SDK facades, and enforce declaration and plugin-normalization ownership boundaries.
The sweep adds eight focused SDK exports while deleting more production and tooling code than it adds. User-visible behavior is unchanged except for safer equivalent object and UI parsing at existing boundaries.
* fix: guard integer option ownership
Register resolveIntegerOption with the canonical function owner and extend the declaration-guard fixture so future local duplicates fail validation.
* fix: keep integer helpers on numeric facade
Remove the unshipped duplicate string-coerce exports and route every affected plugin consumer through the existing number-runtime contract.
* fix: point numeric coercion to number runtime
Make boundary and declaration diagnostics recommend the canonical numeric facade, with failing-before coverage for both guidance paths.
2026-08-11 17:14:53 -07:00
Peter Steinberger
c525f1a549
fix(windows): preserve Unicode LAN route aliases ( #122263 )
2026-08-11 15:21:37 -07:00
Peter Steinberger
8f4a90a518
fix(media): decode local file URLs safely ( #122192 )
...
* fix(media): decode local file URLs safely
* refactor(media): remove obsolete helper exports
2026-08-11 13:19:09 -07:00
Peter Steinberger
a580c2afa1
fix(windows): parse tasklist CSV for port hints ( #122126 )
2026-08-11 10:08:08 -07:00
Peter Steinberger
f798f9999b
fix(agent-tools): expand Windows home paths ( #122071 )
2026-08-11 08:28:35 -07:00
Peter Steinberger
fd8b1fb1b9
fix(windows): preserve provider local service env overrides ( #122027 )
2026-08-11 06:28:24 -07:00
Peter Steinberger
03f56cfbc3
fix(memory): accept Windows extra-file Markdown casing ( #121976 )
...
* fix(memory): accept Windows extra-file Markdown casing
* fix(memory): keep extra-file casing policy private
2026-08-11 04:21:15 -07:00
Peter Steinberger
ebfd3ba154
improve: cut CI critical path without more workers ( #121807 )
...
* test(ci): remove redundant builds from critical path
Amp-Thread-ID: https://ampcode.com/threads/T-019fee8d-665d-707b-a380-23f2a6a1ce03
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* docs(ci): format runner table
Amp-Thread-ID: https://ampcode.com/threads/T-019fee8d-665d-707b-a380-23f2a6a1ce03
Co-authored-by: Peter Steinberger <steipete@gmail.com >
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-08-10 20:21:20 -07:00
Peter Steinberger
fada067277
feat(browser): add zero-click Chrome extension bootstrap ( #121586 )
...
* feat(browser): add zero-click extension bootstrap
Pre-register deterministic path-derived extension IDs and install a strict native messaging host.
Keep the popup and options UI minimal while removing the obsolete copilot and page-share flows.
* fix(browser): satisfy native bootstrap CI guards
* test(browser): isolate native bootstrap Chrome roots
* test(browser): flush native bootstrap profile before status
* test(browser): seed Linux native bootstrap identity
* fix(browser): preserve native bootstrap upgrade safety
Allow immutable root-owned package inputs while keeping mutable state, manifests, and launchers user-owned. Preserve all retired copilot keys whenever active or unrecognized recovery custody remains.
* fix(browser): preserve pending copilot custody
Retired cleanup now removes copilot state only when the durable registry is exactly empty. Any session, archive, malformed value, future shape, or read failure preserves every retired key.
* fix(browser): guard native bootstrap upgrades
Fail closed while retired copilot custody remains and make discard durable across partial failures.
Require exact launcher-embedded origins and repair full launcher drift without accepting mismatched registrations.
* fix(browser): remove stale layout export
* chore(release): leave changelog to release flow
2026-08-10 19:31:13 -07:00
Peter Steinberger
63776cf5a0
fix(mcp): honor Windows PATH key casing in doctor ( #121595 )
2026-08-10 09:55:41 -07:00
Peter Steinberger
572fab0b5b
fix(auto-reply): handle uppercase file URLs when staging media ( #121521 )
2026-08-10 04:26:32 -07:00
Peter Steinberger
5b478bb64f
fix(windows): shorten home paths case-insensitively ( #121455 )
2026-08-10 00:59:32 -07:00
Peter Steinberger
864414c5fd
fix(media): recognize uppercase attachment file URLs ( #121362 )
2026-08-09 21:49:12 -07:00
Peter Steinberger
da0fad6718
fix(usage): expand Windows footer template paths ( #121303 )
2026-08-09 19:29:10 -07:00
Peter Steinberger
3bdfd60caa
fix(media): accept mixed-case local file URLs ( #121226 )
2026-08-09 16:40:55 -07:00
Peter Steinberger
db61480056
fix(windows): honor explicit executable paths ( #121094 )
2026-08-09 12:52:09 -07:00
Peter Steinberger
c70aee247e
refactor(scripts): migrate JavaScript tools to TypeScript ( #121005 )
...
* refactor(scripts): migrate JavaScript tools to TypeScript
* fix(ci): keep changed-scope preflight zero-install
* fix(ci): preserve zero-install script owners
* fix(ci): complete script migration follow-through
* fix(release): keep stable closeout zero-install
* fix(scripts): preserve standalone execution boundaries
* fix(scripts): repair standalone loader boundaries
* fix(scripts): normalize gateway observation ids
* fix(scripts): keep Docker packager standalone
* test(scripts): preserve rebase cleanup helpers
* test(sessions): use tracked temp directory
2026-08-09 07:21:35 -07:00
Vincent Koc
38039f5ea8
fix(secrets): preserve Windows ACL diagnostics ( #120211 )
...
* fix(secrets): preserve Windows ACL diagnostics
* fix(secrets): make Windows path security proof deterministic
* test(secrets): isolate Windows ACL tool failures
* test(secrets): preserve ACL preload process contract
* test(ci): route Doctor ACL proof to Windows
* test(qa): normalize Clack note borders
* test(ci): register Windows ACL preload for deadcode checks
2026-08-09 03:48:42 +08:00
Heming Zeng
9bfe292c86
fix(sessions): keep gateway responsive while large transcript archives are built ( #112424 )
...
* fix(sessions): keep gateway responsive during transcript archiving
* test(sessions): strengthen archive worker coverage
* fix(sessions): bound archive worker concurrency
* test(sessions): normalize rollback paths on Windows
* fix(sessions): load source archive worker on node 22
* fix(sessions): align archive fencing with session windows
* test(sessions): adapt cleanup race to archive worker
* fix(sessions): harden archive worker lifecycle
* style(sessions): format archive lifecycle tests
* fix(sessions): release writer lane during archive work
---------
Co-authored-by: Josh Lehman <josh@martian.engineering >
2026-08-04 14:40:59 -07:00
qingminlong
cb2965ddde
fix(scripts): use direct-run helper for Windows guards ( #110877 )
...
* fix(scripts): normalize Windows direct-run guards
* test(scripts): cover direct-run routing
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-04 23:11:12 +08:00
Peter Steinberger
8a36e0470c
Build export HTML vendor assets from pinned dependencies ( #117583 )
...
* build: generate export html vendor assets
* build: declare marked generator contract
* fix(build): preserve export asset working root
* fix(build): preserve postbuild root ownership
* test(build): update Docker TypeScript step count
2026-08-01 15:03:35 -07:00
Sasan
6938f7dddb
fix: allow gateway service commands for named profiles ( #116314 )
...
* fix: gateway service commands refuse a named profile or relocated OPENCLAW_HOME
- Resolve the default install identity against the canonical state directory
for the active OpenClaw home and profile instead of the unprofiled OS
account default.
- `--profile <name>` / `--dev` project `.openclaw-<profile>` state and config
paths, so every named profile was classified as isolated state and refused
`install`, `start`, `stop`, `restart`, `uninstall`, Doctor service repair,
and self-update service handling.
- `OPENCLAW_HOME` relocates all OpenClaw path defaults and is documented for
running as a dedicated service user; a relocated home is now an install
identity. `HOME` alone still is not.
- An `OPENCLAW_STATE_DIR` or `OPENCLAW_CONFIG_PATH` pointing outside those
canonical paths is still treated as isolated state.
- Recovery guidance in the refusal message now names the paths that must match.
Verified: focused vitest shards for the changed suites plus the daemon, CLI,
and doctor suites that consume the identity check; tsgo core and core-test
lanes; oxlint; docs format, MDX, link, and map checks.
* fix(gateway): keep relocated homes isolated
* fix(config): validate service profile identity
* fix(daemon): enforce named-profile service ownership
* fix(update): reject drifted service selectors before probes
* test(windows): prove scheduled task lifecycle
* test(windows): harden scheduled task proof cleanup
* test(windows): bind lifecycle proof to checkout
* test(windows): normalize cleanup exit status
* test(windows): verify effective task privilege
* test(windows): protect scheduled task proof roots
* test(windows): prove listener-owned task lifecycle
* test(windows): fix scheduled task proof contracts
* test(windows): remove redundant mock coercions
* test(windows): measure fallback before task probes
* test(windows): prove scheduled task process origin
* fix(gateway): preserve unmanaged restart fallback
* test(gateway): cover denied restart ownership
* test(gateway): keep restart helper types private
* test(gateway): classify lifecycle helpers as test code
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-01 11:28:39 +08:00
Vincent Koc
d5ab7d7d03
fix(ci): run fs-safe removal Windows coverage ( #116510 )
...
* test(ci): run fs-safe remove suite on Windows
* test(infra): correct Windows rebind race expectation
* test(infra): exercise Windows rebind hook
2026-07-31 09:58:34 +08:00
Vincent Koc
3b355879b8
test(infra): run exec allowlist suite on Windows ( #116492 )
2026-07-31 01:46:19 +08:00
Vincent Koc
26f107071e
test(agents): run exec preflight suite on Windows ( #116469 )
2026-07-31 00:57:04 +08:00
Vincent Koc
85466bd89e
test(mxc): run Windows-only suites in CI ( #116451 )
2026-07-31 00:10:22 +08:00
Vincent Koc
90a22b4f50
chore(test): run browser copilot E2E in CI ( #116407 )
...
* test(browser): run copilot E2E in CI
* test(browser): stabilize copilot E2E synchronization
* test(browser): wake extension workers deterministically
* test(ci): route browser copilot command changes
2026-07-30 23:20:34 +08:00
Manan Bansal
ec56892b74
fix(infra): resolve ssh client from trusted system dirs ( #83289 ) ( #93030 )
...
resolveSshConfig and startSshPortForward spawned a hard-coded /usr/bin/ssh,
so SSH config discovery and gateway tunneling failed wherever the system ssh
client lives elsewhere: Windows (built-in OpenSSH under System32\OpenSSH) and
NixOS (/run/current-system/sw/bin).
Route both helpers through the existing resolveSystemBin("ssh", { trust:
"strict" }) resolver, and add the Windows built-in OpenSSH directory to the
resolver's trusted Windows locations (it had System32 but not the
System32\OpenSSH subdirectory where ssh.exe actually ships). Fail closed with
a clear diagnostic when no system ssh client is present.
Closes #83289 .
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 18:35:58 -04:00
Chris M.
37bddc75cc
fix(android): finish Wear OS release readiness [AI-assisted] ( #110425 )
...
* fix(android): harden Wear release quality
* fix(android): use Wear minimum touch targets
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): localize Wear accessibility actions
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): preserve dictation without live voice
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): isolate Wear locale source changes
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): keep Wear dictate preview exclusive
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): separate large-font Wear hit targets
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* test(pr): isolate review artifact ripgrep fixture
* ci: extend embedded-agent fork watchdog
* refactor(android): clarify Wear voice action availability
* style(android): preserve Wear locale source lines
* chore(i18n): refresh native source inventory
* style(android): restore Wear label indentation
---------
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 05:41:53 -04:00
Vitor Cepeda Lopes
2296e898e1
fix(release): stop Windows package descendants after timeout ( #111956 )
...
* fix(release): terminate Windows package command trees
* fix(release): type package runner test output
* fix(release): scope package runner normalization to Windows
* test(release): run package timeout proof on Windows CI
---------
Co-authored-by: TheAngryPit <16145902+TheAngryPit@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-25 02:20:27 -07:00
Vincent Koc
ebf2306c1d
fix(sqlite): normalize Windows verification paths ( #113313 )
...
* fix(sqlite): normalize Windows verification paths
* test(windows): normalize backup archive fixture paths
* test(windows): separate backslash and traversal archive cases
2026-07-24 21:00:15 +08:00
Vincent Koc
48d65f94a1
fix(test): release SQLite fixtures before Windows cleanup ( #113316 )
...
* fix(test): close SQLite fixtures before Windows cleanup
* test(windows): extend fixture cleanup retries
* fix(test): avoid registry reads during fixture cleanup
2026-07-24 20:04:57 +08:00
Vincent Koc
f5cc8b6da6
fix(sqlite): support long Windows snapshot paths ( #113228 )
...
* fix(sqlite): support long Windows snapshot paths
* test(sqlite): run snapshot paths in Windows CI
* fix(sqlite): normalize long Windows VFS paths
2026-07-24 14:34:51 +08:00
Peter Steinberger
c440ae3e86
refactor(sessions): collapse legacy JSON store ( #113075 )
...
* refactor(sessions): collapse legacy JSON store
* chore(sessions): ratchet legacy importer boundary
* fix(sessions): align cleanup checks
2026-07-23 09:36:48 -07:00
Josh Lehman
867a2296eb
fix(sessions): fsync archives through writable handles ( #110191 )
...
Fixes #110152 .
2026-07-17 15:16:50 -07:00
Alix-007
f198758006
fix(e2e): bound cross-OS installer fetches ( #108771 )
...
* fix(e2e): bound cross-OS installer fetches
* test(e2e): prove Windows installer timeout
Co-authored-by: Alix-007 <li.long15@xydigit.com >
* test(e2e): track installer proof temp dirs
Co-authored-by: Alix-007 <li.long15@xydigit.com >
* fix(e2e): buffer POSIX installer downloads
Co-authored-by: Alix-007 <li.long15@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 04:50:53 -07:00
VectorPeak
b4d3a038a2
fix: run ts-topology entrypoint on Windows ( #105397 )
...
* fix: run ts-topology entrypoint on Windows
Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
* refactor: tighten ts-topology entrypoint guard
---------
Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 17:26:04 -07:00
Peter Steinberger
e0f45bfbf0
feat(tooling): enforce indexed access checks in root tests ( #105223 )
...
* feat(tooling): enforce indexed access checks in root tests
* style(tooling): clarify scoped package guard
2026-07-12 10:42:07 +01:00
Peter Steinberger
8fe6ac7fb9
refactor: remove pre-2026.4 compatibility shims and legacy migrations ( #104650 )
...
* refactor(matrix): retire pre-2026.4 legacy crypto and flat-storage migrations
* refactor(cli): drop pre-tsdown daemon-cli dist compat shim from the build
* refactor(diffs): remove deprecated image*/format tool params and output aliases
* refactor(ui): drop pre-gateway-scoped localStorage readers and legacy theme map
* refactor: remove assorted pre-2026.4 compat shims and deprecated aliases
* fix(discord): map legacy thread-binding fields in the doctor JSON import
* fix(msteams): keep bot read fallback for legacy imported conversation rows
* test(msteams): cover legacy bot-only imported conversation references
* fix(ui): keep channel-prefixed session key display fallback
* chore: refresh native i18n inventory and build-docker step count
* chore(matrix): drop now-unused migration-config module
* chore: re-pin plugin SDK public export budget after compat removals
* chore: refresh native i18n inventory after rebase
* chore: re-pin plugin SDK callable budget and refresh i18n inventory after rebase
2026-07-11 13:22:27 -07:00
Peter Steinberger
7bf80dc2c6
chore(tooling): enforce formatting and refresh TypeScript checks ( #104239 )
...
* chore(tooling): enforce current formatter and refresh checks
* chore(tooling): keep release changelog formatter-owned
* chore(tooling): retain compatible Node type surface
* ci: enforce formatting for docs-only changes
* ci: isolate docs formatter check
* chore(tooling): apply updated lint and format rules
* chore(tooling): satisfy updated switch lint
* style(ui): apply Linux formatter layout
* test(doctor): match quiet local audio contribution
* test(doctor): assert quiet output only
* test(doctor): follow restored information contract
2026-07-11 01:09:51 -07:00
Peter Steinberger
ee1450d619
fix(ci): build iOS with generic simulator ( #103259 )
2026-07-10 03:28:53 +01:00
Glen - I am an OpenClaw+Codex bot
23998a148f
fix(build): fall back to tsx for build TypeScript scripts ( #91262 )
...
* fix(build): fall back to tsx for build TypeScript scripts
* fix(build): use tsx across TypeScript build scripts
---------
Co-authored-by: Steffen Moeller <moeller@debian.org >
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-07-06 06:55:20 +00:00
Vincent Koc
c22270a917
fix(build): restore package artifact declarations ( #100249 )
...
* fix(build): restore package artifact declarations
* fix(build): stage plugin sdk strict smoke artifacts
* test(exec): accept resolved safe-bin paths
* test(qa): type missing delivery metadata regression
* fix(build): restore llm runtime tsdown root
* fix(build): drop removed llm runtime tsdown root
2026-07-05 02:22:11 -07:00
Vincent Koc
8822b66952
fix(build): restore plugin SDK strict smoke alias
2026-07-04 06:44:57 +02:00
Vincent Koc
7d4001c855
fix(sdk): raise plugin SDK usage heap
2026-06-16 23:59:29 +02:00
Peter Steinberger
ecb6779a16
docs: document root test files
2026-06-04 20:37:28 -04:00