Skip to content

fix(dashboard): close real-time-feedback and navigation gaps#759

Merged
Oolab-labs merged 1 commit into
mainfrom
fix/feedback-and-nav-gaps
May 20, 2026
Merged

fix(dashboard): close real-time-feedback and navigation gaps#759
Oolab-labs merged 1 commit into
mainfrom
fix/feedback-and-nav-gaps

Conversation

@kungfuk3nnyyy
Copy link
Copy Markdown
Collaborator

Summary

  • Fix 1 — Recipe LIST run trigger: executeRun() now calls toast.success("Run started", { action: { label: "View run", onClick } }) linking to /runs/<seq> (or /runs?recipe=<name> if no seq), calls void load() for immediate sparkbar refresh, and shows toast.error(...) on failure.
  • Fix 2 — Keyboard/mouse navigation parity: j/k navigation now moves DOM focus to the recipe row (not setSelectedName). Since the row's onKeyDown already calls router.push on Enter (same as click), both input methods now go to the hub. Decision: ?selected=<name> deep-links (from suggestions/page.tsx) redirect immediately to the hub via a mount-time useEffect — keeps the inbound links working without opening the divergent inline panel. The RecipeDetailPanel remains for now but is no longer reachable via keyboard j/k.
  • Fix 3 — Recipe EDIT duplicate header: Removed the edit page's duplicate <div class="page-head"> containing <BackLink>, <h1>Edit {name}</h1>, and <RelationStrip>. The shared recipes/[name]/layout.tsx already renders all of those. Removed unused BackLink and RelationStrip imports.
  • Fix 4 — /connections background polling: Added setInterval(fetchConnectors, 30_000) inside the mount useEffect, cleared on unmount, so expired/degraded OAuth tokens show updated badge status without a manual reload.
  • Fix 5 — /transactions discard toast + refetch: rollback() now calls toast.success("Transaction discarded") / toast.error(...) and refetch() on success to re-sync the list. Added useToast import.
  • Fix 6 — /marketplace installedNames poll: Added setInterval(refreshInstalled, 30_000) (cleared on unmount) in the load useEffect so recipes installed via CLI or another tab surface the "Installed" badge within 30s.

Test plan

  • Trigger a recipe run from /recipes list — confirm toast appears with "View run" action link
  • Use j/k then Enter on /recipes — confirm navigation goes to hub (same as mouse click)
  • Navigate to /recipes?selected=morning-brief — confirm redirect to hub page
  • Open /recipes/<name>/edit — confirm single H1 (no duplicate heading)
  • Open /connections, revoke an OAuth token externally, wait 30s — confirm badge updates
  • Discard a transaction on /transactions — confirm toast and list refresh
  • Install a recipe via CLI, open /marketplace within 30s — confirm "Installed" badge appears

🤖 Generated with Claude Code

- recipes/page.tsx: executeRun now calls toast.success/error + void load() on success; keyboard j/k moves DOM focus so Enter navigates to hub (same as click); ?selected= deep-link redirects to hub
- recipes/[name]/edit/page.tsx: remove duplicate page-head (BackLink + H1 + RelationStrip) — layout.tsx renders those
- connections/page.tsx: add 30s background poll so stale OAuth badges refresh
- transactions/page.tsx: rollback shows toast.success/error and calls refetch() on success
- marketplace/page.tsx: add 30s poll on installedNames so CLI-installed recipes show "Installed" badge

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Oolab-labs Oolab-labs merged commit ee92248 into main May 20, 2026
18 checks passed
@Oolab-labs Oolab-labs deleted the fix/feedback-and-nav-gaps branch May 20, 2026 15:15
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