fix(core): punctuation-only rendered text no longer acts as a universal wildcard (6F.1, A14)#43
Merged
officialCodeWork merged 1 commit intoJul 15, 2026
Conversation
…al wildcard (6F.1, A14)
Field validation of ui-lineage@0.3.0 found that rendered text normalizing to
empty ("|", "/", "-") matched every query — needle.includes("") is always
true — so find_component returned the same punctuation components for any
input, including gibberish, and resolve_context inherited false "high
confidence" matches. Pure-"*" templates collapsed to a match-everything regex
the same way.
New hasMatchSignal guard in textMatches: a target must carry at least 2
alphanumeric characters (wildcards/spaces excluded) to match at all. With no
surviving targets, gibberish falls through to the existing
declined("no-signal") path.
Also introduces Phase 6F (field hardening, 8 steps from the 2026-07-15
validation feedback) in TRACKER.md and failure mode A14 in the catalog.
New fixture a14-punctuation-wildcard + 8 core unit tests. Eval 271/0/0,
gate OK; all package tests and typecheck green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Merged
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.
Summary
Field validation of
ui-lineage@0.3.0on a production React/Redux codebase found the highest-impact defect in the matcher: rendered text that normalizes to empty (|,/,-) matched every query —needle.includes("")is always true — sofind_componentreturned the same ~20 punctuation-rendering components for any input (including gibberish), andresolve_contextinherited false "high confidence" matches. A pure-*template entry collapsed to a match-everything regex the same way.Fix
hasMatchSignalguard intextMatches(packages/core/src/text.ts): a match target must carry ≥ 2 alphanumeric characters (wildcards/spaces excluded) to match at all.declined("no-signal")path — no separate decline branch needed;resolve_contextinherits the fix throughmatchComponents.Also in this PR
a14-punctuation-wildcard: gibberish →declined: no-signal; real term ranks the real component top-1 with no punctuation noise; gibberish mixed into a real query doesn't poison it.Verification
pnpm test: 199 tests green across 5 packagespnpm eval: 271 pass · 0 fail, all honesty metrics 1.000, gate OKpnpm typecheck: clean🤖 Generated with Claude Code