Skip to content

fix(tui): linkify complete bare URLs with tildes#27088

Merged
fcoury-oai merged 1 commit into
mainfrom
fcoury/fix-26774-bare-url-tilde
Jun 9, 2026
Merged

fix(tui): linkify complete bare URLs with tildes#27088
fcoury-oai merged 1 commit into
mainfrom
fcoury/fix-26774-bare-url-tilde

Conversation

@fcoury-oai

Copy link
Copy Markdown
Contributor

Background

Bare URLs containing ~ in their path are currently only clickable up to the tilde in the interactive TUI. For example, Codex renders the visible text for:

https://www.cs.tufts.edu/~nr/cs257/archive/olin-shivers/dissertation.pdf

but the OSC 8 destination stops at https://www.cs.tufts.edu/. This makes Cmd-click open the wrong location even though the terminal recognizes the complete URL outside Codex.

Fixes #26774.

Root Cause

The URL scanner already accepts ~. The truncation happens earlier: with strikethrough parsing enabled, pulldown-cmark splits this URL into adjacent decoded Event::Text values around the tilde. The Markdown renderer annotated each text event independently, so only the first event still looked like a complete URL with a supported scheme.

The renderer now merges adjacent decoded text events before URL annotation. It preserves the combined source range while retaining parser-decoded contents, which avoids regressing entities such as &.

Changes

  • Add a small iterator that merges adjacent decoded Markdown text events and their source ranges.
  • Apply it at the Markdown renderer boundary before hyperlink detection.
  • Add regression coverage for the reported URL in prose, wrapped table output, and entity-decoded URLs.

How to Test

  1. Run Codex with just c.
  2. Ask the assistant to output this exact bare URL with no Markdown link syntax:
    https://www.cs.tufts.edu/~nr/cs257/archive/olin-shivers/dissertation.pdf
  3. Hold Cmd and hover or click the URL.
  4. Confirm the complete URL, including the suffix after ~, is one destination.
  5. Repeat with the URL inside a Markdown table and confirm wrapped portions retain the same complete destination.

Targeted tests:

  • just test -p codex-tui url_with_tilde
  • just test -p codex-tui merged_text_events_preserve_entity_decoding

The full codex-tui test run was also executed. Its only failures were the two existing Guardian feature-flag tests:

  • app::tests::update_feature_flags_disabling_guardian_clears_review_policy_and_restores_default
  • app::tests::update_feature_flags_disabling_guardian_clears_manual_review_policy_without_history

@canvrno-oai canvrno-oai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Tested and reviewed

@fcoury-oai fcoury-oai merged commit 4ca2e43 into main Jun 9, 2026
31 checks passed
@fcoury-oai fcoury-oai deleted the fcoury/fix-26774-bare-url-tilde branch June 9, 2026 00:02
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 9, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bare URLs containing ~ are partially linkified in Codex CLI output

2 participants