Peter Steinberger
d805562a84
fix(ui): verify referenced translation keys ( #123279 )
2026-08-13 11:32:56 -07:00
Vincent Koc
abd63c06c2
fix(ci): allow GitHub-hosted npm preflight ( #123191 )
2026-08-14 02:32:01 +08:00
Peter Steinberger
2a70d849e8
improve(ci): stripe giant compact test groups ( #123142 )
...
* ci: stripe media-ui, gateway-core, and security compact groups
* fix(ci): preserve compact stripe config ownership
2026-08-13 10:46:38 -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
c3d843eb24
test: remove residual duplicate assertions ( #123134 )
...
* test: remove residual duplicate assertions
* test: repair stale routing and capability fixtures
* fix(cli): bound one-shot stream drain exit
2026-08-13 04:41:37 -07:00
Vincent Koc
57fabb2c9c
fix(release): allow ANSI in reusable job logs ( #123129 )
...
Preserve ANSI output for reusable validation job-log reads while retaining a bounded fallback for GitHub CLI versions that do not support the raw-output flag.
2026-08-13 19:19:03 +08: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
Vincent Koc
9794a4a49c
fix(release): bind reusable evidence verifier source ( #123115 )
2026-08-13 18:19:28 +08:00
Peter Steinberger
8d46e23224
refactor(agents): delete incomplete-turn runner mirror ( #123114 )
2026-08-13 03:17:14 -07:00
Peter Steinberger
581e67e887
ci: refresh compact shard packing hints from current main runtimes ( #123100 )
2026-08-13 02:38:50 -07:00
Vincent Koc
93cdb610b3
fix(release): keep validation evidence reuse dependency-free
...
* fix(release): keep evidence reuse dependency-free
* fix(release): preserve preflight failure trailer
2026-08-13 17:26:31 +08:00
Vincent Koc
03e89dc9d5
fix(release): include plugin tooling dependencies ( #123082 )
2026-08-13 17:22:11 +08:00
Peter Steinberger
68f324eefc
refactor(agents): move lifecycle tests to owners ( #123092 )
2026-08-13 02:19:30 -07:00
Peter Steinberger
7235943790
fix(release): align survivor session metadata assertion ( #123068 )
...
* fix(release): align survivor session metadata assertion
* test(release): cover SQLite survivor metadata
2026-08-13 01:41:53 -07:00
Peter Steinberger
792b2054df
refactor(agents): move recovery tests to owners ( #123022 )
...
* test(agents): move recovery tests to owners
* test(discord): split send coverage by surface
* test(discord): share send mock lifecycle
* test(discord): isolate draft timer coverage
2026-08-13 01:29:05 -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
Peter Steinberger
fce5b6688a
refactor(tooling): enforce zero wrapper and export debt ( #123020 )
2026-08-13 00:40:32 -07:00
Jesse Merhi
b9f2eba177
fix(perf): reuse prepared plugin generations
2026-08-13 17:03:19 +10:00
Jesse Merhi
b2e023adc6
test(perf): benchmark gateway plugin snapshot load
2026-08-13 17:03:19 +10:00
Vincent Koc
8371831eba
fix(ci): validate duplicate coverage on frozen targets
2026-08-13 14:37:21 +08:00
Vincent Koc
ac110917e1
fix(ci): stream npm pack receipt to disk ( #123019 )
2026-08-13 14:30:27 +08:00
Leon-SK668
cc2ed816be
fix(mac): preserve Xcode preflight failure diagnostics ( #121170 )
2026-08-13 14:17:32 +08:00
Vincent Koc
fd353ee5d7
fix(parallels): recover migration-refused gateway startup
2026-08-13 13:14:22 +08:00
Vincent Koc
1e7a76f49c
fix(e2e): declare agents-delete fixture owners ( #123000 )
2026-08-13 13:07:55 +08:00
Vincent Koc
3bc665f6ae
fix(ci): sanitize AI manifest during installer pack ( #122952 )
2026-08-13 13:02:43 +08:00
Peter Steinberger
9bf9bcebc4
refactor(gateway): remove suspension mock replay ( #122977 )
...
* test(gateway): remove suspension mock replay
* test(agents): stabilize headless timeout assertion
2026-08-12 21:24:50 -07: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
ddb0fad7df
fix(ci): prevent flaky extension wrapper SIGTERM test ( #122917 )
...
* test(scripts): wait for valid wrapper pids
* test(scripts): harden PID marker reads
2026-08-12 19:45:22 -07:00
Vincent Koc
3eef8ebfd5
fix(parallels): preserve plugin inventory during updates ( #122912 )
...
* fix(parallels): preserve plugin inventory during updates
* fix(parallels): preserve dev update plugin inventory
2026-08-13 10:26:02 +08: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
Vincent Koc
d00e4ee324
fix(e2e): verify suspend control over WebSocket ( #122888 )
2026-08-13 09:56:26 +08: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
10a1a43f4b
fix(zalo): keep packaged setup wizard loadable ( #122902 )
...
* fix(zalo): package setup runtime surface
* fix(tooling): track setup surface artifacts
2026-08-12 18:49:41 -07:00
Peter Steinberger
cef071582e
feat: let limited browsers request admin access ( #121459 )
...
* feat(gateway): add live device scope upgrades
* feat(ui): add limited-access upgrade flow
* fix(protocol): refresh Swift scope upgrade models
* perf(ui): lazy-load device scope upgrades
* fix(ci): complete scope upgrade generated surfaces
* perf(ui): lazy-load GitHub link hovercards
* fix(ui): keep admin repair guidance focusable
* fix(ui): gate and refresh scope upgrade banner
* refactor(ui): keep gateway client within line budget
* fix(ci): align rebased scope upgrade checks
* fix(ui): resolve scope upgrade in browser tests
* fix(gateway): honor refreshed scope upgrade deadline
* fix(gateway): honor refreshed scope upgrade deadline
* fix(gateway): coalesce scope upgrade waiters
* fix(ui): gate scope upgrade actions
* chore(plugin-sdk): refresh rebased API baseline
* fix(scope-upgrade): return canonical request ids
* fix(ui): preserve gateway event type binding
* fix(protocol): generate scope upgrade result models
* fix(ui): preserve scope upgrade recovery guidance
* chore(plugin-sdk): refresh rebased API baseline
* test(ui): avoid scope upgrade navigation race
* docs(control-ui): clarify scope upgrade approver
* test(gateway): align appended method counts
* chore(plugin-sdk): refresh rebased API baseline
* refactor(ui): keep place picker within line budget
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* fix(gateway): preserve scope-upgrade browser origin
2026-08-12 18:32: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
Vincent Koc
af49764206
fix(ci): ignore zombie-only Vitest process groups ( #122759 )
2026-08-13 08:46:22 +08:00
Vincent Koc
8733dcd05f
fix(ci): expose AI pack diagnostics ( #122786 )
2026-08-13 08:25:58 +08:00
Peter Steinberger
abe0cd691d
refactor(media): remove orphan generation facades ( #122874 )
2026-08-12 17:19:22 -07:00
Josh Lehman
542ac9ac68
fix: make live updater checkout portable (oc-237) ( #122873 )
2026-08-12 17:17:18 -07:00
Peter Steinberger
be600d0a24
fix: restore Telegram release isolation checks ( #122843 )
...
* fix(release): repair isolated Telegram QA runtime
sticky runner/SUT suite root permits config locks without config replacement; add PS1 after attested env verification for nested login shells.
* test(node-host): own desktop teardown resets
2026-08-12 16:21:45 -07:00
Peter Steinberger
75332a2671
fix(tooling): fail deadcode report on scan errors ( #122847 )
2026-08-12 15:59:37 -07:00
Peter Steinberger
1ca60fbc3a
refactor(agents): make multi-agent ownership explicit (H2-1 core) ( #114388 )
...
* refactor(agents): make roster ownership explicit
* feat(config): materialize legacy agent roles
* fix(cron): migrate legacy owners at startup
* feat(gateway): expose agent selection contracts
* fix(gateway): enforce agent-scoped authorization
* docs(config): document explicit agent ownership
* fix(config): pin retained owner workspace
* fix(gateway): target hook wakes at effective agent
* fix(sessions): preserve fixed-store ownership
* fix: preserve retained agent ownership
* fix: preserve legacy agent ownership across runtime surfaces
* fix: fail closed on ambiguous session ownership
* fix: preserve compatibility owners across dispatch and writes
* fix: preserve retained agent projections
* fix: preserve agent ownership compatibility
* fix: preserve per-agent heartbeat guidance
* fix: preserve compatibility owners in generic paths
* fix: enforce configured ownership in session paths
* fix: defer remote roster selection
* fix: preserve ownership across session and config writes
* fix: fail closed on ambiguous restored ownership
* fix: preserve explicit ACP and legacy ownership
* fix: honor durable fixed-store ownership
* fix: enforce fixed-store owner authority
* fix: preserve ownership evidence boundaries
* fix: honor resolved session ownership
* fix: align compatibility ownership paths
* fix: persist legacy main store ownership
* fix: close ownership fallback gaps
* fix(agents): close retained owner compatibility gaps
* fix(agents): enforce session owner resolution
* fix(agents): complete session owner resolution sweep
* fix(agents): preserve durable session ownership
* fix: complete persisted session owner routing
* fix: thread prepared session owners
* fix: preserve stable session ownership
* fix: enforce session ownership boundaries
* fix: close session ownership delta gaps
* fix: reconcile session ownership after rebase
* fix: reconcile ownership with current main
* fix: align session store path imports
* fix: align session store config path import
* fix: reconcile explicit ownership CI
* fix: reconcile ownership rebase checks
* fix: align ownership ci contracts
* fix: align ownership rebase checks
* fix: preserve compatibility owner during setup
* fix(doctor): migrate ownerless heartbeat monitors
* fix(gateway): preserve explicit session ownership
* test: align ownership fixtures after rebase
* test: complete plugin manifest fixture
* test: align runtime context mocks
* fix(gateway): preserve alias routing for existing sessions
* style: format agent routing update
* fix(gateway): preserve selected owner during alias routing
* style: normalize rebased ownership files
* fix(gateway): preserve owner through global alias routing
* fix(gateway): preserve explicit ownership at HTTP boundaries
* fix(gateway): validate compatibility model ownership
* fix(agents): reconcile strict session ownership
* fix(agents): contain media yield callback failures
* fix(agents): avoid eager bare-key owner resolution
* chore: refresh rebased ownership baselines
* chore: align hosted plugin SDK baseline
* chore: refresh ownership baselines after main sync
* chore: refresh ownership baselines after main sync
* test: align routed event owner fixtures
* chore: retrigger CI after runner startup failure
* chore: refresh ownership SDK budgets after main sync
* fix(tasks): require agent identity for bare owners
* chore: align Linux plugin SDK baseline
* chore: remove release-owned changelog entry
2026-08-12 15:55:16 -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
Peter Steinberger
d003e08756
refactor(plugin-sdk): remove final test-only facades ( #122844 )
2026-08-12 15:28:22 -07:00
Peter Steinberger
93f5e0f1f6
fix(build): restore exact cache output snapshots ( #122837 )
2026-08-12 15:20:11 -07:00
Peter Steinberger
25121bdb45
perf(ci): tail-balance compact large shards ( #122818 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-019ff3db-c467-70ad-8ed3-81f2ba94b0c0
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 14:25:14 -07:00
Peter Steinberger
b6548e509a
refactor(state): retire commitments schema ( #122176 )
...
* refactor(state): retire commitments schema
* fix(state): complete commitments retirement safeguards
* test(state): expect doctor retirement report
* test(state): prove doctor v7 markers atomically
* fix(state): align schema support metadata
* fix(state): report actual commitments retirement
* fix(state): validate retired commitments schema
* fix(state): preserve early commitments upgrades
* fix(state): require exact commitments index set
* fix(state): reject non-exact retired schemas
* fix(state): recognize supported retirement layouts
* fix(state): expose commitments retirement to doctor
* fix(voice-call): describe commitments retirement
* test(state): align v7 rebase proof
* fix(state): protect commitments retirement dependencies
* fix(state): accept partial commitments layouts
* chore(docs): refresh v7 api baselines
2026-08-12 14:21:34 -07:00
Peter Steinberger
27c6b97d6a
test: parallelize web fetch CLI checks ( #122811 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 14:11:49 -07:00
Peter Steinberger
7595d6f432
test(tooling): remove helper replays ( #122790 )
...
* test(tooling): remove helper replays
* refactor(tooling): inline fixture json serialization
2026-08-12 13:31:23 -07:00