Commit Graph

4134 Commits

Author SHA1 Message Date
Peter Steinberger
771233cf94 perf(ci): trim compact packing cap to 220s for loaded-fleet headroom
Fleet-contended runners inflate measured group runtimes ~20-25% over
the serial-run hints (bins hit 300-358s on a loaded 12:1xZ run against
a 260s packed estimate). A 220s cap keeps the slowest bin near the
5-minute PR wall-clock budget under load at the cost of two extra
jobs (24 -> 26).
2026-07-16 05:29:45 -07:00
Alix-007
66a4205c57 fix(e2e): bound official installer download (#108937)
* fix(e2e): bound official installer download

* test(e2e): cover downloaded installer execution

* fix(e2e): harden installer download proof

Co-authored-by: Alix-007 <li.long15@xydigit.com>

* test(e2e): type installer fixture environment

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 05:26:00 -07:00
lybnnnn
02f494b51e fix: clarify SQLite version error message to prevent user confusion (#108382)
* fix: clarify SQLite version error message to prevent user confusion

The error message "3.44.6+" was misinterpreted by users as meaning "3.44.6 and above",
when it actually means "3.44.6+ for the 3.44.x series only". This commit clarifies the
error message to explicitly state that only specific patched versions (3.44.6+, 3.50.7+,
and 3.51.3+) are safe, and that SQLite 3.46.1 is not among them.

Changes:
- Update error message in src/infra/node-sqlite.ts to clarify version requirements
- Update test expectations in src/infra/node-sqlite.test.ts to match new error format
- Fix unnecessary template literal expressions flagged by oxlint

The code logic remains unchanged - SQLite 3.46.1 is correctly rejected as unsafe.

* fix: clarify SQLite version error message to prevent user confusion

The previous error message stated '3.44.6+' which users misinterpreted as
'3.44.6 and above', leading to confusion when versions like 3.46.1 were rejected.

The new message explicitly states '3.44.6+ in the 3.44.x series' and
'3.50.7+ in the 3.50.x series' to make it clear that only specific
minor version series received the WAL-reset bug fix.

This matches the SQLite team's actual fix announcement which only
backported the fix to 3.44.x and 3.50.x series, plus 3.51.3+.

* fix(sqlite): align unsafe version diagnostics

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 05:24:14 -07:00
Peter Steinberger
1d5479520f perf(ci): skip global declaration emission in the CI artifacts build (#108949)
* perf(ci): skip global declaration emission in the CI artifacts build

Declaration emission is ~95% of the tsdown wall clock (measured 132.5s
with dts vs 6.0s without on the main graph; 224.7s in CI). PR CI's dist
consumers only execute runtime JS, so the ciArtifacts profile now skips
global dts and the plugin-sdk export gate validates self-built scoped
declarations (write-plugin-sdk-entry-dts non-canonical mode, 45s local).
The step cache is dropped in self-build mode because its outputs depend
on the SDK source graph the canonical cache inputs do not cover.
Release and docker packaging builds keep canonical declarations.
Local end-to-end: build:ci-artifacts 92s with all gates green.

* fix(ci): pin gateway suites to the proven 2-worker Vitest budget

gateway-core and gateway-methods flaked at 6 workers (hook timeouts,
mock-state res.setHeader TypeError, waitForAssertion misses) on the
first run after the worker-budget raise while passing on two prior
validation runs — the same intermittent contention class media-ui
showed. Pin both like the other timing-sensitive groups.
2026-07-16 04:54:34 -07:00
Peter Steinberger
509f5d3409 fix: bound npm fixture upstream response bodies (#108960)
* test: bound npm fixture upstream responses

* test: auto-clean npm fixture temp dirs

* style: format npm fixture assertion test

* test: simplify plugin fixture temp cleanup
2026-07-16 04:53:43 -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
Peter Steinberger
037ef6695a fix(ci): bound actionlint downloads (#108938) 2026-07-16 04:24:26 -07:00
Peter Steinberger
d739daef10 fix(ci): handle Android license pipe closure 2026-07-16 12:12:18 +01:00
Alix-007
f538addc66 fix(ci): bound non-root NodeSource setup download (#108911) 2026-07-16 04:08:47 -07:00
Peter Steinberger
06e3a09bd8 fix(ci): preserve advisory release checks 2026-07-16 11:56:01 +01:00
Peter Steinberger
0b97e22a10 test(e2e): synchronize npm upstream body timeout (#108873)
Co-authored-by: Alix-007 <li.long15@xydigit.com>
2026-07-16 03:48:02 -07:00
Peter Steinberger
e0ffbd90d9 fix(ci): isolate bounded metadata retries (#108804)
* fix(ci): bound Mantis runner IP retries

* fix(e2e): isolate Windows metadata retries

* fix(ci): validate complete runner IPv4

Co-authored-by: Alix-007 <li.long15@xydigit.com>

---------

Co-authored-by: Alix-007 <li.long15@xydigit.com>
2026-07-16 03:39:31 -07:00
Peter Steinberger
b6b8e59b9e refactor(ci): share Android toolchain setup (#108855)
* refactor(ci): share Android toolchain setup

* fix(ci): preserve frozen Android targets
2026-07-16 03:38:31 -07:00
Peter Steinberger
2c7cf8d745 perf(ci): scale Vitest workers with runner class and share serial module cache (#108788)
* perf(ci): scale Vitest workers with runner class and share serial module cache

Compact node-test jobs pinned OPENCLAW_VITEST_MAX_WORKERS=2 regardless of
runner size, so import-bound suites (30-45s of module-graph import per
file) crawled: runner-cli spent 284s on 5s of tests, commands-1 296s on
10s. With serial plans the budget now scales with the class (6 on 8vcpu,
3 on 4vcpu); timing-sensitive groups (tooling, tui-pty, infra-process)
stay pinned to 2 via plan-level env. Serial bins share one Vitest
fs-module-cache path so later plans reuse the first plan's transforms.
The import-bound commands stripes and security suite move to the 8vcpu
class, and packing hints refresh from serial-run measurements (run
29481835688).

* perf(ci): stripe cli-runner suite and pin media-ui worker budget

The agents-core config runs files serially (fileParallelism false guards
shared module state), so raising the worker budget cannot help its
import-heavy cli-runner suite (~35s module import per file, 213s serial).
Stripe it three ways so bins parallelize the imports instead. media-ui
hosts browser locator tests that timed out at 6 workers on the first
validation run; pin it to the proven 2-worker budget. commands-1's hint
drops to its measured 6-worker runtime.
2026-07-16 03:36:37 -07:00
Peter Steinberger
e95577ded7 fix(e2e): bound macOS Discord host requests (#108880) 2026-07-16 03:36:20 -07:00
Alix-007
de10d98c81 fix(e2e): bound OpenShell installer fetch (#108810) 2026-07-16 03:27:03 -07:00
Peter Steinberger
76a236da5f fix(ci): harden release validation gates (#108798)
* fix(ci): harden release validation gates

* fix(apns): keep tombstones in strict SQLite schema

* fix(ci): isolate PR publication transport
2026-07-16 03:21:08 -07:00
Peter Steinberger
8dd204e4fc fix(installer): retry transient Windows npm failures 2026-07-16 11:19:41 +01:00
Peter Steinberger
27065a65b7 fix(scripts): survive pr worktree teardown in lock release and self-heal stale registrations (#108870) 2026-07-16 03:13:44 -07:00
Alix-007
e3e071f8c1 fix(installer): bound PowerShell download stalls (#108791) 2026-07-16 03:13:26 -07:00
Peter Steinberger
57ae43a89c fix(ci): harden full release validation 2026-07-16 10:26:29 +01:00
Alix-007
47dd90c5ea fix(ci): bound Android SDK downloads (#108723) 2026-07-16 02:12:07 -07:00
Alix-007
f0720a856d fix(e2e): time out npm registry upstream requests (#108718) 2026-07-16 02:06:25 -07:00
Alix-007
81e626a6d1 fix(e2e): bound MinGit asset downloads (#108741) 2026-07-16 02:02:09 -07:00
Peter Steinberger
b8a6341617 test: publish run-with-env readiness after signal setup (#108787) 2026-07-16 02:00:15 -07:00
Alix-007
5cd9243465 fix(ci): bound Windows Testbox phone-home requests (#108755) 2026-07-16 01:57:53 -07:00
Peter Steinberger
9da11f7c3f fix(scripts): report retained pr-lock evidence and clearer artifact validation errors (#108785) 2026-07-16 01:55:33 -07:00
Alix-007
8a21f640e3 fix(ci): bound release resume tarball downloads (#108766) 2026-07-16 01:54:50 -07:00
Peter Steinberger
723d12fd4c refactor(apns): move registrations to shared SQLite (#108543)
* refactor(apns): move registrations to SQLite

* fix(apns): satisfy strict migration typing

* chore(apns): remove obsolete lint suppression

* chore: prune APNs max-lines baseline

* refactor(apns): keep store internals private

* fix(apns): preserve stored relay origins

* fix(apns): advance versions across deletion

* fix(apns): harden legacy state import

* fix(apns): redact legacy import errors

* fix(apns): reserve version successor

* fix(apns): bound legacy timestamp imports

* refactor(apns): extract payload builders
2026-07-16 01:52:15 -07:00
Alix-007
b7270eccc6 fix(e2e): bound Windows prerequisite metadata fetches (#108698) 2026-07-16 01:51:26 -07:00
Peter Steinberger
de17534779 fix(docs): render taxonomy closing tags 2026-07-16 04:50:41 -04:00
Alix-007
ea3ac194f4 fix(ci): bound Mantis runner IP discovery (#108699) 2026-07-16 01:50:22 -07:00
Alix-007
0b7f4ccb72 fix(ci): bound Telegram QA OIDC requests (#108701) 2026-07-16 01:49:15 -07:00
Alix-007
cc58940993 fix(ci): bound Windows WSL rootfs downloads (#108743) 2026-07-16 01:47:37 -07:00
Alix-007
00ff4e8b84 fix(ci): bound OCM asset transfers (#108700) 2026-07-16 01:44:53 -07:00
Alix-007
e0394c2ab4 fix(ci): bound native tool downloads (#108685)
* fix(ci): bound native tool downloads

* fix(ci): bound historical SwiftFormat downloads

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 01:44:30 -07:00
Peter Steinberger
a7d5386896 improve: speed up ring-zero QA smoke (#108694)
* ci: speed up ring-zero QA smoke

* ci: scope QA sticky cache to Docker lane

* ci: keep QA dependency setup on actions cache

* test: restore modern Docker QA proof
2026-07-16 01:12:40 -07:00
Alix-007
139a310b96 fix(scripts): keep ntfy auth notifications from hanging (#108650)
* fix(scripts): bound ntfy auth notifications

* test(queue): align Sol default with current main

* fix(protocol): regenerate bundled clients for sessions thinkingLevel

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 00:57:19 -07:00
Alix-007
3912cf38b9 fix(ci): bound workflow ShellCheck download (#108672) 2026-07-16 00:56:27 -07:00
Peter Steinberger
b23292cc3f test(ci): repair release validation gates (#108646)
* test(agents): harden Z.AI live output probe

* test(agents): classify live provider failures

* test(ci): strengthen package export contract

* chore(protocol): regenerate Swift session create params
2026-07-16 00:42:41 -07:00
Sash Zats
0960d07d8e ci: gate PR edit automation by changed field (#95010)
* ci: gate PR edit automation by changed field

* ci: include title edits in ClawSweeper dispatch gate

* ci: refine PR edit automation gates

Co-authored-by: Sash Zats <sash@zats.io>

* test(ci): require boolean workflow matcher

Co-authored-by: Sash Zats <sash@zats.io>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 00:42:14 -07:00
Peter Steinberger
fecd11fdc9 perf(test): unref process watchdogs (#108643) 2026-07-16 00:39:08 -07:00
Peter Steinberger
7a398fe6f8 fix(update): preserve plugin policy on failures (#108661) 2026-07-16 00:38:44 -07:00
Peter Steinberger
7e1d93d36d refactor(deadcode): enforce full-repository hard zero (#108717)
* refactor(deadcode): enforce full-repository hard zero

* refactor(deadcode): drop rebased test-support leftovers

* refactor(openai): remove stale TTS test bridge

* test(config): cover bundled tuple baseline merging

* fix(deadcode): reject external Windows paths

* test(config): preserve heterogeneous tuple coverage
2026-07-16 00:16:20 -07:00
Peter Steinberger
7181233320 fix(ci): settle deadcode hard-zero sweep debt across guard lanes
The repository hard-zero sweep (bae9752c5a, #108641) left five CI lanes
red on every PR: a stale max-lines baseline entry for the shrunken
live-cache-regression-runner, session-accessor debt baseline above the
real count, two sqlite-reliability contract types un-exported while
scripts/lib still imports them, a deleted-file entry on the production
lint-suppression allowlist, and a stale wildcard-barrel assertion in the
parallels smoke model test.
2026-07-15 23:16:10 -07:00
Alix-007
5f2828b50a fix(installer): time out stalled runtime downloads (#108619)
* fix(installer): bound curl download stalls

* chore: format installer timeout tests

* fix(installer): limit timeout to true download stalls

* fix(installer): scope timeout to transfer stalls
2026-07-15 23:01:31 -07:00
Alix-007
98fc55ca96 fix(ci): bound performance gateway health probes (#108621) 2026-07-15 22:59:18 -07:00
Alix-007
8781ba78de fix(mantis): bound R2 evidence uploads (#108616) 2026-07-15 22:57:36 -07:00
Peter Steinberger
906c7332d2 fix(deadcode): keep production scan test-free (#108648) 2026-07-15 22:56:34 -07:00
Alix-007
862f915b55 fix(e2e): keep gateway suspension probes within deadline (#108063)
* fix(e2e): bound gateway network HTTP probes

* test(e2e): align timeout proof with repo guards

* test(e2e): use a typed stalled response
2026-07-15 22:52:59 -07:00