Skip to content

feat(ui): add navigation trails to GitHub and work-item details - #696

Merged
sudomaggie merged 3 commits into
developfrom
dev/github-detail-navigation-trail
Aug 6, 2026
Merged

feat(ui): add navigation trails to GitHub and work-item details#696
sudomaggie merged 3 commits into
developfrom
dev/github-detail-navigation-trail

Conversation

@Harry19081

@Harry19081 Harry19081 commented Aug 6, 2026

Copy link
Copy Markdown
Member

Problem

GitHub Issue, Work Item, Team Inbox assigned-item, and Pull Request details do not provide the persistent timeline navigation available in Sessions. Long descriptions and activity streams require manual scrolling, and earlier overlay-style navigation could disappear because of overflow, breakpoint, or marker-count gates.

Solution

Add a shared ScrollTrail that discovers semantic destinations, samples dense timelines to at most 20 markers, tracks the active destination, and supports click, hover, focus, and reduced-motion navigation. Work Item and Pull Request details now reserve a permanent 44px backgroundless and borderless right rail. GitHub Issues inherit the Work Item rail; Team Inbox assigned items and Pull Requests reuse the same owning detail surfaces. Sparse surfaces retain a root marker so the rail remains visible without overflow or multiple destinations.

The scroll listener is passive and frame-coalesced. Mutation and resize observation is scoped to the mounted detail content and fully disposed on unmount. No API, persistence, wire-format, dependency, or lockfile changes are included.

Potential risks

  • The permanent rail reduces the detail content width by 44px; narrow and theme-specific visual behavior still needs manual desktop validation.
  • Dense dynamic timelines can trigger scoped marker refreshes, though retained markers are capped at 20 and scroll work is coalesced to one animation frame.
  • Pull Request Conversation has semantic destinations; Commits, Checks, and Changes intentionally retain the always-visible root fallback marker.
  • No data migration or compatibility risk is introduced. Rollback is reverting the feature commit; merge commits only synchronize the latest develop behavior.

Verification

Passed before publication:

  • pnpm exec vitest run src/modules/shared/layouts/blocks/ScrollTrail.test.ts src/modules/shared/components/ActivityTimeline/ActivityTimeline.test.ts src/modules/ProjectManager/WorkItems/components/GitHubIssueThreadSurface.test.ts src/modules/ProjectManager/WorkItems/components/WorkItemContent/__tests__/HistoryTab.test.ts src/modules/ProjectManager/WorkItems/components/WorkItemContent/__tests__/WorkItemDescriptionEditing.test.ts src/modules/WorkStation/CodeEditor/Panels/EditorPrimarySidebar/content/PullRequestContent/detail/PrDetailPanel.test.ts src/modules/WorkStation/CodeEditor/Panels/EditorPrimarySidebar/content/PullRequestContent/detail/PrConversationTab.test.ts — 50 tests across 7 files.
  • pnpm exec eslint on all changed TypeScript and TSX files.
  • pnpm exec prettier --check on all changed source and acceptance-test files.
  • pnpm typecheck.
  • pnpm check:circular — no circular dependencies across 6,188 modules.
  • git diff --check origin/develop...HEAD.
  • Repository pre-commit hook: lint-staged and staged TypeScript check.

Passed after merging current develop and resolving the shared PR-panel conflict:

  • npx vitest run src/modules/shared/layouts/blocks/ScrollTrail.test.ts src/modules/WorkStation/CodeEditor/Panels/EditorPrimarySidebar/content/PullRequestContent/detail/PrDetailPanel.test.ts src/modules/WorkStation/CodeEditor/Panels/EditorPrimarySidebar/content/PullRequestContent/detail/PrConversationTab.test.ts src/modules/ProjectManager/WorkItems/components/GitHubIssueThreadSurface.test.ts src/modules/ProjectManager/WorkItems/components/WorkItemContent/__tests__/WorkItemDescriptionEditing.test.ts src/modules/shared/components/ActivityTimeline/ActivityTimeline.test.ts — 44 tests across 6 files.
  • npx tsc --noEmit --pretty false.
  • npx eslint src/modules/WorkStation/CodeEditor/Panels/EditorPrimarySidebar/content/PullRequestContent/detail/PrDetailPanel.tsx src/modules/WorkStation/CodeEditor/Panels/EditorPrimarySidebar/content/PullRequestContent/detail/PrDetailPanel.test.ts src/modules/WorkStation/CodeEditor/Panels/EditorPrimarySidebar/content/PullRequestContent/detail/PrConversationTab.tsx.
  • Repository pre-commit hook: lint-staged, TypeScript, and scoped Rust clippy for integrations and orgtrack_core.
  • GitHub reports the updated head as mergeable; CI is queued on the conflict-resolution commit.

Not run:

  • Desktop visual QA and screenshots. Local UI control was not authorized, so manual validation of light/dark themes, narrow widths, loading states, and marker interaction remains pending.

Audit

The configured frontend-ui-audit skill was unavailable in this workspace. Manual review confirmed the rail reuses existing Session marker sizing, colors, focus treatment, sampling limit, reduced-motion behavior, and observer cleanup discipline.

@Harry19081
Harry19081 marked this pull request as ready for review August 6, 2026 03:44
…navigation-trail

# Conflicts:
#	src/modules/WorkStation/CodeEditor/Panels/EditorPrimarySidebar/content/PullRequestContent/detail/PrDetailPanel.tsx
@sudomaggie
sudomaggie merged commit 5b70756 into develop Aug 6, 2026
3 checks passed
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.

2 participants