Commit Graph

57 Commits

Author SHA1 Message Date
Peter Steinberger 1204225303 chore(scripts): enforce erasable TypeScript syntax (#125104) 2026-08-16 23:31:27 -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
Peter Steinberger fa03d9b913 refactor: consolidate coercion helpers (#121366)
* refactor: consolidate coercion helpers

* fix: remove duplicate coercion imports

* fix: preserve serialized coercion guard

* chore: ratchet coercion helper carve-outs

* fix(test): keep gauntlet subprocess startup lean

* fix: preserve imported session timestamp semantics

* fix: preserve catalog timestamp string semantics

* chore: align plugin SDK surface ratchet

* fix: preserve trajectory and SDK string contracts

* fix(test): preserve QA record assertion semantics

* fix: complete standalone record guard rename

* refactor(cron): use canonical string coercion

* fix(acpx): preserve Pi timestamp parsing

* test(channels): adapt custody test harnesses

* test(telegram): classify media harness as test support

* test(acpx): split timestamp contract coverage

* test(channels): support generated custody contracts

* chore: ban the full coercion helper name set

Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.

* fix(scripts): repair release-validation guard drift and lint cause

Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).

* fix: preserve Claude timestamp string semantics

* fix: preserve persisted timestamp string semantics

* fix: preserve date-first timestamp contracts

* fix(openai): harden delegation failure formatting

* chore: close coercion helper guard gaps

* test(openai): model non-error delegation rejection

* chore: refresh plugin SDK API contract

* fix(tasks): use canonical string field reader

* fix(ai): use canonical provider error field coercion

* fix(browser): migrate native bootstrap coercion

* docs(plugin-sdk): clarify text record export compatibility

* fix(gateway): normalize approval execution identity

* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Vincent Koc 25c375e47f refactor: reuse canonical record guards (#115810)
* docs(agents): standardize canonical record guards

* refactor(model-catalog): use canonical record guard

* refactor(scripts): use canonical record guard

* refactor(ui): use canonical record guard

* refactor(codex): use canonical record guard

* refactor(agents): use canonical record guard

* refactor(sessions): use canonical record guard

* refactor(doctor): use canonical record guard

* refactor(infra): use canonical record guard
2026-07-29 11:43:36 +02:00
Vincent Koc 9daa60961c fix(agents): serialize sandbox provisioning (#115645)
* fix(agents): serialize sandbox provisioning

* test(docker): add sandbox browser sidecar e2e

* fix(ci): register sandbox browser e2e entrypoint

* fix(ci): restore code mode matrix checks
2026-07-29 14:50:15 +08:00
clawsweeper[bot] a0e4ac412c fix: macOS-only Parallels smoke harness regression (#75293)
* fix: macOS-only Parallels smoke harness regression

* fix(parallels): keep macOS update smoke script owner-readable

* fix: macOS-only Parallels smoke harness regression

* test(parallels): exercise macOS guest script identity

Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>

---------

Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-28 14:12:57 -04:00
Peter Steinberger c16c0dbef4 fix(release): allow macOS snapshot selection in candidate smoke (#114144) 2026-07-26 14:08:31 -04:00
Peter Steinberger f1538c6d6c fix(release): validate complete package sets in candidate smoke (#113600)
* fix(release): pass only root dependencies to candidate smoke

* fix(release): stage plugin candidates for Parallels

* fix(release): bind plugin preflight package identity

* fix(test): stream upstream npm tarballs

* fix(test): retry post-update gateway startup

* fix(test): install fresh candidates through registry

* fix(test): route fresh candidates through registry

* test(release): update Parallels source contracts

* fix(test): split host and guest registry URLs
2026-07-25 07:59:06 -07:00
Peter Steinberger 9275f476f4 fix(release): retry flaky fresh Parallels lanes 2026-07-15 06:24:32 +01:00
Peter Steinberger adf6b08ab4 refactor: consolidate duration parsing and formatting (#105988)
* refactor: consolidate duration handling

* docs: leave release notes to release workflow

* fix: preserve build timing precision

* ci: align plugin sdk surface budgets
2026-07-12 23:38:22 -07:00
Peter Steinberger fe261b0f59 chore(tooling): typecheck root test/** with a dedicated tsgo lane (#104475)
* chore(types): add declaration files for scripts/lib and scripts/e2e modules

* chore(types): add declaration files for top-level script modules (a-m)

* chore(types): add declaration files for top-level script modules (n-z)

* test: use a non-secret-shaped gateway token fixture

* test: type ci workflow guard helpers for the root test lane

* chore(tooling): typecheck root test/** with a dedicated tsgo lane

- test/tsconfig/tsconfig.test.root.json: root-test program (strict unused checks,
  fixtures excluded; two Docker E2E clients that import built dist/** stay out,
  same rationale as the scripts/e2e exclusion in tsconfig.scripts.json)
- tsgo:test:root wired into tsgo:test, check:test-types, scripts/check.mjs, and
  the ci.yml test-types shard, mirroring the tsgo:scripts lane (#104348)
- changed-lane routing: test/**/*.ts (excluding fixtures) and the lane tsconfig
  now trigger 'typecheck test root' in check:changed; previously test/ paths ran
  lint only, so harness type errors surfaced first in CI (#104287 envDir case)
- burn down all 1071 latent type errors in the program: precise param/local
  types across test/scripts, test/vitest, test/e2e, and transitive scripts/e2e
  program members; 205 sibling .d.mts declaration files for imported .mjs
  modules (committed separately); zero any, zero ts-expect-error
- resolve the pre-existing testing star-export ambiguity in
  scripts/e2e/parallels/common.ts with an explicit re-export

Closes #104388

* chore(types): correct declaration fidelity per structured review

- re-derive 51 .d.mts files from implementation data flow instead of
  initializers: fix a wrong never return (runTestProjectsDelegation returns
  the child), add encoding-sensitive exec/spawn overloads (plain-gh), restore
  the full release profile union, make parsed paths string | null, add missing
  parseArgs fields via help/non-help unions, add a missing sibling declaration
  (budget-number-args), drop 15 unused lint directives
- precise install-record/tuple typing removes the type-aware oxlint
  regressions the first declarations caused in scripts/e2e implementations
- route .mts declaration edits under test/ to the testRoot lane and reference
  the test-root project from tsconfig.projects.json so tsgo:all covers it
  (closes both review findings against the lane wiring)

* chore(scripts): keep telegram runner dist typing structural for the boundary guard

* chore(types): declare runtime pack and gateway readiness exports added on main

* test: pin the importTargetPlan form of the plugin-contract plan import

The guard expectation still referenced the raw await import( form that
7ae5996bb3 (#103975) replaced with the importTargetPlan fallback helper;
the assertion fails on current main.
2026-07-11 06:15:41 -07:00
Vincent Koc 0535679083 fix(release): validate exact prepared npm package sets (#102759)
* fix(release): validate prepared npm package sets

Forward-port the beta3 package-set preflight, Telegram, and Parallels validation to main while preserving main's existing Bun install smoke. Recompute decoded proxy response lengths and require artifact tarballs to exactly match the verified manifest.

* fix(release): lock fixture registry proxy origin
2026-07-09 05:19:24 -07:00
Vincent Koc 2499b64f9b fix(parallels): stabilize Windows beta smoke transport
(cherry picked from commit 0a4d0daa8c)
2026-06-30 15:54:11 -07:00
Vincent Koc 3e5ca880bf fix(scripts): clamp parallels update timeouts 2026-06-22 02:29:26 +02:00
Vincent Koc 2166652eb3 fix(parallels): bound update tarball probe 2026-06-20 18:28:13 +02:00
Vincent Koc 106961b513 fix(e2e): resolve mounted macOS desktop homes 2026-06-20 16:51:20 +02:00
Vincent Koc d4f68475fd fix(e2e): preserve spaced macOS desktop homes 2026-06-20 16:11:03 +02:00
Vincent Koc a6e4afe0fa fix(parallels): preserve npm update stream kill grace 2026-06-20 12:15:30 +02:00
Vincent Koc 629f78b77b fix(e2e): preserve fresh lane timeout grace 2026-06-20 10:19:03 +02:00
Vincent Koc 2babcf026e fix(scripts): parse keyed npm tarball metadata 2026-06-20 06:37:27 +02:00
Vincent Koc 9ceb970a06 fix(e2e): clear npm update spawn timers 2026-06-19 04:31:34 +02:00
Vincent Koc 459bcd6198 fix(e2e): clean npm update guest scripts 2026-06-19 04:20:42 +02:00
Vincent Koc 40bd375ef3 fix(testing): use UUIDs for npm update guest scripts 2026-06-17 15:20:03 +02:00
Vincent Koc 1057e74438 fix(e2e): resolve macOS Parallels VM
(cherry picked from commit a231ab8acf)
2026-06-15 14:23:57 +08:00
Jason (Json) 8ae1adfdcc ci: gate stable releases on Windows companion assets (#92555)
* ci: gate stable releases on Windows companion assets

* fix(release): reject malformed Windows checksum manifests

* fix(release): make Windows recovery fail closed

* fix(release): tighten Windows asset identity checks

* fix(release): validate prepared candidate tarballs

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-06-13 19:33:33 -07:00
Vincent Koc b38e7105ec fix(e2e): bound parallels log version reads 2026-06-07 08:51:41 +02:00
Peter Steinberger b8d08f0cfd docs: document repository scripts 2026-06-04 20:52:50 -04:00
Vincent Koc 8c74fd4e23 fix(e2e): keep parallels json output parseable 2026-06-04 05:12:13 +02:00
Vincent Koc 12087ac9d4 test(e2e): exercise Parallels smoke cleanup path 2026-06-01 16:33:11 +02:00
Vincent Koc 8bee3be90a fix(e2e): bound Parallels fresh lanes 2026-06-01 12:34:29 +02:00
Vincent Koc 8fdb1d0f55 fix(e2e): stream Parallels fresh logs 2026-06-01 08:54:22 +02:00
Vincent Koc c11ff35841 fix(e2e): bound Parallels update logs 2026-06-01 08:42:08 +02:00
Peter Steinberger 22cb7fb6b7 chore(lint): enable no-promise-executor-return 2026-05-31 23:06:13 +01:00
Peter Steinberger 2df95c0b10 chore(lint): enable no-misused-promises 2026-05-31 20:42:13 +01:00
Vincent Koc cbd8049b9f fix(scripts): parse forwarded package script options 2026-05-30 17:44:14 +02:00
Vincent Koc 53e8dc6a54 fix(scripts): stop parsing after option terminators 2026-05-30 17:10:36 +02:00
Vincent Koc 4835a7ecd9 fix(e2e): reject loose parallels limits 2026-05-29 03:41:25 +02:00
Peter Steinberger 7275304793 fix(parallels): guard release target harness mismatch 2026-05-28 10:11:40 +01:00
Vincent Koc fdf58c1998 fix(e2e): backstop Parallels update jobs 2026-05-27 07:20:19 +02:00
Vincent Koc b65411740e fix(e2e): resolve mac update smoke commands from PATH 2026-05-27 02:10:32 +02:00
Peter Steinberger 3839b48615 test(parallels): harden release VM smoke isolation 2026-05-24 05:50:03 +01:00
Peter Steinberger 61150870e2 test(parallels): allow npm smoke host ip override 2026-05-21 22:53:56 +01:00
Peter Steinberger 195e721211 fix(release): stabilize full validation gates 2026-05-09 23:25:27 +01:00
Peter Steinberger d8da04e58e chore: improve beta smoke release tooling 2026-05-04 07:28:57 +01:00
Peter Steinberger a8b38bb742 test: improve Parallels beta validation 2026-05-04 04:43:24 +01:00
Peter Steinberger d609859a8b test: simplify parallels smoke harness 2026-05-04 00:44:05 +01:00
Peter Steinberger ed8f50f240 refactor: simplify plugin dependency handling
Simplify plugin installation and runtime loading around package-manager-owned dependencies, with Jiti reserved for local/TS fallback paths.

Also scans npm plugin install roots so hoisted transitive dependencies are covered by dependency denylist and node_modules symlink checks.
2026-05-01 21:32:22 +01:00
Peter Steinberger 1c9b4d871c test: stabilize Parallels update smokes 2026-05-01 12:05:24 +01:00
Peter Steinberger 9e01d19db3 test: disable Parallels smoke idle watchdog 2026-05-01 09:51:47 +01:00
Peter Steinberger 38e03d3af3 test: extend Parallels model smoke timeout 2026-05-01 09:46:23 +01:00