Skip to content

Add breadcrumbs to tools UI (including merging main)#577

Merged
scosman merged 9 commits intotoolsfrom
scosman/tools_breadcrumbs
Sep 7, 2025
Merged

Add breadcrumbs to tools UI (including merging main)#577
scosman merged 9 commits intotoolsfrom
scosman/tools_breadcrumbs

Conversation

@scosman
Copy link
Copy Markdown
Collaborator

@scosman scosman commented Sep 7, 2025

Summary by CodeRabbit

  • New Features
    • Added breadcrumb navigation across Dataset Runs, Evals (list/detail/compare/configs), Fine Tunes, and Settings pages for clearer wayfinding.
    • Preserves dataset filters when navigating back from a run.
    • Available models list now refreshes immediately after adding/removing/connecting providers.
  • Style
    • Renamed page title to “Fine Tunes.”
  • Documentation
    • Updated community logos and added a privacy/subscription note in README.
    • Simplified the design guide: removed a font-size guidance line and the “Controls” subsection.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Sep 7, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Adds breadcrumb navigation support across many app pages via a new AppPage prop and a last-page URL context set in the layout. Introduces a cache invalidation helper for available models and calls it on provider connect/disconnect flows. Also updates some docs and renames a Fine Tune page title.

Changes

Cohort / File(s) Summary
Docs
README.md
Replaces logo grid image (width 500→600; new asset URL) and adds a privacy/subscription note line after the image.
Docs
agents/frontend_design_guide.md
Removes one font-size guidance line and the entire “Controls” subsection in Fonts.
Model cache helper + usage
app/web_ui/src/lib/stores.ts, app/web_ui/src/routes/(fullscreen)/setup/(setup)/connect_providers/connect_providers.svelte
Adds and exports clear_available_models_cache(); invokes it after provider connect/disconnect flows to invalidate available-models cache.
Layout navigation context
app/web_ui/src/routes/(app)/+layout.svelte
Adds writable store for last visited URL; sets it via beforeNavigate; exposes it in Svelte context as "lastPageUrl".
AppPage API
app/web_ui/src/routes/(app)/app_page.svelte
Removes exported action_buttons prop; adds Breadcrumb type and exported breadcrumbs prop; renders breadcrumb bar when provided.
Dataset breadcrumbs
app/web_ui/src/routes/(app)/dataset/[project_id]/[task_id]/[run_id]/run/+page.svelte
Reads lastPageUrl from context; computes breadcrumb back to dataset (preserving search) and passes breadcrumbs to AppPage.
Dataset add-data breadcrumbs
app/web_ui/src/routes/(app)/dataset/[project_id]/[task_id]/add_data/+page.svelte
Adds conditional breadcrumbs (Evals → evals list when reason==="eval"); passes to AppPage.
Evals breadcrumbs
app/web_ui/src/routes/(app)/evals/[project_id]/[task_id]/[eval_id]/+page.svelte, .../compare_run_methods/+page.svelte, .../eval_configs/+page.svelte, .../[project_id]/[task_id]/compare/+page.svelte, .../[project_id]/[task_id]/create_evaluator/+page.svelte
Adds breadcrumbs to AppPage across eval pages (Evals → specific Eval where applicable; labels may use evaluator?.name).
Fine Tune breadcrumbs and title
app/web_ui/src/routes/(app)/fine_tune/[project_id]/[task_id]/+page.svelte, .../create_finetune/+page.svelte, .../fine_tune/[finetune_id]/+page.svelte
Changes title to “Fine Tunes”; adds breadcrumbs (root Fine Tunes list) to create and detail pages.
Settings breadcrumbs
app/web_ui/src/routes/(app)/settings/check_for_update/+page.svelte, .../edit_project/[slug]/+page.svelte, .../edit_task/[project_id]/[task_id]/+page.svelte, .../manage_projects/+page.svelte, .../providers/+page.svelte
Adds Settings breadcrumb to AppPage usage on these pages.
Settings: Providers add-models with context
app/web_ui/src/routes/(app)/settings/providers/add_models/+page.svelte
Reads lastPageUrl from context; builds breadcrumbs: Settings (+ AI Providers when coming from providers page); passes to AppPage.
Settings: Manage Tools breadcrumbs
app/web_ui/src/routes/(app)/settings/manage_tools/[project_id]/+page.svelte, .../add_tools/+page.svelte, .../add_tools/local_mcp/+page.svelte, .../add_tools/remote_mcp/+page.svelte
Adds breadcrumbs trails: Settings → Manage Tools → Add Tools (as applicable); dynamic project_id in hrefs.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant User
  participant Router as SvelteKit Router
  participant Layout as (app)/+layout.svelte
  participant Page as Child +page.svelte
  participant AppPage as AppPage

  User->>Router: Navigate to page
  activate Router
  Router-->>Layout: Load layout
  note over Layout: beforeNavigate handler
  Layout->>Layout: Update lastPageUrl store (from nav.from?.url)
  Layout->>Page: Provide context "lastPageUrl"
  deactivate Router

  Page->>Layout: getContext("lastPageUrl")
  alt Page computes breadcrumbs
    Page->>Page: Build breadcrumbs based on lastPageUrl or params
  end
  Page->>AppPage: Render with props { title, breadcrumbs, ... }
  AppPage-->>User: Header + breadcrumb bar (if any)
