Peter Steinberger
5af05ab1a2
improve: validate built CLI with Bun 1.4 ( #129192 )
...
* ci: validate built CLI with Bun 1.4
Amp-Thread-ID: https://ampcode.com/threads/T-01a037b7-66db-71f0-91e7-1578b383afb2
* test: align Bun Docker image assertion
Amp-Thread-ID: https://ampcode.com/threads/T-01a037b7-66db-71f0-91e7-1578b383afb2
* test: tolerate cold CLI startup in CI
Amp-Thread-ID: https://ampcode.com/threads/T-01a037b7-66db-71f0-91e7-1578b383afb2
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-08-25 03:44:57 -07:00
Peter Steinberger
6cde399d52
fix(release): install Bun smoke from candidate payload ( #128243 )
...
* fix(release): bind Bun smoke to candidate payload
* test(release): align Bun payload workflow contract
2026-08-23 09:25:46 -07:00
Vincent Koc
7dfe406d20
perf(ci): parallelize installer smoke validation ( #127138 )
...
* fix(ci): parallelize installer smoke groups
* fix(ci): bind installer smoke artifacts
* fix(ci): isolate installer smoke candidate payload
* fix(ci): restore trusted install harness
* fix(ci): run Bun smoke from trusted harness
2026-08-21 17:02:11 -07:00
Peter Steinberger
a917c99e92
fix(runtime): classify Node releases consistently across install and launch ( #124812 )
...
* fix(runtime): align Node release version guards
Amp-Thread-ID: https://ampcode.com/threads/T-01a00ae0-190d-718b-8a76-b75f3e8d1fae
* test(runtime): include Node version helper in source fixture
* fix(install): align Node release checks across boundaries
Amp-Thread-ID: https://ampcode.com/threads/T-01a00ae0-190d-718b-8a76-b75f3e8d1fae
* fix: keep node version guard legacy-compatible
Amp-Thread-ID: https://ampcode.com/threads/T-01a00ae0-190d-718b-8a76-b75f3e8d1fae
* test(runtime): exercise legacy launcher preflight
* fix(installer): validate installed Node release versions
Amp-Thread-ID: https://ampcode.com/threads/T-01a00ae0-190d-718b-8a76-b75f3e8d1fae
* fix(installer): compare Node version parts numerically
Amp-Thread-ID: https://ampcode.com/threads/T-01a00ae0-190d-718b-8a76-b75f3e8d1fae
* test(installer): cover 17-digit Node major
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-08-17 00:42:23 -07:00
Peter Steinberger
3fb14cd050
refactor(ui): align approval page with redesigned approval card ( #124816 )
...
* refactor(ui): align approval page with redesigned approval card
Follow up #124767 by carrying severity accents and identity chips onto the standalone approval page.
Remove the unused execApproval.labels severity, plugin, and agent keys.
* refactor(ui): keep approval-page helpers in repo idiom
Reverts drive-by rewrites from the build pass: restore the exhaustive
decisionLabel switch (the ternary lost the never check), the early-return
appliedDecisionMatches, explicit gatewayCode comparisons, and align the
severity mapping shape with the sibling exec-approval-card.ts.
* test(ui): type approval severity fixtures
* test(scripts): wait for a parseable descendant pid in Bun smoke cleanup
The readiness gate only required the descendant pid file to exist, but
existsSync can observe it between open() and write(); a loaded runner
then reads an empty file and the integer assertion flakes (seen on PR
#124816 CI run 31971191374). Readiness now requires parseable content.
2026-08-16 14:01:00 -07:00
thomas.szbay
ecc6d5a9fe
fix(e2e): download non-root installer before execution
...
Download the non-root Docker smoke installer before executing it.
- preserve the existing 30-second connection and 300-second transfer limits
- clean up the temporary installer on success or failure
- prove failed downloads cannot execute partial installer content
Co-authored-by: thomas.szbay <xydigit-zt@users.noreply.github.com >
Punchcard-Session: golden-lantern-meadow-0x
2026-08-11 18:12:52 +08: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
5b1b1e0632
test(qa): cover CLI distribution workflows ( #118948 )
2026-08-04 05:09:39 +08:00
Peter Steinberger
7866ecae4b
fix(release): keep npm 12 pack checks working ( #118209 )
...
* fix(release): accept npm 12 pack json
* fix(release): share npm pack normalizer in plugin workflow
2026-08-02 14:57:49 -07:00
Peter Steinberger
7c70571683
chore(lint): clear 172 lint:all baseline violations in five batches ( #118098 )
...
* chore(lint): clean Android-Linux app assets batch
* chore(lint): clean setup-launcher-plugin batch
* chore(lint): clean changelog-updater batch
* chore(lint): clean QA-runtime-helper batch
* chore(lint): clean script-tests batch
* fix(mxc): await sandbox spawn before bridge selection
* fix(test): make fake plutil metacharacter escaping survive the template hop
2026-08-02 14:08:09 -07:00
Peter Steinberger
b5a59e0a7d
refactor(docker): consolidate E2E scenario helpers ( #117359 )
...
* refactor(docker): consolidate E2E scenario helpers
* fix(ci): retain release harness entry
* test(docker): complete package helper fixture
2026-08-01 05:48:28 -07:00
Vincent Koc
ffa99ca81d
fix(docker): validate timezone in runtime image ( #116153 )
2026-07-30 09:19:01 +08:00
xingzhou
66990b207f
fix(ci): bound CLI installer smoke curl with connect and max-time ( #109927 )
...
* fix(ci): bound CLI installer smoke curl with connect and max-time
The non-root CLI installer smoke pipes curl directly into bash under a
single docker-run timeout. curl has no default connect or total timeout,
so a stalled CDN connect or hung response body could pin the container
until the outer docker-run budget kills it. Bound the curl with the same
--connect-timeout 30 --max-time 300 shape already used by install-sh-smoke
and install-sh-e2e, and enable pipefail so curl failures are not masked
by the bash consumer.
* test(ci): cover bounded CLI installer pipeline
* fix(ci): bound preceding non-root installer download
* fix(ci): harden bounded installer URL handoff
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 06:59:29 +01:00
Peter Steinberger
b847d1a926
style: format test-install-sh-docker test
...
Landed unformatted on main, failing check-lint repo-wide (5th merge-skew
break today).
2026-07-17 02:41:55 -07:00
LZY3538
45f36640dc
fix(docker): bound smoke installer curl with connect timeout ( #109698 )
...
* fix(docker): bound smoke installer curl with connect timeout
Add --connect-timeout 30 and --max-time 300 to the direct installer
one-liner curl in the smoke test runner. The run_installer_for_package_spec
function is already bounded by timeout(1), but this direct invocation had
no curl-level or wrapper-level timeout.
Co-Authored-By: Claude <noreply@anthropic.com >
* fix(docker): wrap complete installer pipeline in timeout, not just curl
Replace the stand-alone curl timeout flags on the direct installer one-liner
with a timeout(1) wrapper around the entire curl|bash pipeline, matching the
run_installer_for_package_spec pattern. This bounds the complete pipeline
(download + install) rather than just the network transfer.
The curl-level --connect-timeout 30 and --max-time 300 are retained as
defence-in-depth inside the timeout wrapper.
Co-Authored-By: Claude <noreply@anthropic.com >
* refactor: centralize installer smoke pipeline bounds
Co-authored-by: LZY3538 <liu.zhenye@xydigit.com >
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-17 10:20:40 +01: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
Alix-007
f538addc66
fix(ci): bound non-root NodeSource setup download ( #108911 )
2026-07-16 04:08:47 -07:00
Alix-007
de10d98c81
fix(e2e): bound OpenShell installer fetch ( #108810 )
2026-07-16 03:27:03 -07:00
Peter Steinberger
9cdc0c3495
test: tighten async polling intervals ( #108301 )
2026-07-15 06:14:54 -07:00
Vincent Koc
f33ab243cf
fix(sqlite): reject runtimes vulnerable to WAL corruption ( #106065 )
...
* fix(sqlite): require WAL-reset-safe Node runtime
* docs(sqlite): document safe Node runtime floor
* fix(sqlite): defer runtime library validation until use
* fix(ci): align startup memory with Node 24.15
2026-07-13 13:59:00 +08: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
6ef2c1594d
fix(ci): preserve QA package intent boundaries ( #104207 )
...
* fix(ci): preserve QA package intent boundaries
* test(ci): track rerun helper temp dirs
---------
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-11 00:51:57 -07:00
Peter Steinberger
6e9e64bd30
fix: current-tree package checks support unreleased versions ( #104186 )
...
* fix(ci): package unreleased QA builds safely
* style(ci): format QA changelog intent
2026-07-10 22:31:42 -07:00
Peter Steinberger
b597a8d364
fix(release): restore prerelease and release validation startup ( #103834 )
...
* fix(release): split image publication from validation
* fix(ci): honor install smoke caller input
* fix(ci): harden Docker rerun targeting
2026-07-10 18:46:08 +01:00
Vincent Koc
155e196e22
fix(release): preserve beta validation evidence ( #103796 )
...
* fix(release): proxy upgrade fixtures to npm
(cherry picked from commit 30f54a5fe1 )
* fix(release): require installer doctor evidence
(cherry picked from commit 0782a94452 )
* test(qa): scope aborted restart outcome to Codex
(cherry picked from commit ac54f80430 )
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 09:05:14 -07:00
Peter Steinberger
5635d74ecc
fix(release): contain installer artifact restores ( #103608 )
2026-07-10 08:27:24 -07:00
Vincent Koc
cbe3731f77
fix(release): make validation proof no-write ( #103737 )
...
* fix(release): make validation proof no-write
* test(release): align no-write workflow contracts
2026-07-10 08:18:44 -07:00
Peter Steinberger
7fe004d852
feat: show build identity in About screens ( #103595 )
...
* feat: show build identity in About screens
* chore: leave root changelog to release automation
* fix: translate Control UI About build details
2026-07-10 10:42:36 +01:00
Vincent Koc
8755077fe4
fix(release): bundle AI runtime in installer smoke ( #103556 )
...
* fix(release): bundle AI runtime in installer smoke
* fix(release): verify bundled AI runtime loadability
* fix(release): preserve advisory doctor exits
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 02:13:41 -07:00
Peter Steinberger
42a8679c4d
fix: restore release validation on main ( #102516 )
...
* test(qqbot): assert approval fence exactly
* fix(release): wait for ClawHub publish logging
* fix(ci): repair Bun global install smoke
* test(slack): fix app identity fixture
2026-07-09 09:39:08 +01:00
Vincent Koc
74bb2ad7a5
fix(package): reuse bundled artifact for install smoke
2026-07-07 02:31:09 +02:00
An Dang
98254634f1
fix(docker): reduce local build memory pressure
2026-07-01 03:58:21 -07:00
Vincent Koc
93ec8b8c5c
fix(test): route install helper scripts
2026-06-21 17:14:12 +02:00
Vincent Koc
992ddf6310
test(scripts): cover workflow docker routes
2026-06-21 07:40:06 +02:00
Vincent Koc
486c9e6ba3
test(scripts): route podman template metadata
2026-06-21 07:40:05 +02:00
Vincent Koc
0f8df48a91
fix(release): forward-port 2026.6.9 closeout fixes
2026-06-21 13:05:11 +08:00
Vincent Koc
62b2e9ef14
fix(scripts): honor gtimeout in host setup wrappers
2026-06-20 20:07:50 +02:00
Vincent Koc
9953b85e6d
fix(install-smoke): clean Bun timeout child trees
2026-06-20 14:39:39 +02:00
Vincent Koc
84c96ddb14
fix(e2e): preserve bun smoke timeout grace
2026-06-20 10:54:18 +02:00
Vincent Koc
843b1d6fbb
fix(e2e): forward install session limits
2026-06-19 02:21:10 +02:00
Vincent Koc
701687efa3
fix(e2e): validate install e2e wrapper knobs
2026-06-19 02:15:58 +02:00
Vincent Koc
9328f4a675
fix(e2e): validate bun smoke timeout env
2026-06-18 23:07:22 +02:00
Vincent Koc
75df29c215
fix(install): validate install e2e agent env
2026-06-18 23:03:34 +02:00
Vincent Koc
bfb47a03b3
fix(install): validate install smoke timing env
2026-06-18 22:57:17 +02:00
Vincent Koc
461f0cfc5b
fix(release): keep bun smoke tarballs local
2026-06-17 03:07:31 +02:00
Vincent Koc
dd7376fdcb
fix(release): keep install smoke tarballs local
2026-06-17 03:00:09 +02:00
Vincent Koc
0880fd94c6
fix(e2e): preserve dist during bun restore
2026-06-07 07:54:05 +02:00
Peter Steinberger
58c663920d
docs: document script tests
2026-06-04 20:49:50 -04:00
Vincent Koc
d3ab7e92ef
fix(ci): harden ARM smoke and browser checks
2026-06-03 07:30:12 -07:00
Peter Steinberger
ed63523db9
test(release): expect public latest in installer smoke
2026-05-30 20:01:22 +01:00