Repository navigation
cmux next: a quoted or out-of-range bare #N stays text - #27290
Conversation
Leo: "these auto render to the pr instead of just #1 #2...". Red at base. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-9131aa102699be06c366
Leo: "these auto render to the pr instead of just #1 #2...". A reply quoting "what is #1 / #2" drew cmux#1 and cmux#2 chips. - A blockquote links no bare #N (owner/repo#N and addresses still link). - Rule 4: rules c and d take a candidate only when N is as long as the smallest number the chat named in it; out of the folder's range, only the App's pull request cache can link N, else it is text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-9131aa102699be06c366
A prompt's pasted pull request address may draw as a chip too (#27167). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-9131aa102699be06c366
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Unclear: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 66f4014 to compare; do not merge until green; see lane-rules Gallery before/after for
States
Pick other states with a |
|
Owned by an agent session · session |
|
Bead |
|
Found 7 test failures on Blacksmith runners: Failures
|
…bare-refs # Conflicts: # webviews/src/agent-session/acpmux/conversation/Markdown.tsx
|
Review (codex-review-box/gpt-6-astra high, lane-place): SHIP at 3ff0477 SHIP No actionable findings. Tests could not run because Bun and dependencies are unavailable in the box. |
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40851476637 at c89a975 failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
|
Shipped in:
|
|
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40850581153 at 72a1cea failed: cmux-next checks (god files, concurrency, crash safety, l10n). |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo: "these auto render to the pr instead of just #1 #2...".
An agent reply that quoted his "what is #1 / #2" turned each bare number into a chip for cmux's real (and unrelated) pull requests #1 and #2. The cause is rule d in
conversation/bareReferences.ts: a bare#Nwith no other evidence links to the chat folder's repository, whatever N is.Two changes:
#N. A blockquote renders withlinkBareReferences: false(newInlineOptionsfield,Markdown.tsx). The quote's options object is memoized peropts, so memoized blocks don't redraw.owner/repo#N, GitHub addresses and commits still link inside a quote. Inline code and code blocks already never linked, andbare-pr-refs.test.tsxcovers that.#Nmust fit the chat's number range. Rules c and d now only consider a candidate repository when N has at least as many digits as the smallest number the chat named in that repository. A cmux chat that named feat(agent-pane): make sub-session cards disclosure rows #27262 therefore doesn't read "Fix find focus and align search overlay #1" as a cmux pull request. If the folder's repository is out of range, rule d doesn't apply: the App's pull request cache has to confirm one of the chat's other linked repositories, or N stays text. A repository the chat never named a number in has no range, so Leo's 2026-10-20 behaviour (a bare#634in a fresh chat links to the folder's repository) still holds. The smallest number per repository is tracked as each row is read (O(1) per named reference), so streaming adds no per-row work.Rules a and b don't change. A number the turn or an earlier turn named as
owner/repo#Nor as an address is still a chip, whatever its size.Risk: a chat that named only large numbers in a repository and then means one of its small, old PRs by bare number will show it as text. An explicit
owner/repo#Nstill links it.Gallery:
transcript→github-references-quoted-numbers.Changelog
Tests
Red at base (test commit 808d374 on 621568b),
cmux-ci test --setup webviews -- bash -c 'cd webviews && bun test test/bare-ref-repo.test.tsx test/bare-pr-refs.test.tsx': 16 pass, 2 fail. Both new tests got extra#1/#2chips pointing atmanaflow-ai/cmux/pull/1and/pull/2(run 40835284976).Green at head c2605c9, same command: 19 pass, 0 fail (run 40835736342). The added rule-4 test checks that, with the folder's repository out of range, only the cache's answer links a number.
scripts/web-lint.shandpython3 scripts/cmux-next/prepush-gate.pypass.Observed / Not run
bare-ref-repo.test.tsxandtranscript.gallery.ts, so a prompt's pasted PR addresses can become chips. The new tests count only bare#chips where that matters, so they hold whichever PR lands first.🤖 Generated with Claude Code
Agent session: agent session
Summary by cubic
Stops bare
#Nreferences in agent transcript replies from auto-linking to unrelated pull requests. A quoted "#1" or "#2" and numbers smaller than any the chat named in a repository now render as plain text.#N;owner/repo#N, addresses, and commits still link inside quotes.#Nlinks to the folder's repository only when N is as long as the smallest number the chat named in that repository; otherwise the app's pull request cache must confirm another linked repository.owner/repo#Nstill links them.Changelog
Tests
#1/#2chips pointing at cmux PRs); green at head (19 pass), with web lint and the prepush gate passing.github-references-quoted-numbersgallery state covers the quote and prose cases.#chips, so the overlapping PR cmux next: links in the agent chat show their site's icon #27167, which chips pasted PR addresses, doesn't break them.Written for commit 3ff0477. Summary will update on new commits.