Skip to content

feat(ui): inline page preview on wiki-link hover (#421)#79

Open
advancedresearcharray wants to merge 12 commits into
mainfrom
feat/issue-421-wiki-link-hover-preview-clean
Open

feat(ui): inline page preview on wiki-link hover (#421)#79
advancedresearcharray wants to merge 12 commits into
mainfrom
feat/issue-421-wiki-link-hover-preview-clean

Conversation

@advancedresearcharray

@advancedresearcharray advancedresearcharray commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Upstream: kiwifs#421

Summary

  • Add inline hover preview for rendered [[wiki-link]] anchors in read/preview mode using Radix HoverCard
  • Lazy-fetch preview data via GET /api/kiwi/peek with cache, in-flight dedup, and stale-write guards
  • Show title, path, ~200-char snippet, and tags; broken links display "Page not found"
  • Touch/coarse-pointer devices get plain anchors; keyboard Tab focus does not open the popover
  • Rebased onto main (includes feat(ui): embeddable npm package @kiwifs/ui with headless components kiwifs/kiwifs#460 embeddable @kiwifs/ui); preserves onWikiLinkClick for headless consumers

Test plan

  • cd ui && npm test -- --run wikiLink — 28/28 passed
  • cd ui && npm test -- --run — 211/211 passed
  • go test ./internal/mcpserver/ -run 'TestPeek|TestToolHandler_Peek' — passed
  • Manual: hover wiki-link in read mode → preview popover after ~300ms
  • Manual: broken link shows "Page not found"
  • Manual: editor mode has no hover preview
  • Manual: touch device / coarse pointer → no HoverCard, click navigates normally

Closes kiwifs#421 (when merged upstream)

Array Fleet and others added 11 commits July 3, 2026 18:19
Show Obsidian-style page previews on wiki-link hover using Radix
HoverCard, lazy /api/kiwi/peek fetches with deduplicated caching,
and touch-device detection to skip hover on coarse pointers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Peer review follow-up: local-notes markdown anchor renderer now omits
the react-markdown node prop before forwarding attrs to hover preview.

Co-authored-by: Cursor <cursoragent@cursor.com>
Peer review: pass through the original #kiwi: / #kiwi-missing: href
from remark-wiki-links instead of reconstructing page paths on the
underlying anchor element.

Signed-off-by: Array Fleet <fleet@advancedresearcharray.local>
Co-authored-by: Cursor <cursoragent@cursor.com>
Spread remark attrs before explicit href/onClick/className so
markdown plugin props cannot override navigation or hover handlers.

Peer review approved; 18/18 UI tests and peek API tests pass.

Signed-off-by: Array Fleet <fleet@advancedresearcharray.local>
Co-authored-by: Cursor <cursoragent@cursor.com>
…ew delivery

Co-authored-by: Cursor <cursoragent@cursor.com>
…iwifs#421)

Peer review found clearWikiLinkPeekCache() could be undone by peek
responses started before navigation. Add cacheGeneration guard and
regression test; align cross-page anchor scroll delay with KiwiPage.

Co-authored-by: Cursor <cursoragent@cursor.com>
…wifs#421)

Extract allowHoverCardOpenChange() with unit tests and fix anchor title
prop order so missing-link tooltips are not overridden by remark attrs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Hands-on takeover re-ran full UI and Go peek tests, completed peer
review, and logged verified delivery for the hover preview feature.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ew verification

Co-authored-by: Cursor <cursoragent@cursor.com>
Record rebase onto main, onWikiLinkClick wiring, and test verification.

Co-authored-by: Cursor <cursoragent@cursor.com>
…-on takeover

Log green test run (28 wikiLink + 211 UI + peek API) and fleet delivery verification.

Co-authored-by: Cursor <cursoragent@cursor.com>
@advancedresearcharray advancedresearcharray force-pushed the feat/issue-421-wiki-link-hover-preview-clean branch from 62ee095 to ef83881 Compare July 3, 2026 18:22
Re-ran wikiLink and full UI test suites plus Go peek tests; documents
hands-on verification before publishing PR for wiki-link hover preview.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

feat(ui): inline page preview on wiki-link hover

1 participant