Peter Steinberger
067635cb51
fix(ui): prevent generated locale rebase conflicts ( #109393 )
...
* ci(ui): make locale refresh bot-owned
* test(ui): keep locale gate coverage scoped
* fix(ci): preserve generated PR merge policy
* fix(ci): wait for generated PR head convergence
* fix(ci): retry transient guard API failures
* fix(ci): enforce locale isolation across CI events
* fix(ci): harden generated PR publication
* fix(ci): validate release gate merge tree
* fix(ci): allow trusted main locale output
2026-07-16 18:48:20 -07:00
Peter Steinberger
b78cf56349
improve(ci): persist warm Vitest and Node caches ( #109425 )
...
* perf(ci): harden persistent test caches
* ci: document trusted cache cleanup trigger
* ci: harden composite cache inputs
* perf(ci): isolate Node build bytecode cache
2026-07-16 17:22:28 -07:00
Peter Steinberger
7bf5c772be
improve: reuse Vitest transform cache across CI runs ( #109330 )
...
* ci: persist Vitest transform cache
* fix(ci): declare Vitest cache helpers
* fix(ci): serialize Vitest cache snapshots
2026-07-16 14:15:17 -07:00
Dallin Romney
c4b2183db6
fix(release): repair frozen validation compatibility ( #109272 )
2026-07-16 11:45:31 -07:00
Peter Steinberger
21b08f34b7
perf(ci): run the deadcode Knip scans concurrently ( #109151 )
...
* perf(ci): run the deadcode Knip scans concurrently
check-dependencies spent ~194s running seven Knip child processes
strictly serially (three package scripts, each iterating its scans).
The scans are independent processes over separate configs: both
deadcode scripts now Promise.all their scans, the CI task launches the
three package scripts concurrently with buffered logs, and the lane
moves to the 16 vCPU class for core/memory headroom. The
missing-exports-script contract violation now fails fast before
launching scans. Local: unused-files 218% CPU, 37s wall.
* test(ci): align prerelease plan with the 16 vCPU dependencies lane
2026-07-16 10:46:44 -07:00
Peter Steinberger
037ef6695a
fix(ci): bound actionlint downloads ( #108938 )
2026-07-16 04:24:26 -07:00
Peter Steinberger
d739daef10
fix(ci): handle Android license pipe closure
2026-07-16 12:12:18 +01:00
Peter Steinberger
e0ffbd90d9
fix(ci): isolate bounded metadata retries ( #108804 )
...
* fix(ci): bound Mantis runner IP retries
* fix(e2e): isolate Windows metadata retries
* fix(ci): validate complete runner IPv4
Co-authored-by: Alix-007 <li.long15@xydigit.com >
---------
Co-authored-by: Alix-007 <li.long15@xydigit.com >
2026-07-16 03:39:31 -07:00
Peter Steinberger
b6b8e59b9e
refactor(ci): share Android toolchain setup ( #108855 )
...
* refactor(ci): share Android toolchain setup
* fix(ci): preserve frozen Android targets
2026-07-16 03:38:31 -07:00
Peter Steinberger
76a236da5f
fix(ci): harden release validation gates ( #108798 )
...
* fix(ci): harden release validation gates
* fix(apns): keep tombstones in strict SQLite schema
* fix(ci): isolate PR publication transport
2026-07-16 03:21:08 -07:00
Alix-007
47dd90c5ea
fix(ci): bound Android SDK downloads ( #108723 )
2026-07-16 02:12:07 -07:00
Alix-007
5cd9243465
fix(ci): bound Windows Testbox phone-home requests ( #108755 )
2026-07-16 01:57:53 -07:00
Alix-007
ea3ac194f4
fix(ci): bound Mantis runner IP discovery ( #108699 )
2026-07-16 01:50:22 -07:00
Alix-007
e0394c2ab4
fix(ci): bound native tool downloads ( #108685 )
...
* fix(ci): bound native tool downloads
* fix(ci): bound historical SwiftFormat downloads
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 01:44:30 -07:00
Peter Steinberger
a7d5386896
improve: speed up ring-zero QA smoke ( #108694 )
...
* ci: speed up ring-zero QA smoke
* ci: scope QA sticky cache to Docker lane
* ci: keep QA dependency setup on actions cache
* test: restore modern Docker QA proof
2026-07-16 01:12:40 -07:00
Alix-007
3912cf38b9
fix(ci): bound workflow ShellCheck download ( #108672 )
2026-07-16 00:56:27 -07:00
Sash Zats
0960d07d8e
ci: gate PR edit automation by changed field ( #95010 )
...
* ci: gate PR edit automation by changed field
* ci: include title edits in ClawSweeper dispatch gate
* ci: refine PR edit automation gates
Co-authored-by: Sash Zats <sash@zats.io >
* test(ci): require boolean workflow matcher
Co-authored-by: Sash Zats <sash@zats.io >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 00:42:14 -07:00
Peter Steinberger
a6125b7868
perf(ci): split QA smoke into four profile parts and time tsdown invocations ( #108638 )
2026-07-15 22:41:02 -07:00
Peter Steinberger
6252f9b1f7
improve(ci): speed warm Node shards with sticky bind mount ( #108386 )
...
* perf(ci): bind sticky dependency disk into test shards
* chore(ci): restore workflow guard coverage
* perf(ci): skip pnpm install on exact sticky hits
* fix(ci): require stock layout for sticky dependencies
* perf(ci): bypass pnpm for test shard launches
* fix(ci): declare direct shard runner command
* fix(ci): bypass pnpm in warm shard builds
* fix(ci): invalidate sticky deps on pnpm config
* ci: document sticky failure guard
2026-07-15 15:41:24 -07:00
Peter Steinberger
4c667aac88
fix(release): harden frozen target validation ( #108296 )
...
* fix(release): harden frozen scenario planning
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): omit unsupported scenario-only lanes
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): fail closed on malformed target scenarios
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): report unsupported frozen lanes
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): defer frozen survivor inspection
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): report partial survivor omissions
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(ci): fetch shard fallback from workflow commit
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): gate frozen scenario omissions
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* test(release): auto-clean frozen target temp dirs
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(ci): satisfy frozen validation workflow lint
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
---------
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
2026-07-15 06:31:07 -07:00
Dallin Romney
043e4d1ec4
fix(release): validate frozen targets with current workflows ( #108189 )
...
* fix(release): support frozen validation targets
* fix(release): filter frozen-target upgrade scenarios
2026-07-15 04:28:17 -07:00
Peter Steinberger
57761ebe8c
perf(ci): balance node test shards and gate heavy CI lanes by changed scope ( #108091 )
2026-07-15 01:16:47 -07:00
Peter Steinberger
2e73cff6ca
fix(maint): keep PR maintenance delta-only ( #108018 )
...
* fix(maint): keep fork prep sync delta-only
* fix(ci): use exact merge parent for PR diffs
* fix(ci): pass docs diff base through environment
* test(ci): cover environment-mediated docs base
2026-07-14 22:49:33 -07:00
Peter Steinberger
202b04925c
fix(ci): fetch exact PR base before history ( #107674 )
2026-07-14 10:12:40 -07:00
Peter Steinberger
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
47d37804a8
improve(ui): catch i18n catalog drift locally ( #107253 )
...
* ci(ui): verify i18n catalogs locally
* fix(ui): preserve scoped i18n sync errors
* refactor(ui): share i18n raw-copy verifier
* test(ui): cover i18n lint gate
* fix(ui): route lint threads to oxlint
2026-07-14 01:12:36 -07:00
Peter Steinberger
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
606e2f5dba
fix(ci): stop unrelated main updates from forcing PR rebases ( #107050 )
...
* fix(ci): stop unrelated main updates from forcing PR rebases
* docs(ci): document reusable aggregate proof
* docs(ci): clarify immutable gate success
* chore(ci): refresh stalled PR head
2026-07-14 00:01:01 -07:00
Peter Steinberger
df5097b6e7
fix(native): keep platform validation warning-free ( #107101 )
...
* build(android): keep Gradle warning-free
* ci(native): pin XcodeGen tooling
* test(macos): avoid concurrency warnings
2026-07-13 22:33:12 -07:00
Peter Steinberger
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
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
Peter Steinberger
4b6575636f
fix(ci): finalize control UI locale artifacts
2026-07-13 12:12:51 +01:00
Peter Steinberger
e2ed58efec
fix(ci): publish native generated locales
2026-07-13 11:41:15 +01:00
Peter Steinberger
b1ce84b079
ci: reduce Blacksmith registrations for pull requests ( #106146 )
2026-07-13 01:32:25 -07:00
Peter Steinberger
0ab7e2569b
fix(ci): preserve pinned manual checkout
2026-07-13 03:42:26 -04:00
Vincent Koc
f33ab243cf
fix(sqlite): reject runtimes vulnerable to WAL corruption ( #106065 )
...
* fix(sqlite): require WAL-reset-safe Node runtime
* docs(sqlite): document safe Node runtime floor
* fix(sqlite): defer runtime library validation until use
* fix(ci): align startup memory with Node 24.15
2026-07-13 13:59:00 +08:00
Peter Steinberger
dce8eed0b9
ci(deadcode): restore enforced unused-export ratchet ( #105826 )
...
* ci(deadcode): restore export ratchet
* chore(deadcode): refresh export baseline
* refactor(sessions): remove obsolete patch writer
* refactor(deadcode): classify current export residue
* fix(deadcode): preserve exported signature types
* chore(deadcode): sync export baseline after rebase
* chore(deadcode): classify pairing test exports
* fix(ci): refresh plugin SDK declaration budget
2026-07-12 19:58:38 -07:00
Vincent Koc
2c06dfdd2f
fix(ci): keep unused exports advisory ( #105704 )
...
* fix(ci): preserve frozen deadcode contracts
* fix(ci): keep unused exports advisory
2026-07-13 05:47:05 +08:00
Peter Steinberger
22f183f8cb
ci: isolate legacy QA smoke invocations ( #105340 )
...
* ci: isolate legacy QA smoke invocations
* docs(agents): record PR review recommendation
2026-07-12 12:52:31 +01:00
Peter Steinberger
a20314d6cc
ci: preserve frozen Android build contract ( #105299 )
2026-07-12 11:48:02 +01:00
Peter Steinberger
7bb59c4511
ci: pin release validation Go toolchain ( #105270 )
2026-07-12 11:02:04 +01:00
Peter Steinberger
265ca345a1
ci: pin frozen iOS formatter ( #105242 )
...
* ci: pin frozen iOS formatter
* docs: clarify release CI dispatch
* ci: preserve frozen iOS formatter path
* style: format CI workflow guard
2026-07-12 10:49:26 +01:00
Peter Steinberger
e0f45bfbf0
feat(tooling): enforce indexed access checks in root tests ( #105223 )
...
* feat(tooling): enforce indexed access checks in root tests
* style(tooling): clarify scoped package guard
2026-07-12 10:42:07 +01:00
Peter Steinberger
d79373fa14
ci: bound legacy QA smoke compatibility ( #105213 )
2026-07-12 10:15:33 +01:00
Peter Steinberger
acc57e4145
ci: isolate frozen Control UI tests ( #105208 )
2026-07-12 10:06:23 +01:00
Peter Steinberger
91ca35ba58
ci: make locale parity advisory before release ( #105140 )
2026-07-12 09:11:57 +01:00
Peter Steinberger
096cb91175
feat(tooling): enforce noUncheckedIndexedAccess in core and ui lanes (NUIA phase 3c) ( #104981 )
...
* fix(ui): make indexed access explicit across the Control UI
Burns down all 322 ui-lane noUncheckedIndexedAccess errors: untrusted
markdown/diff/patch parsing gets miss-tolerant guards (renderer rules
degrade to empty output instead of throwing mid-render), accumulators
use canonical sparse initialization, DOM lookups stay null-guarded, and
length-checked constructions carry named invariants.
* feat(tooling): enforce noUncheckedIndexedAccess in the core and ui lanes
Flips the flag on for tsconfig.core.json and tsconfig.ui.json (covering
src, all packages including the two deferred ones, and ui) and retires
the strict-ratchet lane wholesale: config, script, projects reference,
check/CI wiring, changed-lane routing, and sync test. The assertion-ban
oxlint override stays as an independent surface.
2026-07-12 06:36:36 +01:00
Peter Steinberger
176647aa84
ci: gate frozen QA smoke by capability ( #105006 )
2026-07-12 06:32:26 +01:00
Peter Steinberger
b163dbb97d
ci: harden current and frozen release checks ( #104956 )
...
* test(qa): wait for complete process pid fixture
* style(qa): format pid readiness predicate
* test(sqlite): allow schema version pragma
* ci: install target playwright for frozen UI checks
2026-07-11 22:08:49 -07:00
Peter Steinberger
a79554c281
ci: bound QA smoke profile runtime ( #104909 )
2026-07-11 20:41:18 -07:00