You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Transport prerequisite — the classifier (pure) and the probe that feeds it.
7670
7556
//
@@ -8143,15 +8029,14 @@ function reportPrerequisiteNotMet(v, options = {}) {
8143
8029
v.fix.slice(1).map((l) => ` ${l}\n`).join('') +
8144
8030
`\n${nothing.join('\n')}\n\n` +
8145
8031
` A GATE NOBODY CAN RUN IS INDISTINGUISHABLE FROM A GATE THAT FINDS NOTHING (#13526).\n` +
8146
-
` That is not a slogan here, it is this refusal's measured cost: while this exit was the\n` +
8147
-
` only thing an agent container could get out of this script, the population it guards —\n` +
8148
-
` closed cards still carrying \`pm:*\` state — grew to 100+ per lane per label across at\n` +
8149
-
` least three lanes, back to 2026-08-05, and no reading anywhere said so. If you are\n` +
8150
-
` seeing this in a proxy-mediated container, check the egress prerequisite FIRST: node's\n` +
8151
-
` \`fetch\` ignores \`HTTPS_PROXY\`, and this script now re-execs itself with\n` +
8152
-
` \`NODE_USE_ENV_PROXY=1\` when a proxy is set (see \`resolveProxyRelaunch\`). Reaching this\n` +
8153
-
` line WITH a proxy configured means the relaunch already happened and the credential the\n` +
8154
-
` proxy injects is genuinely not working — not that the transport was never tried.\n` +
8032
+
` That is not a slogan here, it is this refusal's measured cost. For as long as this exit\n` +
8033
+
` was the only thing an agent container could get out of this script, the population it\n` +
8034
+
` guards grew unobserved — and when the route was finally fixed and a census run, closed\n` +
8035
+
` cards still carrying \`pm:*\` came to 2,063 \`pm:dispatched\` and 846 \`pm:queue\`, with 555\n` +
8036
+
` carrying BOTH, back to 2026-08-02. The filing seat could only say "at least 100 per lane\n` +
8037
+
` per label", because a first page is not a count and this gate could not be run to get one.\n` +
8038
+
` ⇒ Treat this exit as an unread instrument, never as a quiet board: the H39 census below\n` +
8039
+
` does not appear at all in a run that ends here.\n` +
8155
8040
` (Exit code ${EXIT_PREREQUISITE_NOT_MET}, distinct from the unclassified failure's 2 — but piping this\n` +
8156
8041
` reports the PIPE's status, so \`… | tail -4\` reads green either way. Use \`echo "EXIT=$?"\`.)`,
8157
8042
);
@@ -13032,35 +12917,6 @@ function selfTest() {
13032
12917
t('H8 summary: …and does NOT claim the horizon was reached', h8win({ mergedPages: MERGED_WINDOW_PAGE_CEILING, mergedWindowTruncated: true }).includes('horizon reached'), false);
13033
12918
t('H8 summary: …and says a delivery past it is invisible', h8win({ mergedPages: MERGED_WINDOW_PAGE_CEILING, mergedWindowTruncated: true }).includes('is invisible'), true);
13034
12919
13035
-
// -- The EGRESS prerequisite: proxy relaunch (#13526 leg 1) ----------------
13036
-
//
13037
-
// Measured: an agent container's `GITHUB_TOKEN` is a 14-char proxy
13038
-
// placeholder and node's fetch bypasses the proxy that holds the real
13039
-
// credential, so this gate exited 3 while the container had a working
// Exactly once — the guard is what makes a misconfigured proxy cost one extra
13052
-
// process rather than a fork bomb.
13053
-
t('proxy: the child does NOT relaunch again', resolveProxyRelaunch({ HTTPS_PROXY: PROXY, [PROXY_RELAUNCH_GUARD]: '1' }, []).relaunch, false);
13054
-
t('proxy: a caller who already set the flag is left alone', resolveProxyRelaunch({ HTTPS_PROXY: PROXY, NODE_USE_ENV_PROXY: '1' }, []).relaunch, false);
13055
-
// `--self-test` must stay runnable in ANY container, whatever it carries —
13056
-
// the same exemption the malformed-repo and malformed-floor refusals make.
13057
-
t('proxy: --self-test never relaunches', resolveProxyRelaunch({ HTTPS_PROXY: PROXY }, ['--self-test']).relaunch, false);
13058
-
// Passing an unsupported flag would make node refuse to START, turning a
13059
-
// degraded reading into no reading — the direction this whole change refuses.
13060
-
t('proxy: the warning flag is passed when the runtime supports it', proxyRelaunchExecArgv(new Set(['--disable-warning']))[0], '--disable-warning=UNDICI-EHPA');
13061
-
t('proxy: …and omitted on a runtime that would reject it', proxyRelaunchExecArgv(new Set()).length, 0);
13062
-
t('proxy: …and a missing flag set is not a crash', proxyRelaunchExecArgv(undefined).length, 0);
13063
-
13064
12920
// -- H26: a block whose target can never close, + the stale chain (#11219) --
13065
12921
// The measured cards, by name, and both directions of every leg.
13066
12922
const waiting = (number = 1119) => ({
@@ -14045,31 +13901,6 @@ function selfTest() {
14045
13901
14046
13902
const isMain = isEntrypoint(import.meta.url);
14047
13903
if (isMain) {
14048
-
// The EGRESS prerequisite (#13526), answered before anything else — including
14049
-
// the malformed-input refusals below, which cost nothing to re-run in the
14050
-
// child and would otherwise be printed twice. See `resolveProxyRelaunch` for
14051
-
// why this exists: without it, node's `fetch` bypasses the proxy that holds
14052
-
// this container's credential and every run here ends in exit 3.
0 commit comments