Peter Steinberger
6522ce37d9
fix(release): unblock Telegram QA and Copilot media proof ( #112972 )
...
* fix(release): build Telegram candidate with private QA
* fix(copilot): preserve offloaded prompt images
2026-07-23 04:43:53 -04:00
Peter Steinberger
e76c9aac30
fix(release): allow isolated Telegram private QA ( #112935 )
...
* fix(release): forward private QA flags to Telegram SUT
* test(ui): update catalog activity state owner
2026-07-23 02:17:48 -04:00
Dallin Romney
a195d6fcee
fix(release): invoke frozen Telegram CLI directly ( #112874 )
2026-07-23 13:08:33 +09:00
Dallin Romney
f7d61b4352
fix(ci): skip new OpenClawKit suite for frozen targets ( #112860 )
2026-07-23 12:26:49 +09:00
Dallin Romney
67ef07863f
fix(release): support frozen candidate contracts ( #112841 )
2026-07-23 12:03:11 +09:00
Dallin Romney
19d17bc3c4
refactor(qa): canonicalize runtime-pair lanes ( #112603 )
2026-07-23 10:06:12 +09:00
Dallin Romney
74cc99f2d1
fix(release): publish extended-stable Docker channels safely ( #112494 )
...
* fix(release): isolate extended-stable Docker aliases
* fix(release): harden Docker channel promotion
* docs(release): pin Docker policy into tagged tree
* refactor(release): isolate Docker channel promotion
* fix(release): queue Docker publications
* fix(release): harden docker channel promotion
* docs(release): tighten extended-stable guidance
* fix(release): promote Docker aliases after verification
* chore(release): format maintainer instructions
* refactor(release): separate release version policy
* docs(release): clarify extended-stable gateway scope
* fix(release): harden Docker channel promotion
2026-07-23 10:03:11 +09:00
Peter Steinberger
79d4e4a3ad
fix(release): accept complete core tarball manifests ( #112813 )
...
* fix(release): consume complete core tarball manifest
* fix(release): declare core tarball selector
2026-07-22 21:02:47 -04:00
Peter Steinberger
df551c10a1
ci: update Kova release fixture pin ( #112715 )
2026-07-22 11:27:00 -07:00
Peter Steinberger
0c355bf549
fix(ci): sweeper revives cancelled required checks on auto-merge PRs ( #112599 )
...
* fix(ci): sweeper revives cancelled required checks on auto-merge PRs
* fix(ci): avoid shadowed identifier in sweeper revive lane
2026-07-22 01:20:35 -07:00
Dallin Romney
eab05ddffb
fix(qa): preserve partial maturity evidence ( #112569 )
2026-07-22 16:54:36 +09:00
Peter Steinberger
01be7aa609
ci: fail build-artifacts when committed plugin bundles go stale ( #112489 )
2026-07-21 23:44:48 -07:00
Dallin Romney
3946bcc20c
fix(qa): run isolated Matrix evidence partitions in parallel ( #112465 )
...
* fix(qa): parallelize isolated Matrix evidence partitions
* refactor(qa): plan adapter instance concurrency
* fix(qa): let Docker assign Matrix harness ports
* refactor(qa): use instance isolation for Matrix concurrency
* test(ci): expect maturity concurrency six
* refactor(qa): remove Matrix harness manifest
2026-07-22 14:45:52 +09:00
Patrick Erichsen
d4a9bbbe87
ci(testbox): provision pinned TruffleHog ( #112482 )
...
* ci(testbox): provision pinned TruffleHog
* fix(ci): preserve existing TruffleHog bin directory
* test(ci): cover TruffleHog target routing
2026-07-21 20:14:58 -07:00
Peter Steinberger
f695be341c
feat(cua-computer): add experimental Windows/Linux computer-use fulfiller ( #112267 )
...
* feat(cua-computer): add experimental Windows/Linux computer-use fulfiller
Bundled plugin that fulfills the capability-based computer.act + screen.snapshot
node contract on Windows and Linux by supervising a pinned cua-driver 0.10.x
daemon over MCP stdio. macOS keeps the Peekaboo fulfiller; this plugin is
disabled by default and never available on darwin.
Grounded in cua-driver 0.10.0 source (tool schemas, refusal codes, coordinate
spaces, session/daemon lifecycle). Notable safety and correctness properties:
- Deny-by-default env allowlist so OpenClaw secrets (provider/channel tokens,
CUA_API_KEY) never reach the separately installed daemon; telemetry and
update checks forced off.
- Version-gated handshake (exact-minor pin + capability/schema version),
time-bounded so a corrected driver recovers without a node restart.
- Robust daemon supervision: full readiness-budget polling, startup-race
tolerance, signal-death and spawn-error recovery, shared-daemon lifecycle
(never killed on dispose).
- Frame authorization preserved within upstream limits (generation + full live
geometry; capture refused when screen and screenshot geometry diverge).
- Action mapping refuses inputs cua-driver cannot faithfully deliver:
layout-shifted keys, modifier-held drag/scroll, Linux modifier clicks,
hold_key/mouse down-up, non-positive scroll; drag duration clamped.
* fix(cua-computer): satisfy lint, test-types, dead-code, and docs-map gates
2026-07-21 05:58:04 -07:00
Vincent Koc
60cb53233b
ci(i18n): publish Wear locale artifacts
2026-07-21 17:36:49 +08:00
Vincent Koc
d4021c351c
fix(macos): localize settings surfaces ( #112185 )
2026-07-21 16:15:40 +08:00
Dallin Romney
33f5c0bbb2
fix(ci): forward live QA credentials to maturity generation ( #112201 )
2026-07-21 16:57:39 +09:00
Vincent Koc
1d28128c20
chore(ci): audit dependency fingerprint exports ( #112190 )
2026-07-21 15:18:09 +08:00
Dallin Romney
8a03f414ce
fix(ci): restore Z.AI API Platform validation ( #112171 )
2026-07-21 15:44:41 +09:00
Dallin Romney
3abf8ce964
fix(ci): freeze floating maturity main refs ( #112015 )
2026-07-21 11:42:22 +09:00
Peter Steinberger
64607ba63d
feat: show cloud workspace conflicts in the Control UI ( #111329 )
...
* feat(ui): surface cloud workspace conflicts with staged-ref guidance
* fix(ui): satisfy workspace conflict CI checks
* fix(ui): reject terminal controls in conflict paths
* chore: keep release notes out of the PR
* fix(ui): satisfy conflict path lint
* fix(ui): retain cloud conflicts after reclaim
* fix(ui): keep child conflict badges visible
* test(ui): cover cloud conflict recovery in browser
* fix(ci): rotate poisoned dependency snapshot
* fix(ui): keep nested cloud conflicts discoverable
* docs(changelog): note cloud conflict UI
* fix(ui): restore conflict UI budget headroom
2026-07-20 19:27:19 -07:00
Dallin Romney
29737496a8
fix(qa): run independent evidence channels concurrently ( #112008 )
...
* fix(qa): overlap independent channel evidence
* fix(ci): pin nested maturity evidence ref
* test(qa): satisfy promise executor lint
2026-07-21 11:25:46 +09:00
Dallin Romney
d4deddb6ed
fix(ci): budget maturity evidence runs ( #111980 )
2026-07-21 10:54:37 +09:00
Patrick Erichsen
ff98dd93f5
ci: scan pull requests with TruffleHog ( #111935 )
...
* ci: scan pull requests with TruffleHog
* ci: scan staged changes with TruffleHog
* ci: fetch pull request base for secret scan
* ci: fetch complete pull request scan history
2026-07-20 17:08:41 -07:00
Peter Steinberger
a971188a6d
build(client): make @openclaw/gateway-client publishable to npm ( #111707 )
2026-07-20 00:23:36 -07:00
Peter Steinberger
fef846a3f0
build(protocol): make @openclaw/gateway-protocol publishable to npm ( #111664 )
...
* build(protocol): make @openclaw/gateway-protocol publishable to npm
* chore(mxc): align package version with release train
* fix(release): support gateway-only core packages
2026-07-19 23:18:24 -07:00
Peter Steinberger
e0b1a39d2a
improve(i18n): generate native locales after merge ( #111557 )
...
* ci(i18n): move native locale generation post-merge
* fix(i18n): allow generated Android companions
2026-07-19 15:42:41 -07:00
Peter Steinberger
3247a56d15
fix(ui): prevent cross-file mock leakage in Control UI tests ( #111554 )
...
* test(ui): stop shared mock registry leakage
* ci: add three-worker UI leakage canary
2026-07-19 15:38:50 -07:00
Peter Steinberger
1f507162ee
fix(ci): validate sticky importer restores ( #111444 )
2026-07-19 07:57:46 -07:00
Peter Steinberger
d9c9eeb8cd
fix(ci): resolve manual protocol baseline
2026-07-19 14:53:32 +01:00
Peter Steinberger
3b84a55d99
refactor(protocol): pre-publish cheat-window cleanup and vintage tracking ( #111041 )
...
* fix(codex): drain dynamic-tool handlers before side-thread cleanup
* refactor(protocol): rename question ids to questionId and flatten answer maps
* refactor(protocol): slim worker stack and unify session-catalog shapes
* refactor(protocol): delete dead public surface and polish packaging
* feat(protocol): track release-train vintage on gateway methods and schemas
* fix(apps): align question surfaces merged from main with reshaped protocol
* test(health): shape secret fixtures to scanner-safe token names
* test(health): use scanner-safe token fixtures
* fix(apps): align question surfaces merged from main with reshaped protocol
* fix(ci): prove reshaped protocol in shallow checks
* fix(ui): align sidebar question fixtures with protocol
* fix(apps): read flat Swift question answers
* fix(apps): align question surfaces merged from main with reshaped protocol
* fix(apps): refresh native question inventory
* fix(apps): align macOS snapshot fixtures with protocol
* fix(ui): align narration question fixture with protocol
2026-07-19 04:07:15 -07:00
Peter Steinberger
c7d2d111d8
fix(ci): enforce plugin SDK API baseline ( #111289 )
...
* fix(ci): enforce plugin SDK API baseline
* fix(plugin-sdk): refresh fs-safe API baseline
2026-07-19 02:38:58 -07:00
Mason Huang
c26d3cfbd0
fix(ci): skip Periphery scans for unrelated PR changes ( #107991 )
...
* fix(ci): scope Periphery to PR merge changes
* test(ci): align Periphery changed-test routing
2026-07-19 16:52:44 +08:00
Jason (Json)
baa8b9b24f
test(telegram): add MCP App Funnel proof fixture ( #111238 )
2026-07-19 00:14:36 -06:00
Peter Steinberger
28ce6b8116
fix(macos): accept current native state schema ( #111032 )
2026-07-18 19:58:37 -07:00
Peter Steinberger
b4187ced90
feat: add live-validated Zoom meeting guest plugin ( #111048 )
...
* feat(zoom-meetings): add browser guest transport
* fix(zoom-meetings): type reusable refresh result
* test(meeting-bot): bind reusable refresh callback
* chore(zoom-meetings): use existing plugin label
* chore(zoom-meetings): defer changelog to release
* test(zoom-meetings): cover node setup through public host
2026-07-18 17:17:26 -07:00
Dallin Romney
6325b0f3c4
fix(qa): hydrate full profile live credentials ( #110897 )
2026-07-18 12:29:13 -07:00
Peter Steinberger
53ad69c6ee
ci: hourly sweeper re-fires dropped pull_request CI runs ( #110889 )
...
* ci: add hourly PR CI sweeper for dropped pull_request runs
Fresh PRs race GitHub's merge-ref computation: the open-event CI run can
drop entirely or be created as an un-rerunnable startup_failure (~10-16
runs daily). The sweeper lists recently updated open PRs hourly, finds
heads whose only pull_request-event CI runs are startup failures (or
missing), and re-fires the event by close/reopen with the Barnacle app
token (GITHUB_TOKEN events would not trigger workflows).
Safety: 10-minute quiet window, 24h lookback, skips drafts, merge
conflicts, pending mergeability, and auto-merge PRs (close cancels
auto-merge); revalidates state, head, and CI attachment immediately
before mutating; per-PR budget of two sweeper closes and a per-sweep cap
of ten; reopen-on-unknown ownership so a stranded close (silent) always
loses to a spurious reopen (visible); manual dispatch supports dry_run.
Accepted tradeoffs are documented inline: shared-SHA PR topologies can
mask a dropped run (skip-only miss; run.pull_requests matching would
break fork PRs), and app-auth failover at worst doubles the close budget.
* test(ci): exercise pr-ci-sweeper runner with a faked client
* fix(test): lint-clean pr-ci-sweeper runner fakes
2026-07-18 20:18:57 +01:00
Peter Steinberger
a2f845e6c8
fix: control UI locale PRs fail to arm auto-merge ( #110809 )
...
* fix(ci): grant locale auto-merge token contents access
* style(ci): format locale workflow guards
2026-07-18 17:45:27 +01:00
xingzhou
faf3dbdda8
fix(ci): classify proxied APNs TLS tunnel ( #110480 )
...
* fix(ci): classify proxied APNs TLS tunnel
* fix(ci): prove network CodeQL contract changes
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 16:18:29 +01:00
Peter Steinberger
7a7c158210
perf(ci): parallelize gateway watch artifact check ( #110609 )
2026-07-18 11:01:08 +01:00
Peter Steinberger
a068d38b66
refactor(plugins)!: remove experimental workspaces plugin ( #110416 )
...
* refactor(plugins)!: remove experimental workspaces plugin
* fix(doctor): remove retired workspaces plugin state
* refactor(doctor): settle retired-workspaces cleanup before legacy-state detect
* chore(i18n): leave workflow-owned locale artifacts to the locale refresh
* ci: retrigger after GitHub scheduling outage
2026-07-18 10:56:37 +01:00
wanyongstar
a2b0cfed26
fix(ci): bound openclaw-npm-release git fetch operations with timeout ( #109176 )
...
* fix(ci): bound all openclaw-npm-release git fetch operations with timeout
Wrap all six git fetch commands with a 120-second deadline
and 10-second termination grace period, matching the pattern
established in #108940 .
Fixes #109176
* test(ci): cover npm release fetch deadlines
Co-authored-by: wanyongstar <wan.yong@xydigit.com >
* ci: raise Control UI startup budget
Unblock exact-head builds after the compressed startup bundle reached the previous 370 KiB ratchet.
* ci: drop superseded Control UI budget bump
Current main now carries the smaller 340 KiB startup ratchet from #110528 , so remove the temporary 372 KiB adjustment while keeping the PR head conflict-free.
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 09:23:56 +01:00
Peter Steinberger
2ba272bda6
improve(ci): warm import-heavy Vitest graphs ( #110557 )
...
* perf(ci): broaden Vitest transform cache seed
* fix(ci): declare cache slot clone helper
2026-07-18 09:20:14 +01:00
Peter Steinberger
64f3397874
fix(ci): persist warm runtime caches across runs ( #110363 )
...
* ci: make cache persistence verifiable
* test: fix cache guard CI failures
* test: narrow cache maintenance env
* fix(ci): stabilize vitest cache fingerprint
* test: stabilize lagging-history outbox check
2026-07-18 08:21:26 +01:00
Peter Steinberger
2612728b3b
fix(ci): feed candidate identity JSON to validator ( #110456 )
2026-07-18 07:07:00 +01:00
wanyongstar
e6534018e1
fix(ci): bound qa-profile-evidence git fetch operations with timeout ( #110282 )
...
* fix(ci): bound qa-profile-evidence git fetch operations with timeout
* fix(ci): bound qa-profile-evidence git fetch operations with timeout
ci: retrigger checks
* test(ci): guard QA evidence fetch timeouts
Co-authored-by: wanyongstar <wan.yong@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-18 06:34:43 +01:00
wanyongstar
c1e5c1d4fa
fix(ci): bound release-checks git fetch operations with timeout ( #110028 )
...
* fix(ci): bound release-checks git fetch operations with timeout
* fix(ci): bound release fetches across auth modes
Co-authored-by: wanyongstar <wan.yong@xydigit.com >
* style(ci): format release timeout guard
Co-authored-by: wanyongstar <wan.yong@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-18 06:32:19 +01:00
Peter Steinberger
700a089d3b
ci(release): tolerate historical script contracts ( #110365 )
...
* ci(release): tolerate historical script contracts
* ci: escape stalled macOS retry capacity
* ci: freeze exact release-gate merge snapshot
2026-07-18 06:31:47 +01:00