Sally O'Malley and GitHub
cb0bbcb177
fix: update debugging skill file references ( #111474 )
2026-07-19 15:59:01 -04:00
Peter Steinberger and GitHub
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 and GitHub
cb5070101e
fix: bound live updater gateway probes ( #110509 )
2026-07-18 08:16:05 +01:00
Peter Steinberger and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
ccbbd8b08c
fix(autoreview): sync config token fixture ( #109182 )
2026-07-16 09:44:42 -07:00
Peter Steinberger and GitHub
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 Steinberger and GitHub
bae9752c5a
refactor(deadcode): enforce repository hard zero ( #108641 )
2026-07-15 22:40:00 -07:00
Dallin Romney and GitHub
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 Romney and GitHub
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 Koc and Peter Steinberger
01b0989353
fix(release): allow shipped ledger metadata references
2026-07-15 05:03:43 +01:00
Peter Steinberger and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
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 Koc and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
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 Koc and GitHub
6a0eecdb44
fix(release): separate code and release SHA validation ( #105948 )
2026-07-13 13:38:19 +08:00
Peter Steinberger and GitHub
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 Koc and GitHub
9b7f828d01
chore(skills): sync canonical autoreview ( #105250 )
2026-07-12 17:37:15 +08:00
Peter Steinberger and GitHub
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 Koc and Vincent Koc
86af5f08b3
fix(release): support explicit provenance overrides
2026-07-12 16:12:23 +08:00
Peter Steinberger and GitHub
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 Koc and Vincent Koc
dc6b447c07
fix(release): verify named backport provenance
2026-07-12 13:12:30 +08:00
Peter Steinberger and GitHub
2263272a32
fix(updater): build snapshot control client safely ( #104964 )
2026-07-11 22:02:50 -07:00
Peter Steinberger and GitHub
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 Koc and Vincent Koc
e4a9398396
fix(release): allow generated ledger repair
2026-07-12 12:08:10 +08:00
Vincent Koc and Vincent Koc
b1cda07878
fix(release): preserve original PRs for named backports
2026-07-12 12:08:10 +08:00
Peter Steinberger and GitHub
3fe61030be
fix: rebuild mac app for generated protocol changes ( #104839 )
2026-07-11 18:00:42 -07:00
Peter Steinberger and GitHub
0fbd28476e
fix: fence live updater maintenance ( #104802 )
2026-07-11 17:05:35 -07:00
Vincent Koc and GitHub
fd9f84ffdc
chore(autoreview): align canonical skill ( #104701 )
2026-07-12 05:00:26 +08:00
Peter Steinberger and GitHub
43c40a3b3e
fix: recover delayed live Mac bundle restores ( #104613 )
2026-07-11 11:18:39 -07:00
Vincent Koc and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
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 Steinberger and GitHub
c702719eda
fix: preserve Mac bundle during live builds ( #104376 )
2026-07-11 03:06:50 -07:00
Peter Steinberger and GitHub
14a056ac83
fix: stop Gateway without source rebuild ( #104357 )
2026-07-11 02:45:07 -07:00
Peter Steinberger and GitHub
107b95e1ad
fix: isolate Gateway from live builds ( #104329 )
2026-07-11 02:02:28 -07:00
Peter Steinberger and GitHub
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 Steinberger and GitHub
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