mac: clickable links in the preview — consumer of display-list-v2-links (#323, step 1) - #333
Conversation
Decode the proposal §3 navigation object (tolerant of absence) on both v2 readers, request the capability only with display-list-v2 (setLiveV2 and configure_layout), and hit-test link rects in a pure type. Clicks open http/https/mailto via NSWorkspace and scroll internal destinations; file: and javascript: are rejected. Control on unmodified c02fcb9: Selected tests 22 executed, 5 skipped, 0 failures (PreviewV2Tests 8/0, DisplayListDeltaTests 5 executed 4 skipped, V2ImageTests 9 executed 1 skipped). DisplayListCompact tests are not on this main. After: DisplayListLinksTests 9 executed 0 failures; existing suites still green (PreviewV2Tests 8/0, PreviewV2LiveTests 7/0, DisplayListDeltaTests 5/4 skipped, V2ImageTests 9/1 skipped). RenderingV2Tests 14/0. swift build: Build complete! (0.36s) Next: pipeline producer (issue step 2) after #131; no outline sidebar. Implementation-Agent: cursor-agent cursor-grok-4.6-high-fast Commit-Executor: cursor-agent Lane-Owner: daniel-parent (mac-m5pro-dq222) Co-authored-by: Cursor <cursoragent@cursor.com>
|
daniel-parent overlap heads-up: #367 (display-list-v2-window, draft on #294) and #333 (clickable links, the Mac consumer of |
|
daniel-parent Mac pre-merge verification (for the integration lane, which has no Swift toolchain). Xcode 26.6, macOS 26.6, merged onto
About the 3 full-suite failures: |
…h CI past #334 (bridge) and #327 (Mac inventory) Claude-Session: https://claude.ai/code/session_012c9XLkHjePPGBuarrmE2mz
hyperref and \hypersetup, and break URLs the way url.sty does (rebase of #385)
#388
Lane
daniel-parent(Max 20x, mac-m5pro-dq222; not daniel-vpclaude), claimGH-323. The Commander assigned the lane on #2 at 05:53Z and approved this extra Cursor worker at 06:08Z.What
The Mac consumer of
protocol/proposals/display-list-v2-links.md. Once a producer emitsnavigation,\href/\urlare clickable in the preview. Until then it's inert: no producer echoes the capability yet, so nothing changes for users.FlashTeXProtocol/RenderingV2.swiftnavigationobject (links, destinations, outline, info)FlashTeXProtocol/RenderingV2Fast.swiftnavigationinstead of skipping it as an unknown keyDisplayListDelta.swiftnavigationthroughDisplayListLinks.swiftaction(for:)PreviewV2View.swiftPreviewAnchor.swiftShellModel.swiftdisplay-list-v2-linksonly together withdisplay-list-v2; opens allowlisted URIs throughNSWorkspaceSafety
navigationonly when the producer echoed the capability.missing_layout_capabilities(crates/preview-controller/src/lib.rs), and the app only logs that (ShellModel+Controller.swift:512). There's no v1 fallback, and live v2 tests pass with the capability sent.http,https,mailto.file:,javascript:and schemeless URIs are rejected.crates/,vendor/, frozen schemas and contracts, and the editor (IDE: syntax highlighting and completion are absent when the editor first gets focus; appear after switching files and back #280 area).Tests
FLASHTEX_NO_ACTIVATE=1): DisplayListLinksTests 9/0, PreviewV2Tests 8/0, RenderingV2Tests 14/0, DisplayListDeltaTests 5 (4 skipped)/0, V2ImageTests 9 (1 skipped)/0. 45 executed, 5 skipped, 0 failures. The skips needFLASHTEX_RENDER/FLASHTEX_COMPILERhelpers.c02fcb9fgave 22 executed, 0 failures; PreviewV2LiveTests 7/0 afterwards.Tests/FlashTeXMacTests/Fixtures/display-list-v2-links.json, written from the proposal's examples.Gaps and follow-ups
vendor/compilerre-pin./Borderpainting (both optional).y(proposal §4).mac-claude-a; this PR is that consumer, for review.Provenance
cursor-agent
cursor-grok-4.6-high-fast, checkpoint4483f500. daniel-parent reviewed the gating, the missing-capability path and the allowlist, and re-ran the tests.