Repository navigation
row 159: kind-isolation admits no one-letter alias as a free-text needle (gate false positive) - #860
Merged
Merged
Conversation
…stance needle The hole (row 159, gate false positive): the instance vocabulary reads plugins.yaml aliases, and the C-built secret plugin's alias `c` became a whole-literal needle. Literals are folded to lower case, so every `extern "C"` ABI string and every one-letter `"c"` key in a neutral crate counted as a busbar x instance:secret hit: 262 of the axis's 444 Law 0 hits on predev 5c99bef. The fix: a LEARNED name (census id or registry alias) shorter than MIN_NEEDLE_LEN = 3 is no needle. Every other alias and census id of the five neutral kinds is 3+ characters (shortest: `env`), so the floor drops `c` and nothing else. The short name still attributes a module-name constant that spells it; module-name constants themselves count at any length. --report prints each dropped name as a `short` line. RED plants (matrix battery, instances::selftest): - GREEN case: the fixture crate writes `extern "C"`, `c == "c"` and every live short axis alias as a literal; its x secret cell stays 0. On predev the `c` alias makes it an unlisted-instance, so the case is red without this fix. - RED case: the same plant plus `module == "<first 3+ secret registry alias>"` (`vault`) is still the fixture's x secret unlisted-instance: long registry aliases keep counting. - unit test an_alias_under_three_characters_is_no_needle_and_a_longer_one_still_is. [[law0]] instance:secret rows re-measured (exact both ways), alias needle min length (false positive), ARCHITECT 2026-10-13: busbar 35 -> 19, busbar-contract 133 -> 45, busbar-core-admin 50 -> 38, busbar-kernel 114 -> 67, busbar-plugin-loader 107 -> 12; busbar-core-connector 3 -> 0 and busbar-kernel-egress 1 -> 0 (rows dropped: a neutral cell at 0 with no row is held at 0).
…contains (clippy manual_contains)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
xtask/src/gates/kind_isolation/matrix/instances.rs: a learned instance name (census id orplugins.yamlalias) shorter thanMIN_NEEDLE_LEN = 3is no longer a needle. It still attributes a module-name constant that spells it. Module-name constants count at any length.--reportprints each dropped name as ashortline.Why
The instance vocabulary reads
plugins.yamlaliases, and the secret aliasc(busbar-secret-c) became a whole-literal needle. Literals are lower-cased, so everyextern "C"ABI string and every one-letter"c"key in a neutral crate counted as aninstance:secrethit. That was 262 of the axis's 444 Law 0 hits on predev 5c99bef. It cost #833 a red and threatens #840.Every other alias and census id of the five neutral kinds is at least 3 characters (the shortest is
env). The floor therefore dropscand nothing else.RED plants (matrix battery,
instances::selftest)extern "C",c == "c"and every live short axis alias, and its× secretcell stays at 0. On predev thecalias makes this anunlisted-instance, so without the fix the case goes red.module == "vault"(the first 3+ character secret alias, read offplugins.yaml) is still the fixture's× secretunlisted-instance. Long aliases keep counting.an_alias_under_three_characters_is_no_needle_and_a_longer_one_still_is.Rows moved (
[[law0]], exact both ways)Reason on each row: alias needle min length (false positive), ARCHITECT 2026-10-13.
Precedent for the dropped rows is ad19498: a neutral cell at 0 with no row is still held at 0.
busbar-core-oauth2 × instance:secretstays at 1 (anenvhit). The[[instance]]presence rows for secret all stay live.Figures were re-measured by reading only (no local cargo). A line-for-line port of
file_literalsreproduces every currentinstance:secretceiling exactly; the "after" column is the same port withoutc.