bug(mecatui): assistant-response Markdown links are not terminal-clickable
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 152
- Forks
- 16
- Avg merge
- 14h 48m
- Merged PRs (30d)
- 536
Description
Summary
Markdown links in mecatui assistant responses are not actionable in terminals that normally support terminal links, including iTerm2 and Ghostty. For example, a rendered [PR #812](https://github.com/stacklok/mecatl/pull/812) cannot be opened with Cmd-click, right-click, or equivalent terminal link actions.
Expected behavior
Assistant-response Markdown links should be terminal-clickable, preferably through validated OSC 8 hyperlinks where the terminal supports them. Plain URLs should also remain detectable by terminals where applicable.
Scope and safety constraint
This should not weaken the terminal-control sanitization used for untrusted plain UI content (tool output, permission prompts, errors, etc.). That boundary is intentional to prevent terminal-escape/UI-spoofing injection.
Relevant code
- Assistant Markdown rendering:
cmd/mecatui/ui/render.go(markdownWidth, Glamour renderer) - Markdown link styling:
cmd/mecatui/theme/glamour.go - Plain-content terminal safety boundary:
cmd/mecatui/ui/sanitize.go
The status-line protocol intentionally does not emit OSC 8 yet; this issue concerns assistant response rendering rather than StatusML links.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in cmd/mecatui/ui/render.go at the markdownWidth and Glamour rendering path, then read cmd/mecatui/theme/glamour.go for link styling. Compare the assistant-response path with the safety boundary in cmd/mecatui/ui/sanitize.go; done means Markdown links are actionable in supported terminals while untrusted plain UI content remains sanitized.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 74/100