Skip to content

feat(web-ui): customize navigation and add session trajectory - #3624

Merged
GCWing merged 4 commits into
mainfrom
gcwing/sidebar-ecosystem-trajectory-20261030
Oct 30, 2026
Merged

GCWing merged 4 commits into
mainfrom
gcwing/sidebar-ecosystem-trajectory-20261030

Conversation

@GCWing

@GCWing GCWing commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add configurable sidebar destinations and a searchable session trajectory, and move External import into Settings → Tools & integrations.

  • Pin, reorder, remove, and restore sidebar pages through Appearance settings. Keep preferences local to the controller, preserve unavailable contributions and unknown fields, and retain explicit capability gates.
  • Explore user input, model rounds, and tool calls in a virtualized trajectory with range selection, search, transcript navigation, and reusable detail panels. History summaries are paginated and bodies remain with the existing scoped history reader.
  • Add the shared read-only trajectory projection, Desktop and CLI peer handlers, registry entry, and negotiated session_trajectory_v1 capability. Older peers retain an explicit partial view.
  • Preserve legacy External import settings/scene destinations, refresh generated capability catalogs and translations, and refine context-usage disclosure presentation.

Type and Areas

Type: Feature / UI/UX

Areas: Web UI, design-system icons, session storage projections, Desktop/Tauri, CLI Peer host, remote capability contracts, i18n, docs.

Motivation / Impact

Users can keep frequently used pages in the sidebar and inspect long conversations without rendering the full transcript. External import now shares the settings layout while historical links continue to resolve.

Verification

Passed locally:

  • pnpm run check:web — type checking, Appearance, typography, theme color and visual contracts.
  • pnpm --dir src/web-ui run lint — zero errors (16 existing warnings). After correcting the trajectory hook dependencies, lint and pnpm --dir src/web-ui exec tsc --noEmit passed in an isolated checkout.
  • pnpm --dir src/web-ui exec vitest run src/flow_chat/trajectory src/flow_chat/components/modern/VirtualMessageList.session-boundary.test.tsx src/flow_chat/components/modern/useFlowChatSearchPresentation.test.tsx — 132 tests passed in the isolated checkout, including summary-read stability across live session updates.
  • pnpm --dir src/web-ui exec vitest run src/infrastructure/design-system/IconUsageIntegration.test.tsx src/flow_chat/components/modern/useFlowChatNavigation.focus.test.tsx src/flow_chat/components/modern/useFlowChatSearchPresentation.test.tsx — 17 tests passed, including focus request/release identity and the current shared-icon consumers.
  • 31 focused Web UI test files covering sidebar preferences/registry, settings destinations, ecosystem discovery, scene/session lifecycle, trajectory pagination/search/details/navigation, viewport acknowledgement, and Peer adapters: 561 tests passed.
  • pnpm --dir src/web-ui exec vitest run src/flow_chat/components/usage/SessionUsageComponents.test.tsx src/flow_chat/components/usage/ToolDefinitionsPreview.test.tsx src/flow_chat/components/usage/usageReportUtils.test.ts — 93 tests passed.
  • cargo check --locked -p openbitfun-desktop.
  • cargo test --locked -p openbitfun-cli --bin openbitfun peer_host:: — 105 tests passed.
  • cargo test --locked -p openbitfun-services-core --no-default-features --features local-storage --lib session::trajectory — 3 tests passed.
  • cargo test --locked -p openbitfun-product-domains --no-default-features remote_surface — 20 tests passed.
  • pnpm --dir design-system run build:ui and the icon.test.mjs / icon-slots.test.mjs fixtures — 19 tests passed.
  • pnpm run i18n:audit, pnpm run check:core-boundaries, pnpm run capabilities:check, pnpm run capabilities:test.
  • pnpm run fmt:rs, git diff --cached --check, and node scripts/check-git-object-sizes.mjs --base origin/main --head HEAD.

Reviewer Notes

AI-assisted; tested with focused automated checks. Native visual checks remain pending; no browser or computer-use verification was performed, per the user's instruction.

Remote coverage is limited to automated fixtures for SSH workspace identity/routing, simulated Peer activation and old-host capability gating, plus CLI peer handler contracts. No live SSH, Remote Control, Peer Device, or Detached Dispatch environment was exercised. The trajectory is an observer and adds no runtime dependency to headless jobs.

Checklist

  • Changes include no secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification and its limits are recorded above.
  • User-facing strings, docs, and locales are updated where applicable.

@GCWing
GCWing merged commit 7d0f644 into main Oct 30, 2026
13 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.

1 participant