fix(data): replace non-ASCII lookalike characters in reference tables - #3245
fix(data): replace non-ASCII lookalike characters in reference tables#3245CodeRabbit-byte wants to merge 1 commit into
Conversation
Summary
Errors per inputErrors in ./references/offers/bridges.csv
Timeouts per inputTimeouts in ./references/offers/bridges.csv
|
USS-Supervisor
left a comment
There was a problem hiding this comment.
Verdict: REQUEST_CHANGES
Risk: MEDIUM
Summary: The Unicode-normalization part of this PR looks mechanically correct: I parsed all seven changed CSVs, row counts/headers/widths stayed stable, git diff --check is clean, and the touched cells differ only by the stated U+2011 / U+00A0 substitutions plus whitespace cleanup. However, the current review-cycle link-check report found a blocking link issue in a row this PR modifies.
Findings:
- MEDIUM
references/offers/bridges.csv,routerprotocolrow,actionButtons: the current-cycle link-check run reportedhttps://routernitro.com/swapas an error, and an independent check also fails DNS resolution forrouternitro.com. Because this PR touches therouterprotocolreference row, please replace that Bridge URL with a working official Router Protocol/Nitro URL or remove it if no working bridge URL is currently available. I also saw the run time out once onhttps://celerscan.com/, but that URL returned HTTP 200 in a follow-up check, so I am not treating it as blocking.
Confidence: HIGH
Addresses review on Chain-Love#3245. routernitro.com no longer resolves, so the Bridge link on the routerprotocol row was dead: https://routernitro.com/swap -> https://app.routerprotocol.com/ That is the URL behind every 'Launch App' button on routerprotocol.com. The /swap and /bridge paths under it both return 404, so the bare app URL is the correct target. The row's Docs link still returns 200 and is unchanged. validate_csv.py: All checks passed.
|
Fixed. The Confirming your finding independently: For the replacement I used the URL behind every Launch App button on I also grepped the whole repository: no other row references On One note on scope, since this PR was otherwise a pure character substitution: this is the only link edit in it, made because you asked and because the row was one this PR already touches. Everything else remains the Reward address: |
0973857 to
c218914
Compare
|
The requested change was pushed on 2026-08-29 and this PR has been waiting on a re-review since. To restate what was asked and what was done: the finding was that That Bridge URL is now
The branch was also rebuilt on current Nothing else changed: the rest of the PR is still only the stated Ready for re-review whenever the cycle allows. |
Summary
|
USS-Supervisor
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Risk: LOW
Summary: The updated reference-table normalization now clears the previous broken Router Protocol link finding. All seven touched reference CSVs parse with stable row widths and no duplicate slugs, required validation is passing, and the current-cycle link-check run 33490784047 completed successfully with 111/111 links and 0 errors, timeouts, or unsupported URLs.
Findings: None.
Confidence: HIGH
Rebuilt on current main. The fix is recomputed from the tree rather than replayed, so it changes only characters that are still present: 121 cells across 79 rows, U+2011 to '-' and U+00A0 to a space, with cell trimming. The routerprotocol Bridge URL is repointed from routernitro.com, which still fails DNS resolution, to app.routerprotocol.com, which returns 200.
c218914 to
323d9ba
Compare
Replaces 153 occurrences of two non-ASCII characters that have no legitimate use in this data, across 79 lines in 7 reference tables.
U+2011NON-BREAKING HYPHEN-(ASCII hyphen)U+00A0NO-BREAK SPACE(ASCII space)references/offers/bridges.csvreferences/offers/services.csvreferences/offers/security.csvreferences/offers/oracles.csvreferences/offers/platforms.csvreferences/offers/analytics.csvreferences/providers/providers.csvThis is not a cosmetic change. The clearest case: 28
assetTypescells inbridges.csvspell the token standard with a non-breaking hyphen —ERC‑20rather thanERC-20. Every other row in the database uses the ASCII form. A consumer filteringassetTypesfor"ERC-20"matches the ASCII rows and silently skips these 28, with no error and nothing in a visual diff to show why: the two characters are visually identical in almost every font.The same applies to values like
Cross‑chain Messagingintechnology,Intent‑basedinadditionalFeatures, andOn‑chain Usage MetricsindataSources. Each is one grep away from being invisible.U+00A0is the same class of problem in whitespace: values such as["NFT Sales Data␣API"]and0.5 ETH␣carry a no-break space where a normal space or nothing was meant. It survives.strip()in several languages' default behaviour, so a trailing one quietly defeats trimming and numeric parsing.Deliberately left alone. Em dashes (
U+2014, 12 occurrences) and en dashes (U+2013, 3) are untouched. They occur in prosedescriptionfields where they are plausibly intentional typography, and converting them would be an editorial change rather than a correction. Happy to normalise them too if you would rather the data were pure ASCII throughout — that is a house-style decision, not a defect.Scope and safety.
references/only, 79 lines — the 11 affected lines underlistings/specific-networks/follow in a separate PR so both stay inside the 100-line limit. A scripted diff againstupstream/mainconfirms every changed cell differs from its original solely by these two substitutions: no column width changes, no line-count change, and no other edit. Where removing a no-break space left a doubled or trailing space inside a value, that value is also trimmed. Zero occurrences of either character remain in these files.validate_csv.pyfrom thejson-toolsbranch:All checks passed.If it is useful, I can also contribute a validator rule rejecting
U+2011andU+00A0in future submissions, so this does not accumulate again — it is the kind of thing that is invisible in review and easy to paste in from a vendor page.Reward address:
0x1589423BeCC3F87EA9406155EaF4D5E04C34Dcf1(USDC/USDT, Ethereum mainnet)