feat: maintenance flow UX redesign — batch hub, context strip, run history upgrades #89

Merged
chihlasm merged 39 commits from feat/maintenance-ux-redesign into main 2026-02-26 04:17:29 +00:00
chihlasm commented 2026-02-24 23:51:57 +00:00 (Migrated from github.com)

Summary

  • BatchStatusPage (/flows/:id/batches/:batchId): After launching a batch, users land here instead of the generic sessions list. Shows all targets with per-card Start / Resume / View actions, a progress bar, live 5s polling while any target is in-progress, and a completion summary with outcome counts.
  • MaintenanceContextStrip: Amber strip inside ProceduralNavigationPage when tree_type === 'maintenance' — shows target name, batch progress (X of Y complete), and a "← Back to Batch" link.
  • ActiveBatchBanner: Amber banner on the maintenance detail page whenever a batch is in-progress, with a "View Batch →" link.
  • Run history upgrades: Batch rows are now clickable (navigate to BatchStatusPage), show mini progress dots (●●●○○), and inline outcome summaries (3 resolved · 1 escalated).
  • Run button loading state: Brief spinner on click before navigation so the action registers visually.
  • Backend: Added batch_id query param to GET /sessions endpoint; added batch_id to SessionListParams frontend type.

Closes #85

Test plan

  • Launch a batch (2–3 targets) → lands on BatchStatusPage showing all targets in "Not Started" state
  • Click Start on a target → execution page shows amber context strip with target name and batch progress
  • Complete a session → back to BatchStatusPage, card shows green check + outcome + duration
  • All targets complete → polling stops, completion summary bar appears
  • Navigate back to maintenance detail page → run history row is clickable, shows progress dots and outcome summary
  • With an in-progress batch, navigate to detail page → amber active batch banner appears with "View Batch →"
  • Single "Run" (non-batch) → execution page shows "Manual Run" strip with no back link
  • npm run build passes ✓ (verified before PR)

🤖 Generated with Claude Code

## Summary - **BatchStatusPage** (`/flows/:id/batches/:batchId`): After launching a batch, users land here instead of the generic sessions list. Shows all targets with per-card Start / Resume / View actions, a progress bar, live 5s polling while any target is in-progress, and a completion summary with outcome counts. - **MaintenanceContextStrip**: Amber strip inside `ProceduralNavigationPage` when `tree_type === 'maintenance'` — shows target name, batch progress (X of Y complete), and a "← Back to Batch" link. - **ActiveBatchBanner**: Amber banner on the maintenance detail page whenever a batch is in-progress, with a "View Batch →" link. - **Run history upgrades**: Batch rows are now clickable (navigate to BatchStatusPage), show mini progress dots (●●●○○), and inline outcome summaries (3 resolved · 1 escalated). - **Run button loading state**: Brief spinner on click before navigation so the action registers visually. - **Backend**: Added `batch_id` query param to `GET /sessions` endpoint; added `batch_id` to `SessionListParams` frontend type. Closes #85 ## Test plan - [ ] Launch a batch (2–3 targets) → lands on BatchStatusPage showing all targets in "Not Started" state - [ ] Click Start on a target → execution page shows amber context strip with target name and batch progress - [ ] Complete a session → back to BatchStatusPage, card shows green check + outcome + duration - [ ] All targets complete → polling stops, completion summary bar appears - [ ] Navigate back to maintenance detail page → run history row is clickable, shows progress dots and outcome summary - [ ] With an in-progress batch, navigate to detail page → amber active batch banner appears with "View Batch →" - [ ] Single "Run" (non-batch) → execution page shows "Manual Run" strip with no back link - [ ] `npm run build` passes ✓ (verified before PR) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
railway-app[bot] commented 2026-02-24 23:52:07 +00:00 (Migrated from github.com)

🚅 Deployed to the patherly-pr-89 environment in selfless-grace

Service Status Web Updated (UTC)
hopeful-liberation 🕗 Deploying (View Logs) Web Feb 26, 2026 at 4:17 am
patherly 🕒 Building (View Logs) Web Feb 26, 2026 at 4:17 am
<!-- railway-bot-comment-version=2 --> <!-- railway-project-id="22b9b58c-271b-42e5-a10e-6fdec8d00134" railway-project-name="selfless-grace" --> 🚅 Deployed to the [patherly-pr-89](https://railway.com/project/22b9b58c-271b-42e5-a10e-6fdec8d00134?environmentId=d8d856d0-72d3-423a-b31e-320a80b06301) environment in **[selfless-grace](https://railway.com/project/22b9b58c-271b-42e5-a10e-6fdec8d00134)** | **Service** | **Status** | **Web** | **Updated** (UTC) | | :--- | :--- | :--- | :--- | | hopeful-liberation | 🕗 Deploying ([View Logs](https://railway.com/project/22b9b58c-271b-42e5-a10e-6fdec8d00134/service/e1db2ee3-d241-4f45-abe4-c9c5fdf483d5?id=837ed000-f8f4-40d1-904a-7cc9923e9c07&environmentId=d8d856d0-72d3-423a-b31e-320a80b06301)) | [Web](https://hopeful-liberation-patherly-pr-89.up.railway.app) | Feb 26, 2026 at 4:17 am | | patherly | 🕒 Building ([View Logs](https://railway.com/project/22b9b58c-271b-42e5-a10e-6fdec8d00134/service/95f556ff-5264-4116-a0c2-618a2fc53ba4?id=57dc0c0c-3d09-4f04-a4fd-a21c3d2f437a&environmentId=d8d856d0-72d3-423a-b31e-320a80b06301)) | [Web](https://patherly-patherly-pr-89.up.railway.app) | Feb 26, 2026 at 4:17 am |
Sign in to join this conversation.