* Bound every pull request CI job with timeout-minutes
* ci: bound the PR-triggered jobs added since #28784 with timeout-minutes
Sized from recent run times: containers 1.2 min max, mac-native-owner-smoke 5.5,
contract 1.2. Secret scan (1.8 max) and mobile_web_app (5.4 max) get roomier limits.
* ci: check PR job time limits in code_paths so workflow-only PRs are covered
A PR that changes only mobile.yml or cloud-verify.yml skips the root unit
shards, so the timeout test never ran for it. Run the check from code_paths,
which runs on every PR, as check-required-pr-context already does.
* ci: use a uniform 3h ceiling on newly bounded PR jobs to stop runaway jobs
The goal is only to stop jobs that would otherwise run to GitHub's 6h
default, not to tune per-job limits. The guard keeps requiring a limit
below 360 minutes on every PR job but no longer enforces a lower value.
---------
Co-authored-by: Kelvin Amoaba <97001695+AmoabaKelvin@users.noreply.github.com>
Co-authored-by: Neil <neil@stably.ai>
* perf(ci): share release JavaScript across packaging hosts
* fix(ci): verify the projected web entry in release archives
* fix(ci): use the Windows system archive tool for release bundles
* test(ci): retain stylesheet evidence in release build comparisons
* test(ci): verify release parity across native color rounding
* test(ci): normalize manifest asset references without changing import order
* test(ci): compare portable outputs across Windows text and color formatting
* test(ci): preserve module identity across dependent asset hashes
* fix(ci): keep SVG build inputs identical across release hosts
* fix(ci): stabilize compiler inputs and projected web bindings
* fix(ci): retain vendor minification in projected web output
* test(ci): normalize platform-specific pnpm manifest source paths
* fix(packaging): exclude shared build staging from application files
* test: align thinking-state fixtures with the current source shape
* test(mobile): reuse message fixtures within the line limit