Peter Steinberger
b1491356df
ci: shard hosted UI e2e further ( #123329 )
2026-08-13 15:20:37 -07:00
Peter Steinberger
4a5aeb8dd2
improve(ci): shorten GitHub-hosted outage runs ( #123294 )
...
* ci: run push compacts without tooling lanes and stripe giants three-way
* fix(ci): keep CompactNodeTestPlanMode internal
knip --production flags the exported type as unused; no external module
imports it.
* ci: shard hosted lint and node tests
Split core oxlint across hosted runners and use backend-specific compact Node admission caps while preserving Blacksmith behavior.
* test(ci): guard plugin prerelease planner isolation
2026-08-13 15:19:15 -07:00
Peter Steinberger
fb82d87cad
fix: keep CI running during Blacksmith outages ( #123263 )
...
* ci: add runner-backend circuit breaker with GitHub-hosted fallback
* fix(ci): extend hosted timeouts to circuit-breaker runs
2026-08-13 10:18:35 -07:00
Peter Steinberger
fa18d8d273
ci: pipeline canonical main runs across two concurrency slots ( #123135 )
...
Measured canonical-main first-start delay: median 180s, average 209s; 10 of the last 30 runs waited more than 300s.
Approved tradeoff: up to ~+30 concurrent Blacksmith VMs during merge storms. Scope is canonical main pushes only; pull requests, manual runs, non-main refs, and forks keep their existing semantics.
Bump the canonical-main concurrency group from v7 to v8 so in-flight old-group runs cannot mix with the two-slot pipeline.
2026-08-13 04:04:51 -07:00
Ayaan Zaidi
d2afbd05ad
refactor(plugin-sdk): replace API baselines with diffs ( #123036 )
...
* refactor(plugin-sdk): replace API baselines with diffs
* perf(plugin-sdk): bound API diff resources
* fix(plugin-sdk): isolate API diff dependencies
* fix(release): forward Plugin SDK acknowledgement
* fix(release): enforce SDK acknowledgement on publish
* chore: preserve generated-doc ignore policy
* fix(release): freeze SDK API evidence before publish
* fix(ci): satisfy SDK evidence guards
* fix(release): bind complete SDK evidence
* fix(release): authenticate plugin SDK evidence
* fix(plugin-sdk): abort interrupted API diffs
* test(ui): freeze page clock in background-tasks rail e2e
The rail transcript is compared byte-for-byte across the detail-panel
round-trip while it renders live relative ages; on slow CI runners the
second boundary ticks between the two reads (11s -> 12s) and fails the
equality assertion. Fix the page Date with Playwright setFixedTime while
keeping timers running so the tasks.list polling assertions still hold.
Repro: a 1.5s stall between the reads fails pre-fix with the exact CI
diff and passes post-fix.
* fix(scripts): drop unused export on dependency-evidence CLI main
Knip's workflow scan re-roots script references after an actions/checkout
step that sets path:, so the new trusted-tooling checkout in
openclaw-npm-release.yml stops marking this CLI as a workflow entry and
its exported main() surfaces as an unused export in check-dependencies.
Nothing imports main; the module invokes it through its own entry guard,
so the export keyword was dead surface either way.
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-13 03:45:36 -07:00
Peter Steinberger
3b6e54041f
ci: replace dependency sticky disk with exact cache ( #123040 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-019ff3db-c467-70ad-8ed3-81f2ba94b0c0
Co-authored-by: Amp <amp@ampcode.com >
2026-08-13 01:13:25 -07:00
Vincent Koc
8371831eba
fix(ci): validate duplicate coverage on frozen targets
2026-08-13 14:37:21 +08:00
Peter Steinberger
93d93d1d14
perf(test): cut workflow guard import overhead ( #122940 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 19:55:45 -07:00
Peter Steinberger
9992b893e7
fix(ci): rotate stale dependency snapshot ( #122921 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 19:23:33 -07:00
Peter Steinberger
fba9ad43bc
fix(ci): run affected extension suites when changed-test planning falls back ( #122885 )
...
The PR-changed test planner fails safe to the compact full-suite plan for any diff touching packages/**, but that compact plan excludes all extension test configs, so mixed package+extension PRs landed with zero extension test execution (escapes: PR #120534 breaking extensions/codex run-attempt.native-hook-relay.test.ts, PRs #122163/#121522 and cd7b7f639d breaking media-understanding-provider.test.ts and thread-lifecycle.test.ts on main full runs). The preflight now appends whole-config shards for the diff's touched extensions whenever the precise plan fails safe; whole configs (not precise targets) because the fail-safe cause leaves the non-extension diff's extension impact unbounded.
2026-08-12 18:51:00 -07:00
Peter Steinberger
ce5521a4a4
ci: fingerprint preferred pnpm hooks ( #122852 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 17:57:51 -07:00
Peter Steinberger
f8c0e1b832
ci: ignore OpenClaw metadata in dependency fingerprint ( #122839 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 15:33:56 -07:00
Vincent Koc
9324843d42
fix(release): trust frozen beta Telegram candidates ( #122575 )
2026-08-12 18:03:15 +08:00
Vincent Koc
716f996be8
fix(ci): prepare sandbox before repo E2E ( #122525 )
2026-08-12 16:08:19 +08:00
Peter Steinberger
3dcd494f66
improve(ci): reuse built dist for Doctor proof ( #122491 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-019ff3db-c467-70ad-8ed3-81f2ba94b0c0
Co-authored-by: Amp <amp@ampcode.com >
2026-08-11 23:51:59 -07:00
Peter Steinberger
66fe424590
fix(release): trust canonical beta Telegram QA candidates ( #122480 )
...
Canonical beta branch head exact-SHA provenance; unique merged-PR attribution for GitHub web-flow signed transport; extract duplicated gate into one trusted helper.
2026-08-11 23:25:56 -07:00
Peter Steinberger
72e42eed48
improve(ci): reduce main gating delays and add timing trends ( #122441 )
...
* ci: stop publishing warm dependency snapshots
Amp-Thread-ID: https://ampcode.com/threads/T-019ff3db-c467-70ad-8ed3-81f2ba94b0c0
* ci: isolate the high-variance source test shard
Amp-Thread-ID: https://ampcode.com/threads/T-019ff3db-c467-70ad-8ed3-81f2ba94b0c0
* ci: guarantee rebuilt dependency snapshot publication
Amp-Thread-ID: https://ampcode.com/threads/T-019ff3db-c467-70ad-8ed3-81f2ba94b0c0
* ci: add balanced main timing trends
Amp-Thread-ID: https://ampcode.com/threads/T-019ff3db-c467-70ad-8ed3-81f2ba94b0c0
* fix(ci): fall back when Crabbox CLI is unavailable
Amp-Thread-ID: https://ampcode.com/threads/T-019ff3db-c467-70ad-8ed3-81f2ba94b0c0
* Revert "fix(ci): fall back when Crabbox CLI is unavailable"
This reverts commit 0583ac8a9d .
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-08-11 22:26:39 -07:00
joshavant
49dabadf86
fix(ci): avoid unrelated iOS release-gate runs
2026-08-11 20:35:35 -05:00
Peter Steinberger
25f7fc0ec5
test(ci): skip unrelated Bun launcher builds ( #122333 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-11 16:21:44 -07:00
Josh Lehman
d035dba6c7
chore: scope SQLite session lifecycle CI ( #121917 )
...
* oc-358: scope SQLite lifecycle CI
* chore(ci): cover shared session lifecycle owner
2026-08-11 15:06:46 -07:00
Peter Steinberger
cad77fb39c
refactor: consolidate remaining coercion helpers ( #122020 )
2026-08-11 10:22:01 -07:00
Vincent Koc
afc644464d
fix(ci): bound hosted Android build memory ( #122088 )
2026-08-11 23:57:22 +08:00
Vincent Koc
6472d22a77
fix(ci): budget expanded survivor groups ( #122058 )
2026-08-11 22:44:21 +08:00
Peter Steinberger
8dace97c2e
perf(test): cut workflow guard overhead ( #122038 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-11 06:29:08 -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
6dbea69515
fix(ci): separate frozen target context from candidate identity ( #121835 )
2026-08-11 12:14:19 +08: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
Vincent Koc
c87f77185d
fix(release): preserve frozen candidate identity ( #121786 )
...
* commit 'c3e3f276f2b520ffdf28e453eb464a6f4e50dfa0':
fix(release): preserve frozen candidate identity
2026-08-11 11:08:13 +08:00
Vincent Koc
c3e3f276f2
fix(release): preserve frozen candidate identity
2026-08-11 10:48:08 +08: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
Josh Avant
bdd35432dd
perf(checks): accelerate fresh changed gates ( #121805 )
2026-08-10 21:30:24 -05:00
Patrick Erichsen
abb856ece4
fix(release): restore frozen beta validation ( #121791 )
...
Punchcard-Session: coral-summit-brook-8j
2026-08-10 18:45:42 -07:00
Peter Steinberger
96b0cf95ef
fix(gateway): restore restart preflight compatibility ( #121757 )
...
* fix(gateway): restore restart preflight compatibility
* ci(protocol): preserve restored method vintages
* chore: defer compatibility note to release
2026-08-10 16:43:27 -07:00
Vincent Koc
7e03fe3ba0
Merge commit '546bb29055b3e204b981dc27d4375c4d7679c7dd' into HEAD
...
* commit '546bb29055b3e204b981dc27d4375c4d7679c7dd':
fix(release): support frozen validation tooling
2026-08-11 07:34:47 +08:00
Vincent Koc
546bb29055
fix(release): support frozen validation tooling
2026-08-11 07:20:44 +08:00
Martin Cleary
e0a4146f55
fix(ci): carry branch authority to ClawSweeper ( #121674 )
...
Co-authored-by: brokemac79 <255583030+brokemac79@users.noreply.github.com >
2026-08-10 22:50:44 +01:00
Vincent Koc
a994d2ad5f
fix(qa): provide protocol base to evidence runs ( #120710 )
...
Co-authored-by: Dallin Romney <6581799+RomneyDa@users.noreply.github.com >
Punchcard-Session: amber-workshop-workshop-36
2026-08-10 16:59:58 +08:00
Vincent Koc
f4987deb94
fix(ci): support frozen validation scripts ( #121458 )
2026-08-10 14:49:51 +08:00
Peter Steinberger
ff10db092b
ci(mantis): extract shared request-resolution, ref-trust, and reaction workflows ( #121339 )
...
* ci(mantis): extract shared request, trust, and reaction workflows
* ci(mantis): drop caller-less params from shared resolve workflow
* test(mantis): read candidate-override parsing from shared resolve workflow
2026-08-09 22:04:27 -07:00
Peter Steinberger
88fc335323
fix(ci): support frozen script entrypoints ( #121208 )
...
* fix(ci): support frozen script entrypoints
* fix(ci): route frozen plugin tests through package script
* fix(release): support compiled candidate test helpers
* fix(release): support compiled upgrade helpers
* fix(release): mount trusted upgrade runtime
* fix(release): preserve trusted tsx resolution
2026-08-10 10:31:21 +08:00
Peter Steinberger
64695e5024
chore: detect export name collisions ( #121300 )
...
* chore(scripts): add export-name-collision check with debt baseline
* chore(scripts): allowlist per-module test-hook export idiom
* chore(scripts): recognize const forwarders, harness files, and JS sources in collision check
2026-08-09 18:58:28 -07:00
Peter Steinberger
0ef798d28d
fix(gateway): keep hello authorization aligned with RPC access ( #120888 )
...
* fix(gateway): separate socket and device token scopes
* chore(i18n): refresh native source baseline
* style(ios): keep gateway channel within lint limit
* refactor(gateway): simplify scope metadata decoding
* ci(ui): isolate real-gateway e2e suites
* docs(ci): align runner table formatting
* chore(plugin-sdk): refresh api baseline
* ci(ui): route real-gateway retries to hosted runners
* chore(plugin-sdk): repair generated api baseline
* test(ui): select Labs toggles by title
* fix(gateway): preserve stored scopes without wire metadata
2026-08-09 14:50:07 -07:00
Vincent Koc
106cdd18a9
fix(ci): shard release merge-tree lint ( #120421 )
...
* fix(ci): shard release merge-tree lint
Punchcard-Session: amber-workshop-workshop-36
* fix(ci): resolve branch-creation push base
Punchcard-Session: amber-workshop-workshop-36
* fix(ci): follow Oxlint shard runner rename
Punchcard-Session: amber-workshop-workshop-36
2026-08-10 00:48:44 +08:00
Peter Steinberger
4b85d834ed
fix(ci): sparse-checkout the renamed local-heavy-check-runtime.mts on the frozen shard lane ( #121097 )
2026-08-09 08:59:30 -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
f83ba2b326
fix(ci): route UI E2E PR retries to hosted runners ( #120997 )
...
* fix(ci): route UI E2E PR retries to hosted runners
Punchcard-Session: amber-workshop-workshop-36
* fix(ci): align UI E2E retry cache routing
Punchcard-Session: amber-workshop-workshop-36
* fix(ci): clarify UI E2E retry routing
Punchcard-Session: amber-workshop-workshop-36
* fix(ci): validate workflow expression capture
Punchcard-Session: amber-workshop-workshop-36
2026-08-09 19:50:24 +08:00
Peter Steinberger
b869d5e73f
fix(workers): skip shared-host quiescence sweeps ( #120969 )
...
* fix(workers): skip shared-host quiescence sweeps
Refs #120952 .
* test(workers): update shared-host fixtures
Refs #120952 .
* fix(workers): reconcile shared-host lease metadata
* fix(workers): fence unknown lease isolation
* chore(plugin-sdk): refresh API baseline
* fix(workers): fence tunnel isolation updates
* docs(workers): clarify shared-host final fences
* ci: invalidate Vitest cache for state schemas
* refactor(workers): import stableWorkerPathComponent from its defining module
workspace-sync.ts crossed the 700-line lint budget by one; drop its
re-export and point consumers at workspace-sync-helpers directly.
2026-08-09 04:34:39 -07:00
Peter Steinberger
26ee1b4935
fix(doctor): enforce deprecation registry deadlines ( #120868 )
2026-08-08 21:19:04 -07:00
Peter Steinberger
5cf9c9cda6
ci: extend watchdog for cold migration proofs ( #120700 )
2026-08-08 18:03:16 -07:00
Vincent Koc
13322b2adc
fix(ci): run every changed-scope routing suite ( #120625 )
2026-08-09 00:50:17 +08:00