Skip to content

epic: Homepage Redesign #1964

@Mbeaulne

Description

@Mbeaulne

Summary

Redesign the homepage to surface useful aggregate information at a glance and provide a more complete browsing experience for runs, pipelines, and components.

Layout Vision

┌──────────────────────────────────────────────────────┐
│  STATS ROW                                           │
│  [22 Runs] [10 Succeeded] [10 Failed] [2 Cancelled] │
│  ████████████████████████░░░░░░░░░▓▓▓  (status bar) │
│  [25 Pipelines]                                      │
├──────────────────────────────────────────────────────┤
│  RECENTLY OPENED                                     │
│  [Pipeline A] [Run #42] [Pipeline B] [Run #39]      │
├──────────────────────────────────────────────────────┤
│  FAVORITES                                           │
│  ★ Pipeline X   ★ Run #17   ★ Pipeline Y            │
├──────────────────────────────────────────────────────┤
│  [Runs]  [Pipelines]  [Components]     ← tabs       │
│  ┌────────────────────────────────────────────────┐  │
│  │ Filtered list based on active tab + any stat   │  │
│  │ card clicked above                             │  │
│  └────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────┘

Stats cards respond to the active filters — if you filter by date range + "created by me", the cards update to show counts for that filtered view. Clicking a stat card (e.g., "10 Failed") applies that status filter to the Runs tab.

Issues

Backend (TangleML/tangle)

Frontend (TangleML/tangle-ui)

Related existing issues

These pre-existing issues overlap with or feed into this epic:

Issue Relationship
TangleML/tangle#38 — Stats API for execution node states Superseded by TangleML/tangle#177
TangleML/tangle#39 — Stats API for container execution statuses Superseded by TangleML/tangle#177
TangleML/tangle#24 — Search pipeline runs by name substring Already implemented via filter_query (value_contains on system/pipeline_run.name), used by TangleML/tangle#177
TangleML/tangle#44 — Run list search by run name Same as TangleML/tangle#24
TangleML/tangle#59 — PublishedComponents search by publisher annotation Related to TangleML/tangle#180 (same endpoint, different scope)
TangleML/tangle#83 — Include annotations in pipeline runs list response Useful for enriching the Runs tab in #1963
TangleML/tangle#87 — Add has_ended to pipeline runs list response Useful for run status display in #1963

Dependency Graph & Suggested Order

#1965 (Dashboard route + beta flag)  ← do this first
        │
tangle#177 (Backend stats) ──→ #1960 (Stats cards UI)
                                        │
#1961 (Recently opened)                │  ← independent
#1962 (Favorites)                      │  ← independent
                                        ▼
tangle#179 (Backend pagination) ──→ #1963 (Tabbed list + components tab)
tangle#180 (Backend filtering) ──→ #1966 (FE component search) ──→ #1963

Recommended order:

  1. feat: [FE] Add /dashboard route with beta flag #1965 (dashboard route scaffold — unblocks all frontend work)
  2. tangle#177 → feat: [FE] Add stats cards and status bar to homepage #1960 (stats pipeline — highest impact)
  3. feat: [FE] Add recently opened section to homepage #1961 + feat: [FE] Add favorites section to homepage #1962 (recently opened + favorites — independent, can parallel)
  4. tangle#179 + tangle#180 → feat: [FE] Move component search filtering to backend #1966feat: [FE] Add tabbed Runs/Pipelines/Components list to homepage #1963 (components tab with backend search + pagination)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions