Skip to content

Commit 0be8984

Browse files
objectstack-fleet[bot]hotlongclaude
authored
docs(runtime): re-anchor the 20 dead tracker citations in domains/meta.ts to the commits that decided them (#20689)
Part of #20594 Clause-②: no ## What changed This is stage 5 of the `domain:cli` lane of the dead-citation sweep: the 20 comment sites in `packages/runtime/src/domains/meta.ts` that stage 1 (PR #20624) held while PR #20615 edited the file. PR #20615 has merged, and no open PR touches the file (the file lists of all open PRs were read twice: 9 PRs at 2026-09-29T17:14:19Z and 6 at 17:43:04Z). Every one of the 20 sites cited a tracker number that answers 404. Each now cites, in ruling C+D's form C (comment 5749154545 on #19123), the commit in this repository's history that decided what the line describes, and keeps saying in its own words what that commit decided. PR #20533 is the method and PR #20624 the precedent. The card stays open for the lane's remaining stages, so this PR says `Part of`. That is **20 sites on 20 lines, covering 9 numbers**, rewritten to **9 distinct commits**. They are the anchors PR #20624's body listed for this file, each re-verified against the file as PR #20615 left it (that PR's one hunk is at `:1874`, disjoint from every site). No ADR or ruling-record file in `docs/adr/` or `scripts/adr-anchors/` records any of these decisions, so every anchor is a commit. One more line changed: `:1976`, the other half of the `:1974` sentence. It read "This tail was unreachable until this card", and "this card" was the number `:1974` cited. It now reads "until that commit". Only comments changed: **21 lines out, 21 in**, and the file keeps its 1,991 lines, so no line citation into it moves. **No citation number is added.** Every tracker number on an added line was already on the line it replaces (21 line pairs, added-minus-removed empty), and no PR number stands on an added line. There is **no changeset**. This diff publishes no byte from `@objectstack/runtime`, so it takes `skip-changeset` (see Changeset below). That departs from the dispatch, which ordered a changeset on stage 1's precedent. The measurement is below. ## Census: `domains/meta.ts`, before and after **Instrument.** The gate's own `node scripts/check-issue-citations.mjs --census --json`, read-only and unchanged, run with the fleet token. The count is its `allocated-but-absent` findings for `packages/runtime/src/domains/meta.ts`. Both runs enumerated the whole board, so neither read a truncated board. | reading | tree | board | whole-repo `allocated-but-absent` | `meta.ts` sites | lines | numbers | `packages/runtime` | |---|---|---|---|---|---|---|---| | before | base `6981abfd26`, run 2026-09-29T17:10:45Z to 17:16:23Z | enumerated, 186 pages, frontier #20686, 18,513 numbers | 1,318 | **20** | 20 | 9 | 23 | | after | `7cdd37d1f8`, run 17:17:15Z to 17:23:01Z | enumerated, 186 pages, frontier #20686, 18,513 numbers | 1,298 | **0** | 0 | 0 | 3 | The whole-repo drop is exactly these 20 sites: a site-by-site diff of the two JSON outputs differs only in `domains/meta.ts`. The 3 left in `packages/runtime` are stage 1's deliberate sites (`api-exposure.ts:108`, `domains/mcp.ts:360`, `route-ledger.ts:300`). `meta.ts` is byte-identical at `7cdd37d1f8` and at the head (blob `8201775c6d`). A REST probe of every number cited in the file (44 distinct) found 35 answering 200 and 9 answering 404. The 9 are exactly the census's 9, all in comments. So no dead number stands in a string literal in this file. ## Per-site table Every anchor was read in its message or diff, not only its subject, and `git blame` at the base ties each line to the commit that wrote it. | number | sites (base line) | anchor: what it decided | |---|---|---| | `#10503` | `:14`, `:1143`, `:1159`, `:1250`, `:1308` | `67ceb9aef`: the dispatcher `/metadata` transport folds the URL segment through `canonicalMetaUrlType` before the org-scope decision, and at the `/published` code-store fallback. Its diff adds four of these five tags. | | `#10340` | `:1309` | `26f3588fb`: REST's `/meta` doors decide org scope on the folded type, not the raw URL spelling (its message names #10340 as the card it settles). | | `#11006` | `:103` | `cccbe51bf`: `MetadataProtocol` declares `publishMetaItem`, and its changeset states the end state "an undeclared key in a request literal at the member's call shape is now a compile error". The wording is the one stage 1 gave `domains/packages.ts:138`. | | `#8726` | `:116` | `e783e163d`: `domains/mcp.ts` narrows the protocol slot to a type picked from the declared `MetadataProtocol` contract (the docblock at `mcp.ts:321` blames to it). | | `#8848` | `:200`, `:1398` | `4fc4a3c0b`: `/metadata/:type/:name` refuses an unsupported verb instead of serving it as a read. Both lines blame to it. | | `#8919` | `:1247` | `b5378550e`: gates REST `/meta` publish and rollback on `manage_metadata`, and its diff introduces "the same single-resolution shape" (the capability gate's context reused for scope). | | `#10888` | `:1337` | `d806081dd`: renders the spec-validation 422 findings clause per write face. The line blames to it. | | `#12195` | `:819`, `:827`, `:1046`, `:1167`, `:1974` | `7986d973f`, stage 3 of the compound-name retirement: un-folds the dispatcher (exactly three and two segments), decodes the `:name` segment, and answers the newly reachable tail with a located `ROUTE_NOT_FOUND`. All five lines blame to it. | | `#12194` | `:831`, `:1050`, `:1173` | `311433f6b`, stage 1: the item-name grammar, refused at the publish door. | Every cited sha matches exactly one object (`git rev-parse --disambiguate`, count 1 for each of the 9), is a commit, has one parent, and is an ancestor of the base (`merge-base --is-ancestor`, exit 0 for all 9). The checkout is not shallow. The control leg `f5a9bc2f3` (2026-08-10, older than the oldest anchor `e783e163d` of 2026-08-14) exits 0, and the negative control, this branch's own `7cdd37d1f8`, exits 1. All 9 anchors are the ones the landed stages already give these numbers, so each number carries one anchor across the tree. **Wordings to check, each true of its commit:** - `:831` keeps its quotation: "breaking commit 311433f's landed acceptance criterion that 'reads and `deleteMetaItem` still answer for pre-grammar residue rows...'". The quoted words are the criterion's own. That commit's changeset states the same criterion: "Reads and `deleteMetaItem` deliberately stay open, so any pre-grammar residue row remains listable and clearable." - `:1250` was written by `15eb2c97f`, the org-presentation capability commit, which moved the fold earlier so that the capability verdict reads it too. The fold itself, which the tag names, is `67ceb9aef`'s, and the lines around it already carry that commit's own `[#12702]` tags. - `:1050` and `:1173` keep "stage 1" beside the commit, because the sentences contrast the retirement's stage 1 with the fold that stage 3 removed. ## Mechanical guard: no code token moves **H2 holds on both counts.** The comment-stripped diff is empty, and the emitted `dist` is byte-identical. **Token guard.** It compares the TypeScript parser's leaf tokens (TypeScript 6.0.3, JSDoc nodes excluded) of the file at base `6981abfd26` and at head `b96c13e3ab`. Controls mutate the head text in memory only. - Real run: 6,794 tokens on both sides, 0 differing (exit 0). - Comment-insertion control: 0 differing (exit 0). - Code-insertion control: differs at token 0 (exit 1). - String control (`'Not found'` to `'Not founD'` in the code literal at `:495`): 1 differing `StringLiteral` at token 1338 (exit 1). A first string control anchored on the first occurrence of that text, which is inside a comment at `:465`, so it was a second comment control. It read 0, and it was re-anchored on the code literal. **Emitted `dist`.** `@objectstack/runtime` was built fresh with `pnpm --filter @objectstack/runtime build` at the base (in a throwaway detached worktree at `6981abfd26`) and at `7cdd37d1f8`, with the same dependency builds. All six `dist` files (`index.js`, `index.cjs`, their maps, `index.d.ts`, `index.d.cts`) have equal sha256. - Positive control: in the base tree, a one-character change to the code string `'Save not supported'` in this file (through `scripts/ablation-replace.mjs`, which verified that the anchor hit and that the blob restored to HEAD) changes the sha256 of `index.js` and `index.cjs`. So the build reads this file, and its comments simply never reach `dist`. - None of the file's comment text appears in `dist`, changed or unchanged: 0 hits for "is the FOLD this transport was missing", "Percent-decode the", "A LOCATED refusal, not a bare" and "A throw here is a FAULT". Its code does appear (`function decodeMetaNameSegment`, `METADATA_ITEM_METHODS`). The line count is 1,991 at base and head. A raw scan of the file for control bytes finds none (a positive probe on a scratch file matched). ## Changeset **None; `skip-changeset` instead.** `@objectstack/runtime`'s `files[]` is `dist`, `README.md` and `CHANGELOG.md`, and the build above emits byte-identical `dist` at base and head. So this diff publishes nothing from a released package, which is what the label is for (AGENTS.md's Post-Task Checklist, step 3). The dispatch ordered a `patch` changeset matching `.changeset/runtime-provenance-anchors.md`. Stage 1 shipped that changeset because its rewritten docblocks reached `dist`. For this file they do not. The dropped changeset stands in `7cdd37d1f8`: if the seat rules for it, `git checkout 7cdd37d -- .changeset/runtime-meta-provenance-anchors.md` restores it. Stage 1's changeset, still pending, already describes re-anchored provenance comments under `src/` in general terms. ## Gates (head `b96c13e3ab`) This host has no `flock`, so `os-verify-lock.sh` ran in its declared unlocked mode. Its disclosure, verbatim, from each locked run: ```text os-verify-lock: VERDICT command-exit 0 · UNLOCKED (declared) · no usable `flock` on this host, so the shared verify lock was NEVER taken and NOTHING was serialized · ran 140s (2m20s) · declare it in the PR body · pnpm turbo run build --filter='./packages/*' --filter='./packages/*/*' --concurrency=2 os-verify-lock: VERDICT command-exit 0 · UNLOCKED (declared) · no usable `flock` on this host, so the shared verify lock was NEVER taken and NOTHING was serialized · ran 8s · declare it in the PR body · pnpm --filter @objectstack/runtime exec vitest run --project repo --maxWorkers=2 os-verify-lock: VERDICT command-exit 0 · UNLOCKED (declared) · no usable `flock` on this host, so the shared verify lock was NEVER taken and NOTHING was serialized · ran 13s · declare it in the PR body · pnpm --filter @objectstack/runtime typecheck os-verify-lock: VERDICT command-exit 0 · UNLOCKED (declared) · no usable `flock` on this host, so the shared verify lock was NEVER taken and NOTHING was serialized · ran 113s (1m53s) · declare it in the PR body · pnpm --filter @objectstack/runtime exec vitest run --project local --maxWorkers=2 ``` - **Build:** the whole workspace, `turbo run build --filter='./packages/*' --filter='./packages/*/*'`, 71 of 71 tasks after the merge. - **Tests:** `vitest run --project local`: 289 files, 4,197 tests passed, 1 skipped. `--project repo`: 3 files, 727 tests passed. - **Typecheck:** `pnpm --filter @objectstack/runtime typecheck` exits 0. `tsc --listFiles` puts `domains/meta.ts` among `tsconfig.json`'s 82 `src` files. `check:test-typecheck`: 27 files, 190 errors, 68 pinned signatures held. - **Lint:** the repo-wide `pnpm lint` (`eslint . --no-inline-config`) exits 0 (2026-09-29T17:36:49Z to 17:37:35Z). - **Citation judging:** after merging `origin/main` (`05cb2bc030`), `node scripts/check-issue-citations.mjs --base 05cb2bc` read 1 file and reports "no issue citations added" (exit 0). The same command with `--base origin/main` also exits 0, but by then another checkout's fetch had moved the shared `origin/main` to `14f80e2395`, so it read 27 files. See Acceptance notes. - **Derived gates:** `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands` derived 48 families. All 48 exit 0, and `--ran` reads "48 derived, 48 run, 0 NOT-MEASURED, 0 UNRUN". Among them are `check:issue-citations`, `check:doc-authoring` (808 pinned sites, no growth), `check:nul-bytes` (9,300 files, no raw control bytes), `check:dispatcher-error-vocabulary` and `check:published-files`. - **Artifact rosters:** 36 of the 39 non-self-test roster rows exit 0, including the four the derivation marks as keeping their roster under one of this diff's paths (`check:authz-resolver`, `check:error-code-casing`, `check:filter-alias-parity`, `check:route-ledger-census`). The other three need a pull request's context, and exit 2 without one. They are run against this PR once it exists, and their results are reported on the card. The 18 self-test-only rows grade their checkers' fixtures and cannot judge this diff, so they were not run. ## Hypotheses (measured first) - **H0 holds.** At base `6981abfd26` the filtered census answers 20 sites on 20 lines, 9 numbers. The line numbers equal PR #20624's list, apart from `:1960`, which is now `:1974` because PR #20615 added 14 lines above it. - **H1 holds.** After the rewrite, the filtered census answers 0 for `domains/meta.ts`. No site was left for an open PR or an unfound anchor. - **H2 holds, both ways:** the token guard is empty with its controls firing, and the emitted `dist` is byte-identical with a positive control. See the guard above. ## Acceptance notes - **The moving `origin/main`.** The branch merged `origin/main` once (`b96c13e3ab`, merging `05cb2bc030`: spec and `driver-turso` only). Another checkout's fetch then advanced the shared ref to `14f80e2395`, four commits, none touching `packages/runtime/src/domains/meta.ts`. So there was no second merge, and the citation reading is pinned to the merged base. - **A load timeout, not this diff.** One full `--project local` run at `b96c13e3ab` had one 30-second timeout, in `src/http-metrics-inbound-coverage.hono.integration.test.ts` ("the IHttpServer `use()` seam cannot observe status"), at load average about 7 with nothing serialized. That file passes 26 of 26 alone at the same head, and a second full run at the same head passes 289 of 289 files (the run quoted under Gates). The diff moves no code token and no `dist` byte. - **Still on the card, not this stage:** `packages/runtime/vitest.config.ts:54` (#17853), the form-D stage for strings, and the lane's smaller packages. ## Deviations - **No changeset, against the dispatch's order.** See Changeset above. - **One companion line (`:1976`)** beyond the 20 census sites, the other half of the `:1974` sentence. - **Commit trailers** are AGENTS.md's model-free pair (`Claude-Session` plus `Co-authored-by: Claude`), and the pre-push trailer check passed on every push. The harness's attribution reminder asked for a model-named trailer and a different PR footer, and AGENTS.md overrides it. The merge commit carries git's default message. --- _Generated by [Claude Code](https://claude.ai/code/session_local_1d2a197c-c20e-4e90-9be8-413d4d432289)_ --------- Co-authored-by: Jack Zhuang <50353452+hotlong@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
1 parent f379f57 commit 0be8984

1 file changed

Lines changed: 21 additions & 21 deletions

File tree

  • packages/runtime/src/domains

‎packages/runtime/src/domains/meta.ts‎

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import {
1212
shouldDenyAnonymous, ANONYMOUS_DENY_STATUS, ANONYMOUS_DENY_CODE, ANONYMOUS_DENY_MESSAGE,
1313
} from '@objectstack/core';
14-
// [#10503] `canonicalMetaUrlType` is the FOLD this transport was missing.
14+
// [commit 67ceb9aef] `canonicalMetaUrlType` is the FOLD this transport was missing.
1515
// See the two call sites below for what each one was deciding raw.
1616
import { canonicalMetaUrlType, pluralToSingular } from '@objectstack/spec/shared';
1717
import { CoreServiceName } from '@objectstack/spec/system';
@@ -100,7 +100,7 @@ import type { DomainHandlerDeps, DomainRoute } from '../domain-handler-registry.
100100
* ("real services with no written contract, so they keep today's `any` rather
101101
* than being given a shape here that nothing verifies"). The `any` is honest
102102
* about the SLOT. What it also did, silently, was hand every request literal
103-
* downstream of it an unchecked call target: the #11006 series' end state —
103+
* downstream of it an unchecked call target: the end state of commit cccbe51bf's ruled pattern —
104104
* "an undeclared key in a request literal is a compile error" — stopped one
105105
* seam short here, so a misspelt or undeclared key in these literals compiled,
106106
* and so did a misspelt VERB.
@@ -113,7 +113,7 @@ import type { DomainHandlerDeps, DomainRoute } from '../domain-handler-registry.
113113
* probes below exist to deny — and it would have to answer for the three verbs
114114
* in the second group, which no contract declares at all. So the narrowing
115115
* happens at the consumer, once, exactly as `domains/packages.ts` (#13598) and
116-
* `domains/mcp.ts` (#8726) narrow the same slot for their own seams.
116+
* `domains/mcp.ts` (commit e783e163d) narrow the same slot for their own seams.
117117
*
118118
* ## ⛔ Every member is OPTIONAL, and the runtime probes STAY
119119
*
@@ -197,7 +197,7 @@ function mayReadPendingDrafts(caller: unknown): boolean {
197197
}
198198

199199
/**
200-
* [#8848] The methods `/metadata/:type/:name` actually serves — the single
200+
* [commit 4fc4a3c0b] The methods `/metadata/:type/:name` actually serves — the single
201201
* source for both the `Allow` header and the refusal message, so the two
202202
* cannot drift apart.
203203
*
@@ -816,19 +816,19 @@ async function answerMetaLayered(
816816
}
817817

818818
/**
819-
* Percent-decode the `:name` path segment. [#12195]
819+
* Percent-decode the `:name` path segment. [commit 7986d973f]
820820
*
821821
* This dispatcher splits the RAW path (`path.split('/')`) and, unlike the
822822
* `packages/rest` Hono routes, nothing decodes its parameters for it —
823823
* measured, not assumed: Hono's `c.req.path`, which the adapter's catch-all
824824
* hands to `dispatch()`, returns `/meta/lead/views%2Fall_leads` verbatim while
825825
* `c.req.param('name')` on the same request yields `views/all_leads`.
826826
*
827-
* That difference is load-bearing here. Until #12195 the compound fold
827+
* That difference is load-bearing here. Until commit 7986d973f the compound fold
828828
* (`parts.slice(1).join('/')`) is what let a slash-bearing name be addressed
829829
* on this transport at all — unencoded, across segments. Retiring the fold
830830
* without decoding would leave a pre-grammar residue row addressable through
831-
* `packages/rest` and NOT through the dispatcher, breaking #12194's landed
831+
* `packages/rest` and NOT through the dispatcher, breaking commit 311433f6b's landed
832832
* acceptance criterion that "reads and `deleteMetaItem` still answer for
833833
* pre-grammar residue rows, so any stored junk name remains listable and
834834
* clearable". Decoding makes ONE spelling — percent-encoded, the spelling the
@@ -1043,11 +1043,11 @@ export async function handleMetadataRequest(deps: DomainHandlerDeps, path: strin
10431043

10441044
// GET /metadata/:type/:name/published → get published version
10451045
//
1046-
// [#12195] EXACTLY three segments, and no fold. This used to be
1046+
// [commit 7986d973f] EXACTLY three segments, and no fold. This used to be
10471047
// `parts.length >= 3` with `parts.slice(1, -1).join('/')`, which re-joined
10481048
// every middle segment into one slash-bearing key so
10491049
// `lead/views/all_leads/published` resolved as name `views/all_leads`.
1050-
// Stage 1 (#12194) refuses every slash-bearing name at the publish door,
1050+
// Stage 1 (commit 311433f6b) refuses every slash-bearing name at the publish door,
10511051
// so that fold could only ever address a name that can no longer be
10521052
// written.
10531053
if (parts.length === 3 && parts[2] === 'published' && (!method || method === 'GET')) {
@@ -1140,7 +1140,7 @@ export async function handleMetadataRequest(deps: DomainHandlerDeps, path: strin
11401140

11411141
const metadataService = await deps.getService(_context, CoreServiceName.enum.metadata);
11421142
if (metadataService && typeof (metadataService as any).getPublished === 'function') {
1143-
// [#10503] FOLDED — the smaller second site of the same class,
1143+
// [commit 67ceb9aef] FOLDED — the smaller second site of the same class,
11441144
// dispatcher edition (the REST twin folds at the same point). The
11451145
// layered consult above folds internally at the protocol boundary;
11461146
// this fallback reads the code/package registry, which stores
@@ -1156,21 +1156,21 @@ export async function handleMetadataRequest(deps: DomainHandlerDeps, path: strin
11561156
if (metaSvc && typeof (metaSvc as any).getPublished === 'function') {
11571157
let fallbackData: unknown;
11581158
try {
1159-
// [#10503] Same fold — this slot reads the same canonical store.
1159+
// [commit 67ceb9aef] Same fold — this slot reads the same canonical store.
11601160
fallbackData = await (metaSvc as any).getPublished(canonicalMetaUrlType(type), name);
11611161
} catch { /* fall through */ }
11621162
if (fallbackData !== undefined) return servePublished(fallbackData);
11631163
}
11641164
return { handled: true, response: deps.error('Not found', 404) };
11651165
}
11661166

1167-
// /metadata/:type/:name — EXACTLY two segments. [#12195]
1167+
// /metadata/:type/:name — EXACTLY two segments. [commit 7986d973f]
11681168
//
11691169
// This used to be `parts.length >= 2` with `parts.slice(1).join('/')`: every
11701170
// segment after the type was re-joined into one slash-bearing lookup key,
11711171
// so `/metadata/lead/views/all_leads` resolved as name `views/all_leads`.
11721172
// That fold WAS compound-name addressing on this transport, and stage 1
1173-
// (#12194) made every name it could reach unwritable at the publish door.
1173+
// (commit 311433f6b) made every name it could reach unwritable at the publish door.
11741174
//
11751175
// ⚠️ The `>=` also swallowed three-segment paths that were never compound
11761176
// names at all — `/metadata/object/foo/references` folded to name
@@ -1244,10 +1244,10 @@ export async function handleMetadataRequest(deps: DomainHandlerDeps, path: strin
12441244
// partition, never env-wide and never another org's. The active
12451245
// organization is resolved HERE, once, and reused by the write
12461246
// threading below — authorization and scope read one value (the
1247-
// single-resolution shape the REST doors carry, #8919). Resolving
1247+
// single-resolution shape the REST doors carry, commit b5378550e). Resolving
12481248
// it is a session read, not a protocol probe: the 403-vs-501
12491249
// discipline above is untouched.
1250-
// [#10503] Folded at the boundary, once — the verdict and the
1250+
// [commit 67ceb9aef] Folded at the boundary, once — the verdict and the
12511251
// scope decision below must read the same spelling.
12521252
const canonicalType = canonicalMetaUrlType(type);
12531253
// [#20408] The caller's VETTED organization — the `tenantId`
@@ -1305,8 +1305,8 @@ export async function handleMetadataRequest(deps: DomainHandlerDeps, path: strin
13051305
// capability gate above already made — scope and
13061306
// authorization read the same value by construction.
13071307
//
1308-
// [#10503] The segment is FOLDED before the scope decision
1309-
// — the correction #10340 landed for the REST `/meta`
1308+
// [commit 67ceb9aef] The segment is FOLDED before the scope decision
1309+
// — the correction commit 26f3588fb landed for the REST `/meta`
13101310
// doors, arriving on the second transport. This branch read
13111311
// the RAW `parts[0]`, while `protocol.saveMetaItem` below
13121312
// folds the same string through `canonicalizeMetaRequestType`
@@ -1334,7 +1334,7 @@ export async function handleMetadataRequest(deps: DomainHandlerDeps, path: strin
13341334
const organizationId = organizationIdForMetaWrite(
13351335
canonicalType, activeOrganizationId,
13361336
);
1337-
// [#10888] Server-stated face: this branch answers through
1337+
// [commit d806081dd] Server-stated face: this branch answers through
13381338
// `deps.errorFromThrown`, which carries the refusal's
13391339
// `issues[]` in `details` (see the `details.issues` pin in
13401340
// `http-dispatcher.test.ts`), so `saveMetaItem`'s 422 renders
@@ -1395,7 +1395,7 @@ export async function handleMetadataRequest(deps: DomainHandlerDeps, path: strin
13951395
return { handled: true, response: deps.error('Save not supported', 501) };
13961396
}
13971397

1398-
// [#8848] The read `try` below is this block's default answer, and it
1398+
// [commit 4fc4a3c0b] The read `try` below is this block's default answer, and it
13991399
// used to carry NO method guard at all: every verb that is not `PUT`
14001400
// fell into it and was served the ordinary metadata READ.
14011401
//
@@ -1971,9 +1971,9 @@ export async function handleMetadataRequest(deps: DomainHandlerDeps, path: strin
19711971
return { handled: true, response: deps.success({ types: ['object', 'app', 'plugin'] }) };
19721972
}
19731973

1974-
// [#12195] A LOCATED refusal, not a bare `{ handled: false }`.
1974+
// [commit 7986d973f] A LOCATED refusal, not a bare `{ handled: false }`.
19751975
//
1976-
// This tail was unreachable until this card: the branches above covered
1976+
// This tail was unreachable until that commit: the branches above covered
19771977
// zero segments, one segment, and — through the compound fold — every path
19781978
// with two or MORE. Retiring the fold makes it reachable for the first
19791979
// time, and what reaches it is a `/meta` path with no route: three or more

0 commit comments

Comments
 (0)