Skip to content

Commit a3e5bfa

Browse files
test(dogfood): the authz census records handleI18nRequest at 4, a docblock link; i18n.ts reach is unchanged (#26002)
<!-- claude-projects-attribution: {"github_login":"os-elon-musk"} --> _Requested by **Elon** · [project thread](https://claude.ai/code/project/chan_01WedDzV26nniwxv7jC88B9D?thread=cmsg_01WedDzV26nniwxv7jC88B9DXw3j5HBYvWhbrgfaK1iuue)_ Fixes #25988 Clause-②: no Metadata-protocol: none The claim is 6411275777 (seat `domain:devx#1`, card thread `session_01H98bQgxPLVbpyR6Zsu6SUW`, branch `claude/project-thread-vi44lw`, platform-assigned). ## What changes `main`'s `Dogfood Regression Gate (3/3)` has been red on every run that runs it since `69fa23d6` (#25956), on one assertion of the authz blind-spot census: ``` control "handleI18nRequest" moved in packages/runtime/src/domains/i18n.ts: expected 4 to be 3 ``` The census is a measurement pin, so the fourth occurrence was read before it was recorded. One file changes: `packages/qa/dogfood/test/authz-probe-blind-spot.census.ts`, the `packages/runtime/src/domains/i18n.ts` row. The `handleI18nRequest` control goes from 3 to 4, and the row's comment names the fourth occurrence and why reach is unchanged. No other row, no total and no derivation rule moves. ## The fourth occurrence, read `packages/runtime/src/domains/i18n.ts` at `05f7758f` holds `handleI18nRequest` four times: | line | what it is | since | |:--|:--|:--| | 20 | file docblock, a `{@link handleI18nRequest}` | before | | 73 | `TRANSLATIONS_CACHE_CONTROL`'s docblock, `(see the floor in {@link handleI18nRequest})` | `69fa23d6` | | 150 | the `DomainRoute` call site in `createI18nDomain` | before | | 155 | `export async function handleI18nRequest(` | before | `69fa23d6` (the translations validator, Part of #25785) added three module-private helpers to that file (`requestHeader`, `ifNoneMatchHits`, `translationsAnswer`) and the one constant. None of them is an `export async function handle*Request` entry point, it added no `DomainRoute` prefix, and it added no `shouldDenyAnonymous(` call. The anonymous floor is still the handler's first statement. So the row's population, reach and gate control are unchanged at 1 / 1 / 1, and the row's own population and reach test stayed green on `main` the whole time. The only reading that moved is the handler-name control, by a docblock link. This is a count change, not a census row change, and nothing here needs a new probe. ## Sweep of the rest of the census - At this branch's base `05f7758f` the census file reads `1 failed | 46 passed` (the same i18n assertion, nothing else), and with this change `47 passed`. So no other control, row, total or probe-table reading has moved since `69fa23d6` or with any later merge up to `05f7758f`. - `origin/main` has since moved to `a4eae064` (4 commits). In the census-read source directories they touch only two test files (`packages/runtime/src/domains/mcp-package-object-discovery.test.ts`, `packages/runtime/src/stored-metadata-reader-contexts.pin.test.ts`), and the census reads neither, so the reading holds there too. ## Verification All at head `ed1c5b39`, under `scripts/pm/os-verify-lock.sh`. - **Census before the change** (`05f7758f`, `pnpm exec vitest run test/authz-probe-blind-spot.test.ts` in `packages/qa/dogfood`): `Tests 1 failed | 46 passed (47)`, `AssertionError: control "handleI18nRequest" moved in packages/runtime/src/domains/i18n.ts: expected 4 to be 3`. - **Closure build**, the CI step's command at `--concurrency=2`: `pnpm turbo run build --filter=@objectstack/dogfood`: `Tasks: 67 successful, 67 total`, `VERDICT command-exit 0`. - **Dogfood shard 3/3**, the CI leg's carrier and command: `OS_TEST_SHARD=3/3 node scripts/run-with-stall-guard.mjs --log dogfood.log --stall-minutes 10 -- pnpm turbo run test --filter=@objectstack/dogfood`: - `Test Files 97 passed | 2 skipped (99)` - `Tests 990 passed | 14 skipped (1004)` - `authz-probe-blind-spot.test.ts (47 tests)` passed inside the shard - `VERDICT command-exit 0` - `node scripts/check-test-completeness.mjs`: `OK (1 package(s), 1004 test(s) declared and all 1004 accounted for)` - **`authz-conformance.test.ts` + the census** (conformance sits in another shard, so it was run on its own): `Test Files 2 passed (2)`, `Tests 108 passed (108)`, `VERDICT command-exit 0`. - `pnpm --filter @objectstack/dogfood typecheck`: `VERDICT command-exit 0`. - `pnpm exec eslint --no-inline-config` on the changed file: exit 0. - **Derived gates.** `node scripts/pm/dispatch-gates.mjs --commands` derives 52 families on the 1 changed path. 51 exit 0. `pnpm check:dual-build-cjs-loads` is NOT MEASURED: it exited 3 (PREREQUISITE NOT MET) because it needs every package's `dist/` and only the dogfood closure was built. CI's Lint lane owns it. `dispatch-gates.mjs --ran`: `52 derived, 51 run, 1 NOT-MEASURED, 0 UNRUN`. - `node scripts/pm/check-governed-merges.mjs --branch HEAD`: NOT governed, 16 changed lines. - No changeset: `@objectstack/dogfood` is `private`, and the diff is one test-support file. `skip-changeset` is declared with this PR. PR and merge-group CI never run the dogfood legs, so this PR's checks cannot show the fix. The card's acceptance is read on `main` after landing: the first push run that runs `Dogfood Regression Gate (3/3)`, and the next scheduled run. Both run ids will be reported on the card. ## Acceptance notes - A docblock that links the handler by name moves this control, and so do the nine sibling domain rows, each of which counts its own handler's name by substring. That is the pin doing its job: it makes whoever touches the file re-read the row. It is also why PR CI, which skips the dogfood legs, merged the change green. Making PR or merge-group CI run them is out of scope here. #24073 and #22653 ruled on that. --- _Generated by [Claude Code](https://claude.ai/code/session_01H98bQgxPLVbpyR6Zsu6SUW)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 56a2346 commit a3e5bfa

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

‎packages/qa/dogfood/test/authz-probe-blind-spot.census.ts‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,9 +1070,17 @@ export const PROBE_FILE_CENSUS: readonly ProbeFileReading[] = [
10701070
{
10711071
// [#22432] The `/i18n` domain joined the anonymous-deny floor; the gate is
10721072
// the handler's first statement, so this row has the actions.ts shape. Its
1073-
// handler name occurs 3 times: the declaration, the DomainRoute call site
1074-
// and the file docblock's link to it. Its name carries digits, which is
1075-
// why the population rule's handler-name class admits them.
1073+
// handler name occurs 4 times: the declaration, the DomainRoute call site,
1074+
// the file docblock's link to it and the cache-directive docblock's link
1075+
// to it. Its name carries digits, which is why the population rule's
1076+
// handler-name class admits them.
1077+
//
1078+
// [#25988] 3 -> 4, re-read rather than bumped: the fourth is the
1079+
// `{@link handleI18nRequest}` in `TRANSLATIONS_CACHE_CONTROL`'s docblock,
1080+
// added with the translations validator (#25785). That change added three
1081+
// module-private helpers (`requestHeader`, `ifNoneMatchHits`,
1082+
// `translationsAnswer`) and no handler, route or gate call, so population,
1083+
// reach and `shouldDenyAnonymous(` are unchanged at 1 / 1 / 1.
10761084
file: 'packages/runtime/src/domains/i18n.ts',
10771085
kinds: ['GATE_PIN'],
10781086
probes: 1,
@@ -1081,7 +1089,7 @@ export const PROBE_FILE_CENSUS: readonly ProbeFileReading[] = [
10811089
reachable: 1,
10821090
blindSpot: 0,
10831091
populationRule: '`export async function handle*Request` entry points',
1084-
controls: { 'shouldDenyAnonymous(': 1, handleI18nRequest: 3 },
1092+
controls: { 'shouldDenyAnonymous(': 1, handleI18nRequest: 4 },
10851093
note: 'Same shape as domains/actions.ts.',
10861094
},
10871095
{

0 commit comments

Comments
 (0)