Commit Graph

2207 Commits

Author SHA1 Message Date
Peter Steinberger 8684e7ce03 fix: restore beta runtime release gates (#114064)
* test(qa): fix release runtime recovery gates

* test(qa): typecheck restart execution assertions
2026-07-26 03:58:41 -04:00
Peter Steinberger f6131a4fbf build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006)
* build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks

npm 12 removed shrinkwrap (command + tarball/root loading). Delete all 82
committed npm-shrinkwrap.json files and stop publishing lockfiles; keep
pnpm-lock.yaml as the single reviewed dependency boundary. The generator
becomes scripts/generate-npm-package-lock.mjs and feeds plugin bundling via
a transient package-lock.json + npm ci (works on npm 11 and 12). Tarball
validation treats the published 2026.7.2 beta train as a shrinkwrap
transition; self-update npm detection now uses install topology instead of
the shipped shrinkwrap.

* fix(deps): repair lint, deadcode, and test-type lanes for the npm 12 migration

- sort integrity comparisons with an explicit comparator (oxlint)
- keep resolveBunGlobalNodeModules module-local (knip unused-export gate)
- model npm pack --json as npm<=11 array / npm 12 name-keyed object
- default calver destructuring in the tarball test fixture
2026-07-26 01:29:55 -04:00
Peter Steinberger 29ca63221f fix(ci): keep Telegram release scratch in isolated runtime (#114026)
* fix(ci): export Telegram candidate artifacts dir

* style(test): format Telegram QA assertion
2026-07-26 01:04:38 -04:00
Dallin Romney af4acfee63 fix(ci): retain frozen-candidate QA runtime scratch (#114018)
* fix(ci): preserve frozen candidate QA artifact scratch

* docs(ci): clarify QA artifact staging contract
2026-07-25 21:28:57 -07:00
Peter Steinberger b2f6ecc2a9 chore(compat): date the annotated deprecation families and expose removal-pending debt (#114002)
* chore(compat): date the annotated deprecation families and expose removal-pending debt

Adds 10 dated compat-registry records for shipped deprecated surfaces that
previously had @deprecated annotations only (removeAfter 2026-10-01 per the
approved 60-day window), extends the beta5 session-store record with the
package-root aliases, surfaces removal-pending records with due dates,
blockers, and readers in the plugin boundary report, and converts undated
cleanup obligations (CI timing job, zizmor excessive-permissions, staged
Codex CI auth, memory-host legacy state dir, agent-DB schema-ladder floors)
into dated markers visible to the weekly dated-TODO sweep. Metadata,
diagnostics, and docs only - no runtime behavior change.

* fix(compat): keep extension src test paths out of core string literals

The core import guardrail forbids extensions/*/src/ path shapes in core
production string literals; cite the package-root google-meet test and the
registry test for official-plugin-export-aliases instead.
2026-07-25 21:01:20 -07:00
Peter Steinberger 4596fd2dd2 feat(ci): weekly Codex sweep for date-carrying to-dos (#113914)
* feat(ci): weekly Codex sweep for date-carrying to-dos

Mondays 06:23 UTC (plus default-branch-only manual dispatch with
dry_run): a deterministic prefilter collects candidate lines where
to-do markers co-occur with date tokens, plus every deprecated compat
record from the plugin registry; a pinned openai/codex-action step
judges each candidate in context (genuine dated commitment vs
historical date or fixture) and writes an OVERDUE / DUE-30-days /
FUTURE report; a separate privileged job validates the report (tracked
file:line locations, date shape, inert text) and upserts one
marker-tagged tracking issue via the Barnacle app token, commenting
only when items newly become due.

The app token is minted on a fresh runner and checkout — never beside
Codex or its child processes; only the validated report artifact
crosses jobs. No permission-* subsets on token minting (installations
reject explicit subsets; see pr-ci-sweeper).

* chore(ci): localize upsert helpers with no external consumers
2026-07-25 18:18:06 -07:00
Peter Steinberger 71c654c72d fix(release): install package validation dependencies (#113907)
* fix(release): install package validation dependencies

* fix(release): isolate artifact validation tooling
2026-07-25 16:29:20 -07:00
Peter Steinberger d5a3740707 fix(package): prevent installs from deleting required runtime modules (#113821)
* fix(package): preserve imported runtime chunks after install

* fix(package): isolate public build from private QA

* test(package): prove installed postinstall dependency graph
2026-07-25 14:05:41 -07:00
Peter Steinberger fdb511f5a1 fix(ci): repair beta performance and mention gates (#113795) 2026-07-25 11:56:00 -07:00
Peter Steinberger f43fac21c7 fix(gateway): stop showing retired HEARTBEAT.md in the agent files editor (#113621)
* fix(gateway): drop retired HEARTBEAT.md from agent core files

* fix(ci): stop asserting retired HEARTBEAT.md in docker release smoke

* docs: align HEARTBEAT.md references with cron scratch

* docs(agents): drop retired HEARTBEAT.md from workspace read comment
2026-07-25 04:58:31 -07:00
Dallin Romney 26b7bb822b fix(ci): validate frozen release candidates with compatible harnesses (#113628)
* fix(ci): keep release harnesses compatible with frozen candidates

* style: format release Telegram workflow test
2026-07-25 04:45:29 -07:00
Peter Steinberger 5bea268128 feat(anthropic): complete Claude Opus 5 rollout (#113392)
* feat(models): add Claude Opus 5 support

* test(models): align Opus 5 setup fixtures

* test(models): update ambient Opus 5 detection

* fix(models): reconcile Opus 5 support with main
2026-07-24 14:55:36 -07:00
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 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
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
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
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