Commit Graph

4421 Commits

Author SHA1 Message Date
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
bac2bbd243 refactor(google-meet): split CLI modules (#112937)
* refactor(google-meet): split CLI modules

* test(google-meet): align CLI split routing

* refactor(google-meet): isolate CLI command contract
2026-07-23 03:00:34 -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
Peter Steinberger
a542f01f49 refactor: remove dead tooling and deprecated exports (#112915) 2026-07-23 01:28:11 -04:00
joshavant
ebbbfa4c30 fix(ios): stabilize release screenshot launches 2026-07-23 00:28:00 -05:00
Peter Steinberger
0f0d9a2d74 refactor(telegram): consolidate bot test fixtures (#112894)
* test(telegram): consolidate bot fixtures

* fix(ci): allow cross-platform UI gzip variance
2026-07-23 01:03:34 -04:00
Peter Steinberger
ec8f957f2e fix(release): test candidate external channel plugins (#112899) 2026-07-23 00:53:23 -04:00
Peter Steinberger
e99d978e24 test: consolidate script workflow fixtures (#112892) 2026-07-23 00:51:10 -04:00
Peter Steinberger
b3e2af7eb2 refactor(scripts): remove orphaned secret provider proof (#112875) 2026-07-23 00:29:44 -04:00
Peter Steinberger
c11f175282 feat(ci): ratchet the Control UI startup JS budget against a committed baseline (#112880)
The startup JS gzip gate was a fixed ceiling that main drifted to within
1-3 KiB of, forcing repeated hand-bumps (315->317 KiB) and failing
feature PRs on drift they did not cause (#112649 burned two CI rounds).

check-control-ui-performance.mjs now also enforces a committed baseline
(config/control-ui-startup-budget-baseline.json) with a 512 B tolerance:
regressions beyond baseline+tolerance fail with an actionable message,
intentional increases become a reviewed one-line diff via
--update-baseline --reason, meaningfully lighter builds print a
lower-the-baseline hint, and a malformed/missing baseline fails closed.
The fixed ceiling stays as the cumulative-creep backstop.

Closes #112743.
2026-07-23 00:19:36 -04:00
Dallin Romney
a195d6fcee fix(release): invoke frozen Telegram CLI directly (#112874) 2026-07-23 13:08:33 +09:00
joshavant
690ed56441 fix(ios): preserve localized app display names 2026-07-22 22:56:22 -05:00
Peter Steinberger
4c5e8f3b85 feat(scripts): add watch-pr-ci CI watcher with mergeable and attach prechecks (#112821)
* feat(scripts): add watch-pr-ci CI watcher with mergeable and attach prechecks

* fix(scripts): require successful attached PR CI run

* fix(scripts): harden watch-pr-ci verdicts against foreign runs and truncated rollups

* fix(scripts): add fresh-run gating to watch-pr-ci attachment

* fix(scripts): guard stale-cancelled verdict against truncated context pages

* fix(scripts): declare rollup context total count

* fix(scripts): sanitize check names and close the final polling interval

* test(scripts): type deadline wait samples
2026-07-22 23:33:45 -04: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
Peter Steinberger
099d6351b3 refactor(sessions): canonical lineage model — creation provenance, fork ancestry, generation chain, typed row contract (#111861)
* fix(sessions): preserve spawn/fork lineage across implicit daily/idle rollover

* refactor(sessions): canonical creation model with forkSource ancestry and generation chain

* feat(sessions): stamp creation provenance across all creation paths and emit created events

* refactor(gateway): lock lineage patching, split control from navigation, add typed session-row contract

* docs(gateway): document creation provenance stamping and lineage patch tightening

* fix(sessions): keep provenance proof-only on wire fallbacks and strip node-local lineage from cron continuations

* fix(gateway): never journal a created event for session adoption

* fix(gateway): keep post-create work on adoption while gating the created event

* fix(sessions): restore trusted ensure-main provenance and stamp navigation parent at spawn

* fix(sessions): allow parentSessionKey through the direct child spawn patch

* fix(ci): break type cycles, satisfy export scan, regenerate Swift protocol models

* refactor(sessions): replace createdBy with createdActor

* fix(protocol): export session row type

* fix(sessions): preserve proven creation provenance

* fix(sessions): close lineage creation gaps

* test(sessions): align atomic spawn lineage coverage

* test(sessions): widen transcript search reconcile wait

* fix(sessions): stamp reset-created rows

* test(sessions): keep reset provenance coverage focused

* fix(sessions): journal chat-created rows

* test(ci): anchor release skill reads to repo

* test(ci): avoid cached module paths
2026-07-22 22:54:31 -04: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
Dallin Romney
14654922d4 fix(release): support frozen gateway stop commands (#112582)
* fix(release): support frozen gateway stop commands

* fix(release): import gateway stop capability helper

* fix(release): fail closed on gateway stop capability probe
2026-07-22 18:00:37 -07:00
Peter Steinberger
62c148d7d0 refactor(e2e): remove stale proof scripts (#112776) 2026-07-22 15:31:36 -07:00
Peter Steinberger
e194979830 test: table-drive policy guard cases (#112759) 2026-07-22 14:38:26 -07:00
Peter Steinberger
a220cc00bd test: table-drive database-first guard cases (#112757) 2026-07-22 14:23:51 -07: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
Peter Steinberger
6f29fc88e9 refactor(sessions): migrate pure readers to read-only session accessors (#112568)
* refactor(sessions): migrate pure readers to read-only session accessors

* test(sessions): teach mocks and declarations the read-only accessors

* test(sessions): align remaining harnesses with read-only accessors
2026-07-22 01:16:35 -07:00
Dallin Romney
eab05ddffb fix(qa): preserve partial maturity evidence (#112569) 2026-07-22 16:54:36 +09:00
Dallin Romney
132d91e427 refactor(qa): make taxonomy coverage ids unique (#110280) 2026-07-22 16:28:44 +09:00
Peter Steinberger
f2a3371656 test(ui): isolate full chat-pane lifecycle tests to fix core-runtime-media-ui flake (#112566)
The core-runtime-media-ui shard runs its ui config non-isolated for speed, but the
full chat-pane lifecycle tests instantiate the pane component, which relies on
chat-thread/chat-message module-level singletons (thread-state map, confirmation
dismisser WeakMap, module-scoped document context-menu listeners) and spies on those
modules. Under the shared non-isolated graph a stateful predecessor file can leave
those modules duplicated, so the pane binds to a different instance than the test's
spy/registry -- producing order-dependent flakes: `removeEventListener`-not-called
teardown assertions or 120s session-lifecycle hangs. Reproduced deterministically on
a Linux Node 24 Testbox (MAX_WORKERS=1); isolating a single file only shifted the
failure to a sibling pane test, so the whole full-pane family shares the fragility.

Route the 7 full-pane lifecycle test files through a new isolated jsdom lane
(vitest.ui-isolated.config.ts, isolate: true) for a fresh module graph; the other
~370 ui tests stay fast and non-isolated. Registered in both shard registries
(ci-node-test-plan.mjs, vitest.test-shards.mjs) and excluded from vitest.ui.config.ts.

Verified on Testbox: the deterministic single-worker media-ui shard goes from failing
to 5182 passed / 0 failed. Test-infrastructure only; no product code changes.
2026-07-22 00:14:33 -07:00
Peter Steinberger
01be7aa609 ci: fail build-artifacts when committed plugin bundles go stale (#112489) 2026-07-21 23:44:48 -07:00
Peter Steinberger
5dafb13614 chore(scripts): end failing oxlint runs with a stable status line (#112532)
* chore(scripts): end failing oxlint runs with a stable status line

A crashed run-oxlint wrapper printed only a stack trace, and a lint
invocation whose output was truncated (cmd | tail -N) read as success —
which recently let a wrapper crash (stale node_modules after a dep-adding
merge) masquerade as a clean lint. Route the CLI entry through a small
wrapper that converts crashes into exit 1 and ends every failing run
with '[oxlint] FAILED (exit N)' as the final line.

* chore(scripts): declare runOxlintCliEntry in the script declaration contract

check-guards verifies .d.mts contracts against .mjs exports and
check-test-types consumes them; the new entry export needed both the
declaration and explicit log-parameter annotations in the test.
2026-07-21 22:53:12 -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
Peter Steinberger
c7dd7b4be2 fix(pr): rebuild stale prep branches after head changes (#112510)
* fix(pr): refresh stale prep branch on head drift

* fix(ci): repair PR landing gate failures
2026-07-21 21:57:56 -07:00
Peter Steinberger
edecdbd05e refactor(config): config-surface reduction tranche 3 — product consolidations (review request) (#111527)
* refactor(config): consolidate media model lists

* refactor(config): unify memory configuration

* refactor(config): consolidate TTS ownership

* refactor(config): move typing policy to agents

* refactor(config): retire product-level config surfaces

* refactor(config): share scoped tool policy type

* chore(config): refresh generated baselines

* fix(config): honor agent typing overrides

* fix(config): migrate sibling config consumers

* refactor(infra): keep base64url decoder private

* fix(config): strip invalid legacy TTS values

* chore(config): refresh rebased baseline hash

* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move

* refactor(config): polish final layout names

* refactor(config): freeze retired tuning defaults

* feat(config): add fast mode default symmetry

* refactor(config): key agent entries by id

* docs(config): update final layout reference

* test(config): cover final layout migrations

* chore(config): refresh final layout baselines

* fix(config): align final layout runtime readers

* fix(config): align remaining readers

* fix(config): stabilize final layout migrations

* fix(config): finalize config projection proof

* fix(config): address final layout review

* docs(release): preserve historical config names

* fix(config): complete keyed agent migration

* fix(config): close final migration gaps

* fix(config): finish full-branch review

* fix(config): complete runtime secret detection

* fix(config): close final review findings

* fix(config): finish canonical docs and heartbeat migration

* fix(config): integrate latest main after rebase

* refactor(env): isolate test-only controls

* refactor(env): isolate build and development controls

* refactor(env): collapse process identity indirection

* refactor(env): remove duplicate config and temp aliases

* docs(env): define the operator-facing allowlist

* ci(env): ratchet production variable count

* fix(env): remove stale provider helper import

* fix(env): make ratchet sorting explicit

* test(env): keep test seam in dead-code audit

* test(env): cover ratchet growth and boundary; document surface budgets

* docs(config): document tier-eval consolidations

* docs(config): clarify speech preference ownership

* test(memory): align retired tuning fixtures

* refactor(memory): freeze engine heuristics

* refactor(config): apply tier-eval tranche

* refactor(tts): move persona shaping to providers

* refactor(compaction): move prompt policy to providers

* test(config): align hookified prompt fixtures

* chore(deadcode): classify test-only exports

* chore(github): remove unused spawn helper

* chore(deadcode): classify queue diagnostics

* chore(deadcode): remove unused lane snapshot export

* chore(plugin-sdk): ratchet consolidated surface

* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07: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
joshavant
a69ebf3067 fix(ios): keep snapshot results outside upload tree 2026-07-21 13:44:11 -05:00
joshavant
12515ad182 fix(ios): harden App Store release flow 2026-07-21 13:44:11 -05:00
Peter Steinberger
4586ae36ae fix(gateway): keep fresh-state startup responsive with prepared runtimes (#112262)
* fix(gateway): keep health responsive during model runtime startup

* refactor(agents): isolate prepared runtime startup mode

* refactor(agents): keep prepared runtime catalog mode internal
2026-07-21 06:18:27 -07:00
Vincent Koc
a11b13622a test(i18n): require localized compact token suffixes 2026-07-21 20:54:26 +08:00
Vincent Koc
fd31e53bd9 test(i18n): cover shared macOS chat strings 2026-07-21 20:14:39 +08:00
Peter Steinberger
48828c38a1 fix(release): honor frozen AI package exports (#112258) 2026-07-21 04:20:04 -07:00
Vincent Koc
dc1abfb4a6 test(i18n): cover generated Wear lint attributes 2026-07-21 18:42:12 +08:00
Vincent Koc
60cb53233b ci(i18n): publish Wear locale artifacts 2026-07-21 17:36:49 +08:00
Vincent Koc
c6c1151c3a build(i18n): generate Wear locale resources 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
Peter Steinberger
262deec72c feat(mobile): session Dashboard on iOS and Android via authenticated Control UI webview (#112163)
* feat(mobile): session dashboard screens on iOS and Android via authenticated Control UI webview

* fix(android): keep configured Control UI base path in session dashboard URL

* docs(android): note system-trust boundary of the shared Control UI webview

* fix(android): origin-only document-start rule for Control UI auth script

* chore(i18n): refresh native inventory on rebased head

* fix(ios): swiftlint closure form in session dashboard toolbar

* fix(i18n): tolerate workflow-owned pending native rows in PR alignment checks

* fix(android): KTX toUri per lint and refresh native inventory

* fix(android): ktlint import order incl. main-inherited fleet test, refresh inventory
2026-07-21 01:13:23 -07:00
Dallin Romney
33f5c0bbb2 fix(ci): forward live QA credentials to maturity generation (#112201) 2026-07-21 16:57:39 +09:00
Vincent Koc
9e0c5f94b5 fix(macos): support background-only launches (#112168)
* fix(macos): support background-only launches

* fix(macos): refresh native i18n inventory

* fix(i18n): refresh native inventory after main sync
2026-07-21 15:41:49 +08:00
Peter Steinberger
e1ff65fb77 chore(cli): drop dead classifiers and single-use wrappers left by fallback removal (#112191)
Follow-up to c5254f13ee (#112074): delete the legacy string-match timeout
classifier (the CLI path only sees typed GatewayTransportError from
callGateway's wrapper timer), the duplicate JSON/blank-message validation
in the private gateway command, the now-pointless getGatewayDispatchConfig
wrapper, the single-use embedded-loader alias, and the cross-os release
guard for the EMBEDDED FALLBACK marker no build can emit anymore.
2026-07-21 00:21:15 -07:00
Vincent Koc
1d28128c20 chore(ci): audit dependency fingerprint exports (#112190) 2026-07-21 15:18:09 +08:00