Loading
sequenceDiagram
  autonumber
  participant User
  participant UI as connect_providers.svelte
  participant Store as clear_available_models_cache()
  participant Models as available_models loader

  User->>UI: Connect/Disconnect provider
  UI->>UI: Update provider state
  UI->>Store: clear_available_models_cache()
  note over Store: available_models=[]<br/>available_models_loaded="not_loaded"
  User->>Models: Open models list / trigger load
  Models->>Models: Detect not_loaded -> fetch models
  Models-->>User: Fresh available models
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • aiyakitori
  • sfierro

Poem

A breadcrumb trail across the meadow bright,
I hop from page to page by gentle light.
A cache is cleared—fresh clover in my bowl,
Providers linked, the models roll.
With whiskered cheer and ears held high,
I map the paths beneath the sky. 🌾🐇


📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5c2948f and 40b60cf.

📒 Files selected for processing (26)
  • README.md (1 hunks)
  • agents/frontend_design_guide.md (0 hunks)
  • app/web_ui/src/lib/stores.ts (1 hunks)
  • app/web_ui/src/routes/(app)/+layout.svelte (2 hunks)
  • app/web_ui/src/routes/(app)/app_page.svelte (2 hunks)
  • app/web_ui/src/routes/(app)/dataset/[project_id]/[task_id]/[run_id]/run/+page.svelte (2 hunks)
  • app/web_ui/src/routes/(app)/dataset/[project_id]/[task_id]/add_data/+page.svelte (2 hunks)
  • app/web_ui/src/routes/(app)/evals/[project_id]/[task_id]/[eval_id]/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/evals/[project_id]/[task_id]/[eval_id]/compare_run_methods/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/evals/[project_id]/[task_id]/[eval_id]/eval_configs/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/evals/[project_id]/[task_id]/compare/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/evals/[project_id]/[task_id]/create_evaluator/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/fine_tune/[project_id]/[task_id]/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/fine_tune/[project_id]/[task_id]/create_finetune/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/fine_tune/[project_id]/[task_id]/fine_tune/[finetune_id]/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/check_for_update/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/edit_project/[slug]/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/edit_task/[project_id]/[task_id]/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/manage_projects/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/manage_tools/[project_id]/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/manage_tools/[project_id]/add_tools/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/manage_tools/[project_id]/add_tools/local_mcp/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/manage_tools/[project_id]/add_tools/remote_mcp/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/providers/+page.svelte (1 hunks)
  • app/web_ui/src/routes/(app)/settings/providers/add_models/+page.svelte (2 hunks)
  • app/web_ui/src/routes/(fullscreen)/setup/(setup)/connect_providers/connect_providers.svelte (7 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 7, 2025

📊 Coverage Report

Overall Coverage: 93%

Diff: origin/tools...HEAD

No lines with coverage information in this diff.


@scosman scosman merged commit 06c3915 into tools Sep 7, 2025
12 of 14 checks passed
@scosman scosman deleted the scosman/tools_breadcrumbs branch September 7, 2025 23:27
@coderabbitai coderabbitai Bot mentioned this pull request Sep 15, 2025
2 tasks
@coderabbitai coderabbitai Bot mentioned this pull request Mar 13, 2026
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