feat: [ENG-2885] adopt callback-based topic-viewer in webui
Consumer-side adoption of the new TopicViewer API from ENG-2843
(shared at @campfirein/byterover-packages).
- Wire breadcrumb / related / index callbacks via useTopicViewerNavigation
(createTopicViewerNavigation pure helper + stale-path guard).
- Stale paths surface a sonner toast and skip navigation
(findNodeByPath check in useTopicViewerNavigation).
- RootIndexDetail renders root-level index.html as a landing page
when no path is selected (mirrors the byterover-web pattern).
- Conflict-marker fallback now covers HTML files too via the new
ConflictContentView (extracted from MarkdownView).
- Task / curate TopicViewer surfaces hide the (otherwise no-op)
breadcrumb with breadcrumb={{show: false}}.
- Per-type header padding in DetailBody (py-4 for HTML, pt-4 pb-0 for MD).
- Smooth hash-anchor scrolling for TopicViewer surfaces, with opt-out
on the streaming task-detail container to preserve useStickToBottom.
- useContextTree exposes navigateToPath(path) as the path-only nav
primitive; handleSelect(node) is a thin wrapper.
- Bump shared package + lockfile to 2dec813 (ENG-2843 callbacks +
viewer-controls height:0 fix for rounded-corner clipping). N
ncnthien committed
5f1b67612e537e42c6b317665e26c54b02f17800
Parent: 8edf54a