Skip to content

Preserve literal benchmark names and URLs in Markdown exports - #778

Closed
rudycelekli wants to merge 2 commits into
ktwu01:mainfrom
rudycelekli:fix/radar-markdown-links-20261006
Closed

rudycelekli wants to merge 2 commits into
ktwu01:mainfrom
rudycelekli:fix/radar-markdown-links-20261006

Conversation

@rudycelekli

@rudycelekli rudycelekli commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Benchmark names with brackets, backslashes or emphasis characters can change their displayed link label. A URL containing a closing parenthesis or table separator can terminate the target or shift the exported table columns.

Change

Escape Markdown label characters and percent-encode delimiters in the Markdown link target. Preserve the original evidence URL in JSON and CSV.

Verification

The new regression uses the actual registry-to-catalog-to-write_exports pipeline. It fails before the change and passes afterward, checking the literal label, target, table boundaries and unchanged JSON evidence URL.

All six required checks passed in a clean detached checkout at 50a837d4831404732fd239178eee0d2429d5d13e, with its own editable Python 3.12 environment and initialized paper submodule:

  • ruff check . — passed
  • ruff format --check . — passed
  • benchmark-radar normalize-catalog — passed
  • benchmark-radar classify — passed
  • benchmark-radar build-data-release — passed
  • pytest -q — passed

Pytest: 1643 passed in 89.04s (0:01:29). Node 24.19.0 was used for the existing JavaScript consumer tests; upstream CI uses Node 22.

Notes

The change is confined to Markdown serialization; it does not change benchmark identities, rankings or source URLs.

No source-data or generated-data edits are included. The clean rebuild preserved 3,212 benchmark records across 5 sources. Index keys and shard slugs exactly matched the generated CLI archive; no source records were merged or removed.

Prepared with Codex assistance. The commit is signed and includes a Signed-off-by trailer.

Review follow-up

Completed literal-label escaping for strikethrough, HTML delimiters and entity markers. Markdown destinations preserve IPv6 brackets while still encoding closing parentheses and table separators. The existing export regression now covers all three cases and confirms JSON evidence URLs remain unchanged.

Signed-off-by: Rudy Celekli <rudy@gradiahq.com>
Copilot AI balanced review requested due to automatic review settings October 6, 2026 09:45
@rudycelekli

Copy link
Copy Markdown
Contributor Author

330226 gpt-6.1-sol

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Markdown names remain vulnerable to formatting, and URL encoding breaks valid IPv6-host links.

Review effort: Balanced
Findings: 2 Medium severity

Open (2)
What changed in this PR

Improves Markdown exports so benchmark names and evidence URLs retain their intended presentation.

Changes:

  • Escapes Markdown-sensitive label characters.
  • Encodes link-target delimiters while preserving JSON URLs.
  • Adds an end-to-end regression test.
File Description
src/​benchmark_radar/​export.py Adds Markdown label and URL escaping.
tests/​test_export.py Tests labels, delimiters, table boundaries, and JSON preservation.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/benchmark_radar/export.py Outdated
Comment thread src/benchmark_radar/export.py Outdated
Signed-off-by: Rudy Celekli <rudy@gradiahq.com>
Copilot AI balanced review requested due to automatic review settings October 6, 2026 10:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The focused implementation addresses the reported Markdown edge cases with representative pipeline-level regression coverage.

Review effort: Balanced
Findings: None

Resolved since last review (2)

ktwu01 commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Closing as not planned. One author now has a cap of 10 open issues + PRs, and this account had 56 open PRs and 11 open issues, mostly paired with each other. We merged the three changes that fix silent data loss in the corpus (#723, #774, and #773 once rebased) and are closing the rest so review stays possible.

This is not a verdict that the change is wrong. If you think this one matters, reopen it later when you are under the cap, one at a time, with a reproduction from a real user or caller rather than a hypothetical edge case.

不是否定这个改动本身。为保证评审能跟上,同一作者最多同时保留 10 个未关闭的 issue/PR;该账号曾有 56 个未关闭 PR 和 11 个 issue。已合并修复语料静默丢失的三个改动,其余先关闭。若认为本条重要,请在低于上限后逐个重新打开,并附真实用户或调用方的复现。


Generated by Claude Code

@ktwu01 ktwu01 closed this Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants