Peter Steinberger
1564c0719f
ci: pin exact action version comments ( #113386 )
2026-07-24 12:05:51 -07:00
Peter Steinberger
7dfb660d1f
fix(release): keep msteams packaging and Docker reruns reliable ( #113332 )
...
* fix(release): forward-port beta packaging repairs
* fix(ci): acknowledge sweeper token grant
2026-07-24 07:05:41 -07:00
Peter Steinberger
8d67c40939
fix(ci): restore full-grant app token for pr-ci-sweeper
...
Every scheduled sweep failed at token minting since the explicit
permission subset was added: actions/create-github-app-token rejects any
request exceeding the installation grant, and these installations lack
actions:write/checks:read (stale.yml succeeds with actions:read;
auto-response succeeds with neither). Requesting no subset restores the
app's full granted set, which the re-fire lane demonstrably worked with.
If the org later grants actions:write+checks:read, the explicit subset
can return.
2026-07-24 06:21:04 -07:00
Peter Steinberger
73bba03e4c
refactor: canonicalize session delivery state ( #113225 )
...
* refactor: canonicalize session delivery state
* test: canonicalize reply persistence fixtures
* test: canonicalize talk delivery fixtures
* test: canonicalize voice session routes
* test: canonicalize attachment delivery fixtures
* test: migrate gateway delivery fixtures
* fix: skip invalid session delivery rows
* test: align delivery SDK surface gates
* fix: preserve legacy delivery precedence
* test: canonicalize heartbeat delivery fixtures
* fix: preserve delivery route prompt identity
* test: canonicalize session delivery fixtures
* fix: preserve recoverable legacy delivery routes
* fix: canonicalize remaining session state
* fix: preserve canonical session classification
* style: format delivery state changes
* test: refresh plugin SDK delivery baseline
* test: avoid mutating session fixture input
* style: simplify delivery identity check
* style: simplify delivery origin spread
* fix: preserve fresh delivery route metadata
* test: assert canonical surface route switch
* fix: canonicalize doctor file-store imports
* fix: preserve transitional delivery migration state
* fix: satisfy canonical delivery CI gates
* ci: scope GitHub App token permissions
* test: infer canonical delivery projections
* test: canonicalize ACP requester delivery fixtures
* test: canonicalize harness rollback fixture
* style: apply pinned formatter
2026-07-24 01:01:19 -07:00
Vincent Koc
342816a58d
fix(i18n): publish Android flavor locale artifacts
2026-07-24 15:26:58 +08:00
Peter Steinberger
169dad6224
fix: watch-pr-ci exits with false FAILURE when draft-to-ready cancels superseded runs ( #113230 )
...
* fix(scripts): ignore superseded workflow runs in watch-pr-ci rollup classification
Draft->ready re-triggers leave cancelled superseded runs on the head SHA
forever, and GitHub's aggregate rollup state counts them, so the watcher
emitted terminal FAILURE while the replacement run was still in progress
and could never reach GREEN (observed on PR #113150 , head bd1b9a0e ).
- fetch run identity per check and resolve same-name checks to the newest
run/check id (GitHub latest-name-wins); drop cancelled checks from
replaced runs; keep older runs' unique jobs visible
- paginate statusCheckRollup contexts (bounded, 10 pages) so >100-context
rollups are not truncation-blind; changed or lost snapshots throw into
the bounded retry
- classify GREEN when aggregate FAILURE is explained solely by superseded
contexts with full visibility; truncation still fails conservatively
* ci: scope GitHub App token permissions in stale, labeler, auto-response, and pr-ci-sweeper
Fixes red main: #112963 bumped zizmor v1.22.0 -> v1.28.0, whose github-app
audit flags create-github-app-token mints without permission-* inputs (14
high findings, Workflow Sanity red on main since 3b7b2a2a1f ). Most
workflows already migrated to scoped tokens; these four were stragglers.
Scopes follow each consumer's actual API surface: stale needs issues/PR
write plus actions read for its state-cache check; labeler needs label
CRUD (issues write), PR write, members read for maintainer gates, and
contents read where actions/labeler reads its config; auto-response needs
issues/PR write plus members read; pr-ci-sweeper needs actions write to
re-fire runs, checks read, and PR write. Verified locally with the exact
CI invocation (zizmor 1.28.0, repo config, regular persona, medium
severity/confidence): no findings, ignore/suppress counts match CI.
2026-07-23 22:46:04 -07:00
Peter Steinberger
3b7b2a2a1f
chore: update dependencies and migrate major contracts ( #112963 )
...
* build(deps): complete latest dependency migrations
* fix(deps): satisfy updated dependency types
* fix(deps): hold incompatible build tooling
* fix(deps): preserve portable tooling contracts
* build(deps): allow reviewed fresh transitive releases
* fix(deps): repair major upgrade validation
* build(deps): regenerate current dependency graph
* fix(logging): keep tslog adapter type private
* fix(agents): narrow grep subprocess handle
* fix(codex): prefer pinned managed binary
* fix(codex): fence managed native provenance
* build(deps): align codex ACP with managed harness
* fix(slack): use socket-mode Undici runtime
* fix(slack): detect cross-runtime responses
* fix(slack): bridge package-owned fetch types
* fix(deps): retain tslog v4 JSON contract
* build(plugin-sdk): refresh logging API manifest
2026-07-23 21:21:01 -07:00
joshavant
ee317497d9
fix(ios): isolate release screenshot captures
2026-07-23 20:45:33 -05:00
Peter Steinberger
7915c44773
fix(ci): allow sticky writer rebuild to finish ( #113175 )
...
* fix(ci): allow sticky writer rebuild to finish
* test: register iOS release tooling ownership
2026-07-23 17:17:10 -07:00
Peter Steinberger
b3b9e691bd
fix(ci): rebuild sticky modules before snapshot refresh ( #113155 )
2026-07-23 15:56:49 -07:00
Peter Steinberger
8a2b2b35f5
fix(ci): rebuild stale sticky dependency snapshots ( #113142 )
2026-07-23 13:59:22 -07:00
Peter Steinberger
6c3d8fc1b0
ci(release): honor candidate pnpm pin ( #113110 )
2026-07-23 11:32:04 -07:00
Peter Steinberger
acd92f6a3d
chore(deps): refresh repository dependencies ( #112453 )
...
* build(deps): update QA broker dependency
* build(deps): refresh repository dependencies
* build(deps): reconcile rebased shrinkwraps
* test(plugins): remove stale loader test state
* test(deps): stabilize updated dependency coverage
* fix(swift): use caller-isolated TaskLocal overload
* build(deps): regenerate rebased shrinkwraps
* test(msteams): preserve DNS validation in fetch helper
* fix(deps): avoid vulnerable optional image stack
* test(deps): validate generated LRU override
* refactor(ui): extract chat resizable divider
* test(ui): update divider ownership path
* fix(matrix): retain restart-compatible SDK
* style(cron): format update test
2026-07-23 16:17:13 +00:00
joshavant
b85c0e2064
fix(ios): harden release screenshot capture
2026-07-23 11:09:06 -05:00
Peter Steinberger
525a7f4c96
ci(release): restore full validation after config migrations ( #112740 )
...
* fix(browser): preserve scoped CDP authority policy
* test(release): migrate canonical config fixtures
* ci(release): repair acceptance harness drift
* ci(release): extend Anthropic setup budget
* test(release): align remaining CI contracts
* test(release): align Docker and QA contract tests
* docs(release): preserve validation evidence inputs
* test(plugins): align unprepared metadata reads
* ci(release): separate QA live suite filters
* test(release): bind cron MCP cleanup device
2026-07-23 08:46:55 -04:00
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