509 Commits
Author SHA1 Message Date
Sally O'MalleyandGitHub cb0bbcb177 fix: update debugging skill file references (#111474) 2026-07-19 15:59:01 -04:00
Peter SteinbergerandGitHub 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 SteinbergerandGitHub cb5070101e fix: bound live updater gateway probes (#110509) 2026-07-18 08:16:05 +01:00
Peter SteinbergerandGitHub 8c17d20cd9 improve(ci): preserve complete main validation during merge bursts (#110298)
* ci: serialize main and bound sticky caches

* fix(ci): pin cache warmer to validated SHA

* fix(ci): read current sticky retirement manifest
2026-07-18 03:27:54 +01:00
Peter SteinbergerandGitHub 51fa35c94d test: fix three pid/signal races behind CI flakes (batch 3) (#109877)
A. check-extension-package-tsc-boundary "force-kills aborted async node
step process groups" (run 29568640449): two mechanisms behind the
expected-false-to-be-true at the child-alive assertion.
- Pid-file existence polls can observe writeFileSync's open-truncate
  0-byte window, parse NaN, and process.kill(NaN, 0) throws, so
  isProcessAlive reads false (the #109140 class, same as tsdown-build's
  b1e6c6883b). Added waitForPidFile (poll until content parses to a
  positive pid) and applied it to all three pid-read sites in the file.
- The fail-fast step exited on a 150ms fuse after the sibling's pid file
  appeared, racing the test's aliveness assertion: a worker descheduled
  >150ms observes the abort chain's SIGKILL first. The step now exits
  only after the test writes abort.ack, which happens strictly after the
  assertion (event-driven; the step's 5s timeout bounds a wedged run).
  Forced proof: injecting a 300ms stall between pid-file wait and the
  assertion reproduced the exact CI failure, and passed post-fix with
  the same stall in place.

B. telegram-user-crabbox-proof "stops Crabbox recording when the desktop
probe fails" (waitFor timeout on recorder.term): the fake recorder
published its pid file before installing its SIGTERM handler. The probe
throws as soon as the pid file exists and recordProbeVideo SIGTERMs the
recorder in its finally, so a recorder preempted between publish and
process.on dies to the default disposition and never writes
recorder.term. Handler now arms before the pid publish. Forced proof: a
100ms spin between publish and process.on reproduced the exact CI
failure deterministically; moving the spin after the reordered handler
passes. Applied the same handler-before-readiness ordering to the three
sibling fakes in the file, and made the gateway-grandchild pid read
parse-validated inside its poll (a NaN pid skipped both the dead-check
and the finally SIGKILL cleanup, leaking the grandchild).

C. openclaw-live-updater "treats an owner file creation race as a normal
overlap" (run 29569279237): prod bug in acquireMaintenanceLock. Only
ENOENT got the bounded creation-window retry; a reader hitting the
racing writer's open-truncate window read an empty owner.json, JSON.parse
threw SyntaxError, and the script escalated to invalid_lock instead of
overlap. Any owner read/parse failure now re-reads within the same
bounded budget before declaring the lock invalid. New regression test
freezes the window (pre-created empty owner.json, delayed writer):
fails with the exact CI error pre-fix, passes post-fix.

Proof: focused runs green; 10x per-file stress at
OPENCLAW_VITEST_MAX_WORKERS=6 green for all three files (30/30).
2026-07-17 11:01:38 +01:00
Peter SteinbergerandGitHub ccbbd8b08c fix(autoreview): sync config token fixture (#109182) 2026-07-16 09:44:42 -07:00
Peter SteinbergerandGitHub e291b8ccc9 chore(skills): sync autoreview fixture handling (#109102) 2026-07-16 08:28:05 -07:00
Peter Steinberger f3fcea0cde fix(release): filter unresolved PR title references 2026-07-16 15:53:00 +01:00
Peter SteinbergerandGitHub bae9752c5a refactor(deadcode): enforce repository hard zero (#108641) 2026-07-15 22:40:00 -07:00
Dallin RomneyandGitHub 6c4e76ea8b ci(qa): reuse Matrix live workflow for releases (#103604)
* ci(qa): reuse Matrix live workflow for releases

* docs(testing): restore Tailscale isolation flag

* fix(ci): make Matrix artifact names ref-safe

* test(ci): type Matrix workflow profiles

* style(testing): format Tailscale isolation guidance
2026-07-15 01:48:59 -07:00
Peter Steinberger 1fe3a5f557 fix(skills): shorten Testbox SSH socket paths 2026-07-15 08:52:05 +01:00
Dallin RomneyandGitHub c421a3b2e6 feat: add reusable Parallels Windows test setup (#107881)
* test: route Parallels Windows setup

* test: own Parallels Windows baseline setup

* docs: point Windows proof to Parallels sidecar
2026-07-14 23:15:57 -07:00
Vincent KocandPeter Steinberger 01b0989353 fix(release): allow shipped ledger metadata references 2026-07-15 05:03:43 +01:00
Peter SteinbergerandGitHub ca9bbf6ee0 refactor: split embedded agent runner orchestration (#107900)
* chore(skills): sync autoreview security scanner

* refactor(agents): split embedded runner orchestration

* test(agents): verify timeout media recovery

* fix(agents): handle missing timeout assistant text

* fix(autoreview): restrict quoted credential keys
2026-07-14 18:38:55 -07:00
Peter SteinbergerandGitHub 623ec0f369 improve(qa-matrix): split E2EE runtime and protect recovery keys (#107828)
* fix(autoreview): handle verified QA source references

* refactor(qa-matrix): split E2EE scenario runtime

* style(qa-matrix): format recovery scenario

* chore(qa-matrix): prune split runtime baseline

* chore: keep release note in PR
2026-07-14 16:13:41 -07:00
Peter SteinbergerandGitHub 96eaf2be80 fix: restore recent native, browser, and audio behavior (#107631)
* fix: repair recent landed regressions

* chore: keep release changelog owned

* test(macos): align CLI fixtures with Node floor

* fix(macos): document Node runtime floor contract

* style(auto-reply): restore runtime mode formatting
2026-07-14 10:47:33 -07:00
Peter SteinbergerandGitHub f81f9d8570 chore: enforce max-lines suppression ratchet (#107315)
* ci: enforce max-lines suppression ratchet

* chore: prune stale max-lines suppression

* fix: close max-lines ratchet enforcement gaps

* fix: harden max-lines ratchet checks

* fix(ci): satisfy max-lines ratchet checks

* style: format max-lines declarations

* fix(ci): match oxlint suppression grammar

* test: isolate max-lines git fixtures

* chore: prune resolved max-lines debt

* test: skip newline path fixture on Windows

* fix: harden max-lines suppression ratchet

* chore: refresh max-lines baseline

* fix: close max-lines ratchet bypasses

* fix: derive ratchet base from PR merge tree

* fix: support older Git in staged ratchet

* fix: align max-lines declarations and baseline

* chore: refresh max-lines baseline for current main

* fix: exclude generated wizard locales from max-lines

* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger a2790f10af fix(release): recover vanished PR ledger entries 2026-07-14 12:45:31 +01:00
Peter SteinbergerandGitHub f4b7a19624 fix: avoid remote boxes for focused validation (#107166)
* fix: avoid remote boxes for focused validation

* fix: preserve explicit remote proof routing

* fix: delegate when local diff refs are unavailable
2026-07-14 00:53:17 -07:00
Peter SteinbergerandGitHub 6958e4c969 chore(skills): support large autoreview diffs (#106970)
* chore(skills): sync large-diff autoreview

* fix(skills): state source-blind review limits
2026-07-13 19:25:04 -07:00
568e4d95e7 fix(release): keep verifier output valid and deterministic (#106953)
* fix(release): validate changelog before atomic write

* fix(release): defer optional provenance main lookup

* fix(release): suppress overridden release PR subjects

* fix(release): satisfy verifier lint

* test(release): declare verifier suppression helper

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-13 19:25:01 -07:00
Vincent KocandGitHub 85cf09a3e1 docs(release): bound release recovery loops (#106852)
* docs(release): keep release work scoped

* style(release): format workflow test
2026-07-14 06:44:23 +08:00
Peter SteinbergerandGitHub 70833dab7f ci: scope PR Node tests to changed targets (#106633)
* ci: scope PR Node tests to changed targets

* ci: bound targeted Node test plans

* test: cover changed path manifest input

* fix(ui): preserve model providers lazy boundary

* ci: cover public SDK re-export consumers

* ci: reject unresolved changed test targets

* ci: cover public SDK wrapper imports

* ci: preserve global checks in targeted plans

* docs(ci): clarify targeted boundary coverage

* test(plugins): declare computed runtime dependencies
2026-07-13 15:26:02 -07:00
Peter SteinbergerandGitHub 260a5c6e2b docs(triage): verify maintainer access before surfacing PRs (#106507)
* docs(triage): verify maintainer access

* docs(triage): suppress mmaps PRs
2026-07-13 08:43:45 -07:00
Peter SteinbergerandGitHub 458746e1c2 chore(ci): enforce changed-file TypeScript LOC ratchet (#106387)
* ci: enforce changed-file TypeScript LOC ratchet

* ci: derive release-gate LOC base from PR

* test(ci): exclude repository test helpers from LOC ratchet

* ci: validate LOC ratchet on PR merge tree

* style: format release maintainer skill

* ci: run LOC ratchet for fast-only changes

* fix(ci): harden LOC ratchet comparisons

* fix(ci): cover native TypeScript in LOC ratchet

* fix(ci): compare LOC against tested merge tree

* test(ci): cover LOC manifest routing
2026-07-13 07:20:32 -07:00
Vincent KocandGitHub 6a0eecdb44 fix(release): separate code and release SHA validation (#105948) 2026-07-13 13:38:19 +08:00
Peter SteinbergerandGitHub f4659b7d4d fix(updater): scope restart log audits to managed checkout (#105030)
* fix(updater): scope restart log audits

* test(updater): declare log source argument

* fix(updater): preserve configured plugin logs

* fix(updater): normalize plugin log sources

* fix(updater): reuse managed plugin config

* fix(updater): resolve relative plugin roots

* fix(updater): handle unset gateway workdir

* fix(updater): audit effective plugin roots

* fix(updater): bind logs to managed runtime

* fix(updater): canonicalize log source roots
2026-07-12 11:21:00 +01:00
Vincent KocandGitHub 9b7f828d01 chore(skills): sync canonical autoreview (#105250) 2026-07-12 17:37:15 +08:00
Peter SteinbergerandGitHub 68553bed84 fix: live updater survives launchd teardown and retargets wrapped gateways (#105022)
* fix(updater): tolerate launchd teardown and replace plist args safely

* test(updater): declare plist argument helper
2026-07-12 09:35:53 +01:00
Vincent KocandVincent Koc 86af5f08b3 fix(release): support explicit provenance overrides 2026-07-12 16:12:23 +08:00
Peter SteinbergerandGitHub 23d4e48172 fix: harden live updater snapshot recovery (#105007)
* fix(updater): harden snapshot recovery

* fix(updater): avoid snapshot code execution
2026-07-12 06:29:41 +01:00
Vincent KocandVincent Koc dc6b447c07 fix(release): verify named backport provenance 2026-07-12 13:12:30 +08:00
Peter SteinbergerandGitHub 2263272a32 fix(updater): build snapshot control client safely (#104964) 2026-07-11 22:02:50 -07:00
Peter SteinbergerandGitHub f802a6f8bc fix: update managed macOS Gateways from runtime snapshots (#104946)
* fix(updater): migrate validated gateway snapshots

* test(updater): declare snapshot maintenance helpers
2026-07-11 21:20:08 -07:00
Vincent KocandVincent Koc e4a9398396 fix(release): allow generated ledger repair 2026-07-12 12:08:10 +08:00
Vincent KocandVincent Koc b1cda07878 fix(release): preserve original PRs for named backports 2026-07-12 12:08:10 +08:00
Peter SteinbergerandGitHub 3fe61030be fix: rebuild mac app for generated protocol changes (#104839) 2026-07-11 18:00:42 -07:00
Peter SteinbergerandGitHub 0fbd28476e fix: fence live updater maintenance (#104802) 2026-07-11 17:05:35 -07:00
Vincent KocandGitHub fd9f84ffdc chore(autoreview): align canonical skill (#104701) 2026-07-12 05:00:26 +08:00
Peter SteinbergerandGitHub 43c40a3b3e fix: recover delayed live Mac bundle restores (#104613) 2026-07-11 11:18:39 -07:00
Vincent KocandGitHub b3136854f0 chore(autoreview): align org review defaults (#104343)
* docs(autoreview): sync canonical review policy

* fix(autoreview): sync isolated review runtime

* test(autoreview): sync hardening coverage

* fix(autoreview): sync final isolation hardening

* test(autoreview): sync final isolation coverage

* fix(autoreview): sync final input hardening

* test(autoreview): sync final hardening coverage

* fix(autoreview): sync reviewer trust hardening

* test(autoreview): sync fallback coverage

* test(autoreview): sync boundary coverage

* docs(autoreview): align runtime contracts

* fix(autoreview): reject unbundled gitlinks

* test(autoreview): cover final trust guards

* feat(autoreview): accept max Codex reasoning
2026-07-11 22:49:50 +08:00
Peter SteinbergerandGitHub 325679a335 fix: reuse built control UI for live Mac updates (#104482)
* fix: reuse built control UI for live Mac updates

* fix: pin live updater Mac build inputs
2026-07-11 06:36:42 -07:00
Peter SteinbergerandGitHub fa77fe10d5 chore: migrate active GPT-5.5 references to GPT-5.6 (#104452)
* chore(models): migrate active GPT-5.5 references

* test(workboard): expect GPT-5.6 Sol default

* chore: keep release notes in PR body

* test(models): align picker fixtures with Sol default

* test: update PDF default model expectation

* test(qa): migrate thinking smoke to Luna

* test(gateway): align mock catalog with Sol default

* ci: retrigger exact-head PR checks

* test(gateway): document default catalog invariant
2026-07-11 06:30:57 -07:00
Peter SteinbergerandGitHub 5e8a534fad fix: retry live Gateway readiness proof (#104374)
* fix: retry live Gateway readiness proof

* style: format live updater readiness helper
2026-07-11 03:11:34 -07:00
Peter SteinbergerandGitHub c702719eda fix: preserve Mac bundle during live builds (#104376) 2026-07-11 03:06:50 -07:00
Peter SteinbergerandGitHub 14a056ac83 fix: stop Gateway without source rebuild (#104357) 2026-07-11 02:45:07 -07:00
Peter SteinbergerandGitHub 107b95e1ad fix: isolate Gateway from live builds (#104329) 2026-07-11 02:02:28 -07:00
Peter SteinbergerandGitHub 2ed2424618 feat: harden live gateway and mac restarts (#104314)
* feat: audit gateway logs after live restarts

* fix: keep mac app running during replacement build
2026-07-11 01:41:27 -07:00
Peter SteinbergerandGitHub 7bf80dc2c6 chore(tooling): enforce formatting and refresh TypeScript checks (#104239)
* chore(tooling): enforce current formatter and refresh checks

* chore(tooling): keep release changelog formatter-owned

* chore(tooling): retain compatible Node type surface

* ci: enforce formatting for docs-only changes

* ci: isolate docs formatter check

* chore(tooling): apply updated lint and format rules

* chore(tooling): satisfy updated switch lint

* style(ui): apply Linux formatter layout

* test(doctor): match quiet local audio contribution

* test(doctor): assert quiet output only

* test(doctor): follow restored information contract
2026-07-11 01:09:51 -07:00
Peter Steinberger ab8da6de1a docs: align PR gate policy 2026-07-11 07:20:53 +01:00