Commit 9221ec8
fix(tooling): raise the re-measure heap ceiling to 6144 and give the job the memory (A1) (#14805)
* chore(tooling): TEMPORARY runner-memory probe for the tsc heap ceiling (#14569)
Reverted before this PR's final diff. `CI_TSC_HEAP_CEILING_MB` may only move
on a reading taken where the verdict is taken -- the `Type Check · debt ledger`
job on `ubuntu-latest` -- and this container cannot download job logs. Check-run
ANNOTATIONS are readable over REST, so the probe emits its readings as
`::notice` workflow commands from that job:
- the runner's MemTotal/MemAvailable/Swap, image, nproc, and the gate process's
own V8 `heap_size_limit` (the runner's default old space);
- what else is resident at the point the re-measure starts (`ps` RSS census);
- the `packages/qa/http-conformance` TEST_DEBT program -- the same generated
project `measureTestDebt` writes -- run with `--extendedDiagnostics` under
`--max-old-space-size=4096` and under `6144`, reporting tsc's own "Memory
used", peak RSS, and the machine's minimum MemAvailable during each run.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV
* Revert "chore(tooling): TEMPORARY runner-memory probe for the tsc heap ceiling (#14569)"
This reverts commit d415f4f.
* docs(tooling): record the runner measurement beside CI_TSC_HEAP_CEILING_MB
The pin's provenance was archaeology through a failed job's GC trace, which
bracketed the runner's old space into [4040, 4148] MB. It is now a first-hand
reading, taken where the verdict is taken -- inside the `Type Check · debt
ledger` job, by a temporary probe step (reverted in the previous commit) that
emitted its numbers as `::notice` annotations:
runner ubuntu24 20260831.293.1, 4 vCPU, MemTotal 16,373,452 kB
(~15.6 GiB) -- not the 7 GB the finding assumed
consumers 153 processes / 940,316 kB (~918 MB); the job's steps are
sequential, so nothing runs beside the re-measure
this gate heap_size_limit 4144 MB with NODE_OPTIONS unset -- the runner's
V8 default, confirming the 4096 MB old space directly
heaviest qa/http-conformance's TEST_DEBT program under two caps:
program 4096 -> 4,077,718K used, 4,212,904 kB peak RSS, 26.84s check
6144 -> 4,420,706K used, 4,545,500 kB peak RSS, 21.90s check
The pair is the headroom reading the finding asked for: 343 MB more heap keeps
343 MB more live and finishes ~5s sooner, so under 4096 the program is paying
GC pressure to fit. The constant does NOT move on it, and the measurement is
why: the scarce resource is V8's default old space (4096 MB), not the runner's
memory, and this number describes that default exactly.
The comment also records what the measurement made mechanically visible --
raising the pin alone cannot deliver a roomier run. `remeasureHeapCeiling`
minimises over the pin and the running process's own limit, so a 6144 pin under
the runner's default still chooses 4144, and the `stale` arm then refuses the
run outright: `--re-measure` exits 1 before the first tsc. Reproduced against a
4144 MB process. Delivering a raise needs the gate PROCESS given the memory
first, which is a workflow decision and is escalated on #14569.
The self-test row for "a box shaped like CI" gains a note that its `+ 48` is
now the measured runner rather than a construction.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV
* fix(tooling): pin the re-measure heap ceiling at 6144 and give the job the memory
Ruling A1 (#14569, 2026-09-03). The 02:25Z ruling A — raise on a recorded
measurement — is completed the only way the measurement allows: the pin and
the process's actual old space move together.
- .github/workflows/lint.yml: the `typecheck-debt` job's re-measure step now
runs under `NODE_OPTIONS: --max-old-space-size=6144`, so the process running
tsc really has the old space the pin describes. V8's default there is
4096 MB, measured on the runner.
- CI_TSC_HEAP_CEILING_MB: 4096 -> 6144, with the runner measurement already
written beside it kept as the evidence.
- Two new `remeasureHeapCeiling` self-test rows pin both directions of the
pairing: the runner as the workflow now starts it (6192 reported, caller cap
tying the pin, chosen ceiling 6144 named as the CI pin), and the same runner
WITHOUT the workflow line (its measured 4144 MB default, refused).
The `stale` arm is untouched and still refuses any pin above the process's own
limit — that refusal is what caught the bare constant raise, and it is what
keeps the two halves inseparable.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 35e94c9 commit 9221ec8
2 files changed
Lines changed: 153 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4808 | 4808 | | |
4809 | 4809 | | |
4810 | 4810 | | |
| 4811 | + | |
| 4812 | + | |
| 4813 | + | |
| 4814 | + | |
| 4815 | + | |
| 4816 | + | |
| 4817 | + | |
| 4818 | + | |
| 4819 | + | |
| 4820 | + | |
| 4821 | + | |
| 4822 | + | |
| 4823 | + | |
| 4824 | + | |
| 4825 | + | |
| 4826 | + | |
| 4827 | + | |
| 4828 | + | |
| 4829 | + | |
| 4830 | + | |
| 4831 | + | |
| 4832 | + | |
| 4833 | + | |
| 4834 | + | |
4811 | 4835 | | |
| 4836 | + | |
| 4837 | + | |
4812 | 4838 | | |
4813 | 4839 | | |
4814 | 4840 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2792 | 2792 | | |
2793 | 2793 | | |
2794 | 2794 | | |
2795 | | - | |
| 2795 | + | |
2796 | 2796 | | |
2797 | 2797 | | |
2798 | 2798 | | |
| |||
2812 | 2812 | | |
2813 | 2813 | | |
2814 | 2814 | | |
2815 | | - | |
2816 | | - | |
2817 | | - | |
2818 | | - | |
| 2815 | + | |
| 2816 | + | |
| 2817 | + | |
| 2818 | + | |
| 2819 | + | |
| 2820 | + | |
| 2821 | + | |
| 2822 | + | |
| 2823 | + | |
| 2824 | + | |
| 2825 | + | |
| 2826 | + | |
| 2827 | + | |
| 2828 | + | |
| 2829 | + | |
| 2830 | + | |
| 2831 | + | |
| 2832 | + | |
| 2833 | + | |
| 2834 | + | |
| 2835 | + | |
| 2836 | + | |
| 2837 | + | |
| 2838 | + | |
| 2839 | + | |
| 2840 | + | |
| 2841 | + | |
| 2842 | + | |
| 2843 | + | |
| 2844 | + | |
| 2845 | + | |
| 2846 | + | |
| 2847 | + | |
| 2848 | + | |
| 2849 | + | |
| 2850 | + | |
| 2851 | + | |
| 2852 | + | |
| 2853 | + | |
| 2854 | + | |
| 2855 | + | |
| 2856 | + | |
| 2857 | + | |
| 2858 | + | |
| 2859 | + | |
| 2860 | + | |
| 2861 | + | |
| 2862 | + | |
| 2863 | + | |
| 2864 | + | |
| 2865 | + | |
| 2866 | + | |
| 2867 | + | |
| 2868 | + | |
| 2869 | + | |
| 2870 | + | |
| 2871 | + | |
| 2872 | + | |
| 2873 | + | |
| 2874 | + | |
| 2875 | + | |
| 2876 | + | |
| 2877 | + | |
| 2878 | + | |
| 2879 | + | |
| 2880 | + | |
| 2881 | + | |
| 2882 | + | |
| 2883 | + | |
| 2884 | + | |
| 2885 | + | |
| 2886 | + | |
| 2887 | + | |
| 2888 | + | |
| 2889 | + | |
| 2890 | + | |
| 2891 | + | |
2819 | 2892 | | |
2820 | 2893 | | |
2821 | 2894 | | |
2822 | 2895 | | |
2823 | 2896 | | |
2824 | 2897 | | |
2825 | 2898 | | |
2826 | | - | |
2827 | | - | |
| 2899 | + | |
| 2900 | + | |
| 2901 | + | |
| 2902 | + | |
| 2903 | + | |
| 2904 | + | |
| 2905 | + | |
| 2906 | + | |
| 2907 | + | |
| 2908 | + | |
| 2909 | + | |
| 2910 | + | |
| 2911 | + | |
| 2912 | + | |
| 2913 | + | |
2828 | 2914 | | |
2829 | 2915 | | |
2830 | 2916 | | |
| |||
5169 | 5255 | | |
5170 | 5256 | | |
5171 | 5257 | | |
| 5258 | + | |
| 5259 | + | |
| 5260 | + | |
| 5261 | + | |
| 5262 | + | |
| 5263 | + | |
5172 | 5264 | | |
5173 | 5265 | | |
5174 | 5266 | | |
5175 | 5267 | | |
| 5268 | + | |
| 5269 | + | |
| 5270 | + | |
| 5271 | + | |
| 5272 | + | |
| 5273 | + | |
| 5274 | + | |
| 5275 | + | |
| 5276 | + | |
| 5277 | + | |
| 5278 | + | |
| 5279 | + | |
| 5280 | + | |
| 5281 | + | |
| 5282 | + | |
| 5283 | + | |
| 5284 | + | |
| 5285 | + | |
| 5286 | + | |
| 5287 | + | |
| 5288 | + | |
| 5289 | + | |
| 5290 | + | |
| 5291 | + | |
| 5292 | + | |
| 5293 | + | |
| 5294 | + | |
| 5295 | + | |
5176 | 5296 | | |
5177 | 5297 | | |
5178 | 5298 | | |
| |||
0 commit comments