Skip to content

fix: expand issue references only when selected - #1098

Merged
xHeaven merged 1 commit into
dev-null-sh:productionfrom
xHeaven:fix/issue-reference-keys
Oct 24, 2026
Merged

xHeaven merged 1 commit into
dev-null-sh:productionfrom
xHeaven:fix/issue-reference-keys

Conversation

@xHeaven

@xHeaven xHeaven commented Oct 24, 2026

Copy link
Copy Markdown
Member

Summary

Typing #722 and then Space or punctuation used to replace the number with a GitHub URL, including when a delayed lookup finished after more text was typed. Keep the text literal until the author selects the suggestion with Enter, Tab, or a click, matching emoji suggestions.

Changes

  • Match an issue number only while it ends at the caret; stop tracking it after a delimiter.
  • Remove the automatic URL-insertion effect and reuse the existing suggestion selection handler.
  • Update the issue-reference regression cases, register them with the existing frontend test configuration, and update the public knowledge base.

Validation

  • composer test:lint, composer test:type-coverage (100%), bun run test:unit (153 tests), bun run test:types, and bun run build: passed.
  • Focused issue, emoji, and mention tests: 16 passed across four files.
  • Full PHP suite with the CI/coverage flags and four local workers: 4,110 passed, 23,057 assertions, 100% coverage. The first run had one transient mention-identity failure; its three focused variants and the complete rerun passed.
  • Real browser checks cover Space, punctuation, Enter, Tab, Shift+Enter, Escape, clicking, code, qualified references, URL fragments, partial numbers, emoji selection, delayed lookup, and simulated missing/503 lookup responses. Reply, quote, and Remotes consumers also exercise Space and Enter in all three viewport sizes and both themes.

Visual evidence

Local demo data; before is production at 722488ea3d7e67ff82b5f45467187d4cdbb35fa2, after is 03dce95c6bd1ad469980a09ebb0d023ad16fcdc9. Desktop recordings are Chrome at 1280×800 with cursor/key overlays. Screenshots are 2× desktop 1440×900, laptop 1366×650, and mobile 390×844 viewport emulation, in light and dark.

Before: Space expands the reference

Before: Space automatically expands an issue reference

Before MP4

After: Space stays literal, Enter and Tab select

After: Space leaves the reference literal; Enter and Tab insert the URL

After MP4

Main composer after Space: full before/after viewport and theme matrix
Viewport / theme Before After
1440×900, light before Main composer after Space, 1440×900, light after Main composer after Space, 1440×900, light
1440×900, dark before Main composer after Space, 1440×900, dark after Main composer after Space, 1440×900, dark
1366×650, light before Main composer after Space, 1366×650, light after Main composer after Space, 1366×650, light
1366×650, dark before Main composer after Space, 1366×650, dark after Main composer after Space, 1366×650, dark
390×844 (emulation), light before Main composer after Space, 390×844 (emulation), light after Main composer after Space, 390×844 (emulation), light
390×844 (emulation), dark before Main composer after Space, 390×844 (emulation), dark after Main composer after Space, 390×844 (emulation), dark
Main composer suggestion: full before/after viewport and theme matrix
Viewport / theme Before After
1440×900, light before Main composer suggestion, 1440×900, light after Main composer suggestion, 1440×900, light
1440×900, dark before Main composer suggestion, 1440×900, dark after Main composer suggestion, 1440×900, dark
1366×650, light before Main composer suggestion, 1366×650, light after Main composer suggestion, 1366×650, light
1366×650, dark before Main composer suggestion, 1366×650, dark after Main composer suggestion, 1366×650, dark
390×844 (emulation), light before Main composer suggestion, 390×844 (emulation), light after Main composer suggestion, 390×844 (emulation), light
390×844 (emulation), dark before Main composer suggestion, 390×844 (emulation), dark after Main composer suggestion, 390×844 (emulation), dark
Reply suggestion: full before/after viewport and theme matrix
Viewport / theme Before After
1440×900, light before Reply suggestion, 1440×900, light after Reply suggestion, 1440×900, light
1440×900, dark before Reply suggestion, 1440×900, dark after Reply suggestion, 1440×900, dark
1366×650, light before Reply suggestion, 1366×650, light after Reply suggestion, 1366×650, light
1366×650, dark before Reply suggestion, 1366×650, dark after Reply suggestion, 1366×650, dark
390×844 (emulation), light before Reply suggestion, 390×844 (emulation), light after Reply suggestion, 390×844 (emulation), light
390×844 (emulation), dark before Reply suggestion, 390×844 (emulation), dark after Reply suggestion, 390×844 (emulation), dark
Quote suggestion: full before/after viewport and theme matrix
Viewport / theme Before After
1440×900, light before Quote suggestion, 1440×900, light after Quote suggestion, 1440×900, light
1440×900, dark before Quote suggestion, 1440×900, dark after Quote suggestion, 1440×900, dark
1366×650, light before Quote suggestion, 1366×650, light after Quote suggestion, 1366×650, light
1366×650, dark before Quote suggestion, 1366×650, dark after Quote suggestion, 1366×650, dark
390×844 (emulation), light before Quote suggestion, 390×844 (emulation), light after Quote suggestion, 390×844 (emulation), light
390×844 (emulation), dark before Quote suggestion, 390×844 (emulation), dark after Quote suggestion, 390×844 (emulation), dark
Remotes suggestion: full before/after viewport and theme matrix
Viewport / theme Before After
1440×900, light before Remotes suggestion, 1440×900, light after Remotes suggestion, 1440×900, light
1440×900, dark before Remotes suggestion, 1440×900, dark after Remotes suggestion, 1440×900, dark
1366×650, light before Remotes suggestion, 1366×650, light after Remotes suggestion, 1366×650, light
1366×650, dark before Remotes suggestion, 1366×650, dark after Remotes suggestion, 1366×650, dark
390×844 (emulation), light before Remotes suggestion, 390×844 (emulation), light after Remotes suggestion, 390×844 (emulation), light
390×844 (emulation), dark before Remotes suggestion, 390×844 (emulation), dark after Remotes suggestion, 390×844 (emulation), dark

