Over-match check: pluto's 3 shipped pre-probe benign patterns vs real user-facing traffic
Fleet-wide follow-on to VENUS-327/PLUTO-653 (audit-venus-ca ruling, 2026-07-30, ref MARS's closed P/Q gate: over-match + allowlist lag, not pre-existing breadth). Read-only measurement, authorized under freeze, no code change. Evaluate pluto's 3 SHIPPED pre-probe patterns (favicon/sitemap NO_ROUTE_BY_DESIGN_RE + the pre-existing benign predicate from PLUTO-184, per PLUTO-653's afe9b74) directly against real admitted traffic -- do not infer from admitted-row presence alone, execute the actual shipped regex/predicate against real paths. Explicitly check for undeclared-but-real user-facing paths that could over-match into the benign/no-route bucket -- e.g. a malformed signed-link origin shape (cf the /n/ case from PLUTO-654, now fixed by PLUTO-13 but illustrative of the risk class: a real user-facing 404 silently swallowed by a benign pattern). Keep separate from MARS-585. Do not ship a fix from this WI -- measurement only; if over-match is found, file the fix as its own item.
Questions
Activity
-
MEASURED (coder-pluto-cc, read-only, no code change, freeze respected). Classifier byte-identical to afe9b74; 3 regex literals extracted mechanically from shipped source and executed against 5 populations: 8029 real traffic paths, 65 tree-derived app routes, 30 public/ assets, 5 app-emitted URLs (manifest.json/icon-192/icon-512/apple-touch-icon-180x180/favicon.ico), 17 named undeclared shapes. DEFECT CONFIRMED: ICON_PROBE_RE over-matches 10/30 shipped public assets, incl. /apple-touch-icon-180x180.png -- which IS declared (layout.tsx:39 metadata.icons.apple) and serves 200 today. Silences exactly the declared-and-missing case NO_ROUTE_BY_DESIGN_RE's own comment says must stay pageable. Inert today (all 10 serve 200), arms silently (info tier, no row, no page) the moment one regresses. Comment-vs-reality drift recorded, not fixed (192x192 claimed served, actually 404/absent; 120/152/180 claimed 404, actually served) -- per standing no-edit-to-match ruling. Negative-control check: /favicon.png correctly silenced (unreferenced anywhere in app/public/manifest) -- same instrument, opposite correct verdict on a sibling entry, so the discriminator is doing real work, not restating filenames. audit-venus-ca ACCEPTED as strong direct measurement (2026-07-30); ruled classifier over-match/detection defect, not current user breakage; ordered an executable tree+public+emitted-metadata enumeration fixture w/ anti-vacuous floors, disposition-in-test-name for the 10 known over-matches; venus to run the same derived check. Coverage bound: patterns x 5 populations + 7 live GETs; NOT exercised: -167x167 live status, the persist/write layer, unnamed future traffic shapes.
-
FIXTURE SHIPPED f2fe669 v2.22.34 (Class-S, test-only, live-confirmed dpl_9jrV4pL33GALnhQwierVXLtNncEw target production Ready). 15 tests, 309/309 suite, mutation-verified (4 mutation classes red incl. the actual future fix -- narrowing ICON_PROBE_RE off the shipped icons). Corpus gap closed: first walk missed Next file-convention metadata routes (favicon.ico, robots.ts->robots.txt) -- floors passed anyway (floor proves walk returned something, never everything); now in corpus, pinned non-benign; sitemap.xml's ABSENCE pinned so adding sitemap.ts later goes red deliberately. Corpus = 51 page.tsx+14 route.ts+2 metadata + public/ walked recursively, 404 sink collapses like any dynamic segment (per venus corpus-rule stack, not the deploy-skew manifest). SEVERITY CORRECTION (supersedes earlier 'zero row, zero page' claim, which was inherited from the classifier comment, never executed): appEvents HOLDS the row. 8752 page_not_found rows at level=info; post-pattern (13:35:57) /apple-touch-icon-192x192.png classified info by ICON_PROBE_RE AND a row was written. Pluto's benign class is DEMOTED not dropped -- zero PAGE, but queryable/detectable via appEvents. Differs materially from mars (persist:false, structurally blind) -- same 10 files, different consequence, fleet fix cannot assume common blast radius. Open question, NOT measured: whether these info rows survive appEvents retention pruning long enough to be a usable regression signal. 8029-population timeline resolved: benign patterns shipped 13:09 today (afe9b74); population predates them for all but a handful, so pre-pattern rows are pre-existing WARN rows, not post-pattern survivors -- diagnosed a timeline, not a rail difference. /manifest.webmanifest (the applog warn PM flagged): DO NOT ADD to benign class. Total population = 2 rows, both coder-pluto-cc's own measurement curls 3min apart, unauthenticated/referrer-null -- self-inflicted signal, zero real traffic. Would otherwise look like a clean favicon.png-class admission on every criterion except the one that matters.
-
FIXTURE FINAL: 4837859 v2.22.35, live-confirmed dpl_CzTKCzXZ5KskbuYGj1HpZ1M5omWp. 16 tests, 310/310 suite, Class-S test-only. Confirmed never reused the deploy-route-manifest (walks src/app directly, matchesAnyRouteTemplate not in path). Corpus: 66 route templates (51 page.tsx+14 route.ts+2 file-convention metadata -1 sink) + 30 public assets (recursive) + 4 metadata-emitted URLs; comment says 69 -- left un-edited, ambiguity not drift, resolved by re-derivation. Catch-all rule explicit+guarded: excludes ONLY the /[...notFoundPath] sink (not wholesale), with a premise test asserting it's pluto's ONLY catch-all so the narrow exclusion can't silently widen if a second one appears. One surviving (correct-by-construction) mutation disclosed: widening sink-exclusion to all catch-alls doesn't redden today since there's only one -- enforced by the premise test, not by this behavior, flagged honestly rather than claimed as coverage. Full mutation ledger: 5 of 6 mutation classes red (broadened ICON_PROBE_RE, narrowed ICON_PROBE_RE off shipped icons, favicon.png dropped from benign class, enumerators return [], metadata routes dropped from corpus); 1 disclosed survivor as above.
-
Over-match confirmed (ICON_PROBE_RE swallows advertised apple-touch-icon-180x180.png) + fixture shipped 4837859/v2.22.35 pinning the 10 known over-matches with anti-vacuous floors. Fleet-ruled (pmmaster): pluto's row-persists-but-undetected effect = mars's persist:false in practical outcome (PLUTO-659), though mechanism differs (demote-into-unread-tier vs never-write) -- one fleet design, one urgency, per-rail mechanism for the eventual remedy.
-
Coverage gap confirmed on NO_ROUTE_BY_DESIGN_RE's live-fire verification (coder-pluto-cc): the only candidate rows for /favicon.png and /sitemap.xml with tierLevel:warn are dated 12:59:24-25 UTC, 10min BEFORE afe9b74 landed (13:09:16 UTC) -- pre-pattern, almost certainly coder-pluto-cc's own live-origin admission curls (same self-inflicted class as /manifest.webmanifest). Zero post-13:09 rows exist for either path. So NO_ROUTE_BY_DESIGN_RE's live firing is UNVERIFIED, not confirmed -- consistent-with only. Do not read prior 'confirmed live' language on this pattern as a green check.
-
Fleet design state (no pluto action, for record): venus leg CLOSED as out-of-scope (proxy matcher change, separate WI, pm-venus-cc's to open) -- narrowing ships on venus for correctness only (app must not suppress a URL it ships/advertises), zero detection benefit there (proxy.ts:114 excludes static extensions before classifyOrigin runs, discards evidence 2 layers upstream). Final 3-rail remedy shape: mars = call-site early return (db-mars-cc field-control leg still held), pluto = digest that cannot resolve (route absent from group key -- our leg, NO_ROUTE_BY_DESIGN_RE unverified-live-fire carried as explicit unknown into review), venus = middleware matcher (out of this WI). coder-mars-cc drafting general shape + pluto leg; coder-pluto-cc + coder-venus-cc review when it lands.
-
coder-pluto-cc design-v2 review: APPROVE for mars implementation. Refined Sec.0: two-instrument framing (enumerable set vs shape pattern) discriminated by whether a source-of-truth exists to diff against, not by layer -- SCANNER_PROBE_RE's sourcemap-name class stays shape-only (build-tool-generated, unenumerable), converting it to a set would be the mirror error. Sec.6 enumerator gaps (own tree, all measured, all consequence-nil -- checked clean on all 4 shipped patterns incl SCANNER_PROBE_RE 88-sublit OR-test w/ /.env control): (1) /sw.js missed -- extension-axis gap (allowlist excludes .js), not mars's corpus/region gap; pluto ships public/sw.js. (2) 6 advertised URLs outside layout.tsx entirely (formulario-practica.pdf, login01.webp, logoencabezado-*.webp, pluto-planet.png, templates/carga-anual-usuarios.csv) -- enumerator reads one file only, PUBLIC_ASSETS covers them as shipped but advertised-tier undercounts. (3) manifest.json read as icons[] only -- start_url:"/" unextracted; shortcuts/screenshots/related_applications confirmed empty (measured, not assumed). Out-of-scope, flagged not dropped: /sw.js.map silenced by SCANNER_PROBE_RE sub-pattern -- correct today (no .map shipped), standing risk if Next ever emits one, explicitly not widening this WI. Bound-test layer declared: all 3 existing pins (not-found-classify-collisions.test.ts:315-352) assert PATTERN-level (benignMatches toContain ICON_PROBE_RE), not classification-level. Design leaves ICON_PROBE_RE unchanged and subtracts upstream, so all 3 stay green post-fix -- inert as regression detectors, re-labeled pattern-shape pins. New classification-layer test owed: advertised icon must reach reason/referer chain, not just benign return. NO_ROUTE_BY_DESIGN_RE live-fire still unverified -- zero post-deploy rows for /favicon.png or /sitemap.xml, carried as explicit unknown. Pluto's own implementation (after mars ships) needs: classification-layer test, APP_ASSET_URLS sourced from all 6 files (not layout.tsx alone), extension-filter removed from drift guard (that's the axis that bit us), digest group-key fix ships as separate commit per its own WI note (changes an artifact Elazar reads weekly).
-
Fleet ruling (pmmaster, post-mars-ship): every drift guard on this WI must be MUTATION-FALSIFIED, not just widened -- mars's old guard re-encoded the answer it checked (regex matched apple-touch-icon literally) so it was structurally incapable of catching /sw.js no matter how many runs; only removing an item from EMITTED and watching it fail proves the guard works, plus an anti-vacuous match-count assertion for the empty-regex case. Also: bound-test standard is retained-set + dropped-count TOGETHER (asserting only one side passes a fix that's wrong on the other). Relaying both as binding acceptance criteria to coder-pluto-cc for the in-progress drift-guard widening.
-
Fixed: over-match ICON_PROBE_RE silencing (10 advertised apple-touch-icons were falling to benign/info despite being live-declared assets). Shipped 51b68c4 v2.22.38, Class-S self-PTD PASS (live 2.22.38, deploymentId dpl_AxzVv1Ssr76EsBwy8yy1LXoeCD1S matched at alias, prod). Explicit advertised-set subtraction upstream of ICON_PROBE_RE (pattern itself unchanged, per fleet design v2, 3-rail consensus mars/pluto/venus). Drift guard mutation-falsified both directions; classification-layer assertions added (pattern-level pins alone don't invert on this fix); ANCHOR PIN substituted with an unshipped probe path to preserve its property rather than let it silently stop testing anchoring. Coder self-caught and reverted a near-miss: borrowing mars's 'retain at info' shape verbatim would have demoted 20 already-warn assets (that were never silenced, just never advertised-set-matched) down to info -- silencing assets that page TODAY to fix a regression that didn't exist on pluto's rail (pluto always wrote the row; mars's fix works because mars wrote nothing pre-fix). Verified via measurement, not reasoning-by-analogy. 0/694 7d 404-rows are app assets -- ships as a tripwire, adds no warn volume today.