Skip to content

fix(app-review): remediate dashboard tab review findings across all f…#15

Merged
AdityaMandiwal merged 1 commit into
mainfrom
fix/app-review-findings
Jun 27, 2026
Merged

fix(app-review): remediate dashboard tab review findings across all f…#15
AdityaMandiwal merged 1 commit into
mainfrom
fix/app-review-findings

Conversation

@AdityaMandiwal

Copy link
Copy Markdown
Owner

…our tabs

Address all findings from the code review of the Job Clusters, All-Purpose, Instance Pools, and Pipeline Compute tabs plus the shared backend routers (see docs/plan_app_review_fixes.md, Phases 0-8).

Backend (Phase 1):

  • Inverted date ranges now return 400 (not 500) on the four affected endpoints
  • Genericize client-facing error responses; log full tracebacks server-side
  • Remove the unauthenticated debug/test endpoints

Frontend correctness (Phases 2-3):

  • Sanitize LLM output via react-markdown (AnalysisMarkdown) - removes XSS surface
  • Fix React key collisions (job fragment, pipeline composite key)
  • Add error states to all SummaryCards; key-remount tables on filter change to fix pagination-reset race and stale expansion state
  • Fix date off-by-one in negative-UTC zones; dialog onOpenChange guard; a11y

Per-tab (Phases 4-7):

  • Job Clusters: honest server-side sort, plain-text job-level Other cell, date-driven coverage trend, shared HIGH_COST_USD + runs "show all"
  • All-Purpose: debounce-safe sub-tab switch, single Tabs root, popstate sync, By-User Other affordance + corrected help text
  • Instance Pools: dynamic cloud label, per-pool day expansion, memoized sort
  • Pipeline: gate analysis on resolved details, reset workloads on range change, OR chip copy, NaN-safe currency

Polish (Phase 8):

  • Remove unused imports, stable table keys, per-section summary skeletons, client-side start>end date guard

…our tabs

Address all findings from the code review of the Job Clusters, All-Purpose,
Instance Pools, and Pipeline Compute tabs plus the shared backend routers
(see docs/plan_app_review_fixes.md, Phases 0-8).

Backend (Phase 1):
- Inverted date ranges now return 400 (not 500) on the four affected endpoints
- Genericize client-facing error responses; log full tracebacks server-side
- Remove the unauthenticated debug/test endpoints

Frontend correctness (Phases 2-3):
- Sanitize LLM output via react-markdown (AnalysisMarkdown) - removes XSS surface
- Fix React key collisions (job fragment, pipeline composite key)
- Add error states to all SummaryCards; key-remount tables on filter change to
  fix pagination-reset race and stale expansion state
- Fix date off-by-one in negative-UTC zones; dialog onOpenChange guard; a11y

Per-tab (Phases 4-7):
- Job Clusters: honest server-side sort, plain-text job-level Other cell,
  date-driven coverage trend, shared HIGH_COST_USD + runs "show all"
- All-Purpose: debounce-safe sub-tab switch, single Tabs root, popstate sync,
  By-User Other affordance + corrected help text
- Instance Pools: dynamic cloud label, per-pool day expansion, memoized sort
- Pipeline: gate analysis on resolved details, reset workloads on range change,
  OR chip copy, NaN-safe currency

Polish (Phase 8):
- Remove unused imports, stable table keys, per-section summary skeletons,
  client-side start>end date guard
@AdityaMandiwal
AdityaMandiwal merged commit 988d7de into main Jun 27, 2026
2 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