Suggestion, Space, Enter and Tab interactions, navigation, and the idle cycle measured 0 CLS in the final six-case matrix. The exact base and head have identical nonzero first-load CLS: 0.0035268 desktop, 0.0054267 laptop, 0.0306681 mobile. Existing link-preview controls can also move after delayed updates (observed on both revisions); those pre-existing layout issues remain outside this input-behavior change. No page-level JavaScript exceptions were observed. Local sign-in produces an expected Inertia HTTP 409 location response in both captures.

Device verification

iPhone 18 Pro, iOS 27.0 Simulator, Safari: on-screen Space leaves #722 literal; Backspace reopens the suggestion; Return inserts its URL. The keyboard stays open and the Commit action remains visible. Scrolling beyond the first screen and a client-side Following transition were checked. Native evidence covers the common textarea in the main composer; the other composers have viewport emulation coverage.

iPhone Simulator: Space stays literal and Return inserts the URL

Native MP4, idle intervals cut

Suggestion After Space After Return
Native suggestion with keyboard Native literal reference after Space Native URL after Return

Independent review

CODE: PASS · VISUAL: PASS · OVERALL: PASS from an independent Sol 6.1 reviewer with high reasoning and fast service.

Reviewed base 722488ea3d7e67ff82b5f45467187d4cdbb35fa2 and head 03dce95c6bd1ad469980a09ebb0d023ad16fcdc9; all 71 frozen media hashes verified against manifest SHA256 969f8f402c468d4c6efa1c71c2a95e319a20e9bac39d3bfc9cac6ec163bb4c18.

The reviewer independently reran the 16 focused tests, compared exact-base/head browser behavior across all six viewport/theme combinations, exercised the reply/quote/Remotes consumers and delayed lookup cases, and inspected screenshot matrices, native screenshots, and sampled frames from all three recording pairs. No actionable findings. Broad checks were assessed from the supplied logs; native evidence was supplied simulator evidence, and recordings were sampled rather than reviewed frame by frame.

Limitations

  • Existing first-load and delayed link-preview layout shifts described above remain; the zero-shift target is not met for the whole page.
  • No physical device, Android, or mobile hardware-keyboard Tab coverage. Android tooling is unavailable on this host.
  • The shared textarea was exercised on native Safari in the main composer; reply, quote, and Remotes were checked in desktop/mobile emulation.

@xHeaven
xHeaven merged commit 3617849 into dev-null-sh:production Oct 24, 2026
5 checks passed
@xHeaven
xHeaven deleted the fix/issue-reference-keys branch October 24, 2026 01:15
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.

1 participant