Peter Steinberger
3d1b771035
fix(ci): catch script declaration drift before merge ( #110248 )
...
* fix(ci): verify script declaration contracts
* fix(ci): harden declaration export analysis
* fix(ci): cover opaque script module exports
* test(ci): cover cyclic script declaration barrels
2026-07-18 02:54:26 +01:00
Dallin Romney
a9dc393f7e
test(qa): prove Codex auth product migration ( #109291 )
2026-07-17 16:10:23 -07:00
Peter Steinberger
84f5d6d978
fix(release): persist streamed Telegram result metadata
2026-07-17 22:11:23 +01:00
Peter Steinberger
b7dd330bd3
test(release): avoid secret-like fixture literal
2026-07-17 21:55:27 +01:00
Peter Steinberger
e7801deb57
fix(release): fail fast on flaky beta QA
2026-07-17 21:55:27 +01:00
Peter Steinberger
20866a3fde
test(release): clarify synthetic QA credentials
2026-07-17 21:55:27 +01:00
Peter Steinberger
596ff439c8
test(release): preserve npm onboarding diagnostics
2026-07-17 21:55:27 +01:00
Dallin Romney
71a02e16af
test(qa): prove gateway package self-upgrade ( #109399 )
2026-07-17 12:26:35 -07:00
Peter Steinberger
600ff3acb4
fix(ci): preserve private plugins in Docker E2E ( #110062 )
2026-07-17 16:21:20 +01:00
qingminlong
ce4a16b0d3
fix(e2e): keep text file tails UTF-8 safe ( #109669 )
...
* fix(e2e): keep text file tails UTF-8 safe
* fix: preserve malformed UTF-8 tail bytes
Co-authored-by: qingminlong <0668001063@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-17 01:57:57 -07:00
Peter Steinberger
ec42788cef
perf(ci): cache packaged dependency reify in the docker e2e functional image ( #109665 )
...
* perf(ci): cache packaged dependency reify in the docker e2e functional image
Split the shared functional E2E image into manifest -> deps -> app stages so
the 328-package npm reify is layer-keyed on package.json + npm-shrinkwrap.json
alone. Per-PR tarballs (changed dist bytes, unchanged deps) now hit the cached
dependency layer on warm builders (Blacksmith sticky docker layers, local
buildkit) instead of re-running npm install on every build; the per-PR work
drops to manifest extract + package extract + packaged postinstall.
The deps stage reify also matches the shipped shrinkwrap exactly; the previous
npm install -g <tarball> path silently drifted ~15 transitive packages to newer
registry versions and lost the node-domexception -> @nolyfill/domexception
alias. npm install (not npm ci) because the generated shrinkwrap does not
guarantee npm ci's strict manifest sync (p-retry pins @types/retry@0.12 .0 while
the shrinkwrap resolves 0.12.5).
Local proof (Apple Silicon, docker-container builder): per-PR warm image build
59s -> 43s with the 29s npm layer CACHED; lane total 164s -> 139s warm,
229s -> 160s cold; system-agent-first-run lane passes end to end, and the
installed tree matches the old image structure except for the documented
version-drift fixes.
* test: update e2e image guard for the staged dependency layer
The guard pinned the retired npm install -g invocation; assert the new
invariants instead: manifest-keyed deps layer, no global-prefix install,
deps COPY into /app, and postinstall ordered before the self-link so its
prune walks cannot cycle.
2026-07-16 22:34:13 -07:00
Peter Steinberger
b6535fb8de
fix(release): stop writing retired smoke state
2026-07-17 04:14:39 +01:00
Peter Steinberger
905395a3ff
fix(release): stop recreating retired workspace state
2026-07-17 03:41:32 +01:00
Leon-SK668
1f5c8239d7
fix(scripts): preserve emoji in request log previews ( #109481 )
...
* fix(scripts): preserve emoji in request log previews
* fix(scripts): keep mock preview standalone
* refactor(scripts): reuse UTF-16 truncation helper
Co-authored-by: Leon-SK668 <0668001470@xydigit.com >
* test(scripts): cover raw Node mock loading
Co-authored-by: Leon-SK668 <0668001470@xydigit.com >
* docs(scripts): note raw Node type stripping contract
Co-authored-by: Leon-SK668 <0668001470@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 18:49:36 -07:00
Dallin Romney
08ba5f90c8
fix(ci): detect frozen Codex binding stores ( #109377 )
2026-07-16 15:46:32 -07:00
Dallin Romney
b5eb8977dc
test(qa): prove Codex cold install product path ( #109267 )
2026-07-16 13:10:41 -07:00
Peter Steinberger
46c3dba537
chore: gate releases on Codex progress follow-through ( #108828 )
...
* test(release): gate Codex progress follow-through
* test(release): register Codex follow-through entry
* test(release): harden Codex follow-through proof
* test(release): preserve legacy Codex follow-through proof
2026-07-16 09:01:00 -07:00
Peter Steinberger
8fe4eeea9e
fix(exec): stop isolated state dirs from moving live approvals ( #108742 )
...
* fix(exec): isolate approval state directories
* chore: drop release-owned changelog entry
* chore: refresh native i18n inventory
* fix(ci): pin XcodeGen for Periphery scans
2026-07-16 08:57:32 -07:00
zengLingbiao
b273fd41c4
fix(e2e): bound ClickClack fixture plugin fetch requests ( #108826 )
...
* fix(e2e): bound ClickClack fixture plugin fetch requests
* test(e2e): exercise ClickClack response deadline
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 08:35:51 -07:00
Alix-007
0159f54268
fix(e2e): bound Pond gateway connections ( #108973 )
...
* fix(e2e): bound Pond gateway connections
* fix(e2e): declare Pond gateway RPC types
* fix(e2e): close Pond socket when setup fails
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 08:18:44 -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
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
e95577ded7
fix(e2e): bound macOS Discord host requests ( #108880 )
2026-07-16 03:36:20 -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
Alix-007
b7270eccc6
fix(e2e): bound Windows prerequisite metadata fetches ( #108698 )
2026-07-16 01:51:26 -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
Peter Steinberger
7a398fe6f8
fix(update): preserve plugin policy on failures ( #108661 )
2026-07-16 00:38:44 -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
Alix-007
3009338a9a
fix(e2e): stop multi-node health checks hanging past deadline ( #108065 )
...
* fix(e2e): bound multi-node health probes
* test(e2e): track multi-node timeout temp files
2026-07-15 22:47:43 -07:00
Peter Steinberger
bae9752c5a
refactor(deadcode): enforce repository hard zero ( #108641 )
2026-07-15 22:40:00 -07:00
Peter Steinberger
e7cba0e4d5
fix: provider dead exports no longer block changed checks ( #108592 )
...
* fix(ci): clean provider dead exports
* test(extensions): satisfy provider contract types
* refactor(openai): tighten provider runtime factory
2026-07-15 22:33:54 -07:00
Peter Steinberger
154d1277e1
fix(qa): repair package Telegram harness boundaries ( #108499 )
...
* fix(qa): keep packaged entry off private transport
* fix(qa): lazy-load private transport runtime
* fix(qa): pass relative package artifact path
* fix(qa): isolate packaged bus protocol
* fix(qa): mount package scenario catalog
2026-07-15 19:24:55 -07:00
Peter Steinberger
3ee408b7b5
fix(qa): isolate Crabline from package live lanes ( #108472 )
...
* fix(qa): isolate Crabline from package live lanes
* fix(qa): narrow optional smoke runtime
* ci(release): avoid unrelated Crabline install
2026-07-15 15:09:07 -07:00
Peter Steinberger
f2fa99a414
fix(ci): install Crabline for package Telegram harness ( #108468 )
2026-07-15 14:41:04 -07:00
Dallin Romney
77d07dc3e9
refactor(qa): migrate Telegram scenarios into QA Lab ( #108430 )
...
* refactor(qa): migrate Telegram scenarios into QA Lab
* refactor(qa): remove retired Telegram runner exports
2026-07-15 12:55:00 -07:00
Peter Steinberger
a99b5a686b
fix(ci): authenticate live Codex Docker release probe ( #108400 )
...
* test(codex): route live Docker probe through OpenAI auth
* test(docker): assert bounded Codex error handling
2026-07-15 10:32:15 -07:00
Peter Steinberger
688a129ed0
fix: keep frozen Docker planning dependency-free ( #108340 )
...
* fix(release): keep frozen Docker planning dependency-free
* fix(release): gate frozen scenario command execution
2026-07-15 08:15:13 -07:00
jincheng-xydt
b2e42e3645
fix(update): preserve pnpm and Bun global installs ( #107802 )
...
* fix(update): preserve pnpm and bun global installs
* fix(update): anchor pnpm updates to invoking install
* fix(update): recover skipped pnpm lifecycle
* fix(update): fail closed on ambiguous pnpm ownership
* fix(update): tolerate pnpm probe warnings
* fix(update): bind pnpm installs to project owners
* fix(update): isolate pnpm mutations from caller pins
* docs(changelog): credit pnpm 11 report
Co-authored-by: jincheng-xydt <xu.jincheng@xydigit.com >
* chore(changelog): defer release note ownership
* fix(update): make package-root fallback explicit
* test(update): split pnpm scenario coverage
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 08:03:35 -07:00
Peter Steinberger
3d76a4af92
refactor(deadcode): privatize runtime test seams ( #108338 )
...
* refactor(sessions): privatize runtime test seams
* refactor(commitments): privatize extraction test seams
* refactor(flows): privatize doctor health seams
* refactor(tasks): privatize registry test seams
* build(commitments): bundle Docker test support
* chore(deadcode): shrink runtime export baseline
2026-07-15 07:27:10 -07:00
morluto
1a34950d9c
fix(commitments): keep heartbeats responsive with large queues ( #105780 )
...
* fix(commitments): migrate store to sqlite
Replace steady-state JSON persistence with typed shared-state rows and a doctor-only verified import for shipped legacy data.
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com >
* fix(commitments): satisfy migration gates
* fix(commitments): type sqlite counts defensively
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 03:58:03 -07:00
Peter Steinberger
75db23f3fc
fix: prevent stale rescue approvals from executing ( #108147 )
...
* fix(system-agent): persist rescue approvals in sqlite
Co-authored-by: Yung-Chen Tang <46495124+yungchentang@users.noreply.github.com >
* fix(system-agent): narrow rescue expiry clock
* test(system-agent): isolate rescue docker inference
* test(system-agent): align rescue docker doctor contract
* test(system-agent): accept canonical model shape
* fix(system-agent): refuse remote doctor repairs
* fix(infra): break rescue migration import cycle
* test(system-agent): lock rescue publish ordering
* test(system-agent): align rescue harness assertions
---------
Co-authored-by: Yung-Chen Tang <46495124+yungchentang@users.noreply.github.com >
2026-07-15 01:53:00 -07:00
Dallin Romney
e9c8cad99e
fix(ci): support frozen Codex binding sidecars ( #108158 )
2026-07-15 01:38:30 -07:00
Dallin Romney
c421a3b2e6
feat: add reusable Parallels Windows test setup ( #107881 )
...
* test: route Parallels Windows setup
* test: own Parallels Windows baseline setup
* docs: point Windows proof to Parallels sidecar
2026-07-14 23:15:57 -07:00
Peter Steinberger
c8733ea674
fix(release): run candidate smoke from trusted tooling
2026-07-15 06:56:04 +01:00
Peter Steinberger
9275f476f4
fix(release): retry flaky fresh Parallels lanes
2026-07-15 06:24:32 +01:00
xydt-tanshanshan
f638cbd0f9
fix(doctor): preserve allowlist entries for version-bound runtime plugins during stale config scan ( #107285 )
...
* fix(doctor): preserve allowlist entries for version-bound runtime plugins (codex) during stale config scan
* fix(doctor): restore codex to scanner stale expectation, protect at repair-sequencing
Scanner now flags codex in plugins.allow as stale so diagnostics are visible.
Repair-sequencing preserves the entry via preservePluginIds which already
includes VERSION_BOUND_RUNTIME_PLUGIN_IDS.
* fix(doctor): scope version-bound runtime plugin preservation to allow surface only
ClawSweeper P2: VERSION_BOUND_RUNTIME_PLUGIN_IDS was applied globally
across all stale config surfaces (deny, entries, slots, channels, etc.),
but only plugins.allow needs preservation. Move to a surface-scoped
parameter surfacePreservePluginIds so codex is preserved only in allow.
* fix(doctor): harden version-bound allowlist repair
* fix(doctor): retain version-bound plugin policy
* fix(doctor): align version-bound plugin diagnostics
Co-authored-by: hailory <hailory@xydigit.com >
---------
Co-authored-by: hailory <hailory@xydigit.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 22:14:11 -07:00
Peter Steinberger
a6a0716486
feat(setup): rename Crestodian to OpenClaw system agent
...
User-facing name is now OpenClaw (the system speaks); internal code name is
system-agent. Gateway methods crestodian.* -> openclaw.chat/openclaw.setup.*,
agent tool -> openclaw, reserved agent ids openclaw + retired crestodian.
openclaw setup routes: onboarding flags -> onboard, -m/--yes -> system agent,
bare configured interactive -> OpenClaw chat, unconfigured -> onboarding.
Hidden crestodian CLI and /crestodian TUI aliases kept; docs moved to
docs/cli/openclaw.md with redirect stub. macOS/Android strings in lockstep.
Refs #107237
2026-07-14 11:03:02 -07:00
Jesse Merhi
00364ee777
improve: warn before non-ClawHub plugin installs ( #102197 )
...
Merged via squash.
Prepared head SHA: e08d9e737d
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
Reviewed-by: @jesse-merhi
2026-07-15 03:25:36 +10:00
Peter Steinberger
1551fc9e43
test(e2e): isolate Pond baseline MCP tool ( #107128 )
2026-07-13 21:45:36 -07:00