Repository navigation
Commit bb9794a
fix(spec): the liveness governance denominator is the authorable set, not the registered set (#18581)
Fixes #18133
Clause-②: no
This card **tightens** governance coverage: the denominator the liveness
ratchet divides by grows, three previously-unreachable types become
nameable, and no accept set, public export or schema moves. The registry
itself is byte-untouched.
## The defect, measured first-hand against `origin/main`
`check-liveness.mts` built `report.ungoverned` from
`listMetadataTypeSchemaTypes()` under a comment stating that function
returns *"exactly the set of authorable metadata types"*. That sentence
is the declared contract, and it is false — the same sentence #17356
measured false for the reachability gate, one gate over.
| reading (probe run at base `879b51270`) | result |
|---|---|
| `listMetadataTypeSchemaTypes()` | 26 names; `analytics_cube` /
`connector` / `sharing_rule` / `webhook` absent from all four |
| `listUnregisteredKindSchemaTypes()` | exactly those four |
| firing control on the same probe | `view` and `flow` present in the
registered set; `view` absent from the unregistered set |
| `getMetadataTypeSchema(t)` for each of the four | resolves a schema
(third fallback, #6245) |
| `GOVERNED` / `PENDING_GOVERNANCE` membership | `webhook` governed; the
other three in **neither** map; `PENDING_GOVERNANCE` was `{}` |
| `packages/spec/liveness/` | no `connector.json`, no
`sharing_rule.json`, no `analytics_cube.json` |
⇒ a type in neither map produces no row in **any** of this gate's lists,
so `ungoverned: []` read identically whether the gate had looked and
found nothing or had never looked at all. That indistinguishability is
the finding; the count of what it hid is deliberately not claimed.
**One card correction.** The card attributes `webhook`'s manual patch to
an `EXTRA_SCHEMAS` row. That identifier does not exist anywhere in this
repository — the mechanism is `SPEC_ONLY_SCHEMAS` in
`check-liveness.mts`, plus `liveness/webhook.json`. The claim is right,
the symbol name is not.
## Why the repair is local, on the merits
The dispatch flagged a possible fork into
`packages/spec/src/kernel/metadata-type-schemas.ts`. It is not one, and
the target file says so itself. `listUnregisteredKindSchemaTypes()`
already exists there (#6931) and its own docblock declares:
> `[#6931]` This exists so a check can ENUMERATE that map, and for
nothing else.
> 1 parent 5ed7ad9 commit bb9794a
4 files changed
Lines changed: 337 additions & 41 deletions
File tree
- .changeset
- packages/spec
- liveness
- scripts/liveness
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
37 | 51 | | |
38 | 52 | | |
39 | 53 | | |
| |||
929 | 943 | | |
930 | 944 | | |
931 | 945 | | |
932 | | - | |
933 | | - | |
934 | | - | |
935 | | - | |
936 | | - | |
937 | | - | |
938 | | - | |
939 | | - | |
940 | | - | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
0 commit comments