Automations console UX polish (itemized suggestions
Epic 5598 shipped the unified Automations console (PR #4946, TargetSelector #4921, TaskSpecFields #4919). Using it on https://app.dev.jaah.ai as the org-b admin (C6 Task 5610, C7 Task 5611, and the Finish re-check in Task 5612) turned up the gaps below. Each item is a 1–2 sentence requirement. Fix them in `apps/web/src/pages/automations/` and `apps/web/src/ui/TargetSelector.tsx` unless the item says otherwise.
Requirements:
1. **Last run vs Runs.** The list says "Last run — never run" (`AutomationList.tsx:236`) for an automation whose Runs view lists runs, such as skipped deliveries or a Run now where every target was skipped. Last run must reflect the newest run of any outcome.
2. **Event Next run cell.** Event rows read "Next run — events have no next run" (`AutomationList.tsx:177`). Show a plain "—" there, or hide the cell, so every event row doesn't repeat the same sentence.
3. **Overlap line for events.** The editor shows "A target whose previous task is still open is skipped." (`vocabulary.ts:24`) for every When kind. Events don't do this: they queue at the Concurrency cap (`apps/api/app/automation_fire.py` `_fire_schedule`). Show the line for Schedule only, and give events their real policy line.
4. **Raw outcome word.** The run outcome chip shows the raw word `acted`. Show a readable label, such as "Filed".
5. **Removed vs dispatch-off target.** A target project with dispatch off is summarised as "#57861 (removed)" (`TargetSelector.tsx:177-217`). The failing-status reason also names it "#57861". Show the project's name, with "dispatch off" when that is the cause, and keep "(removed)" for projects that are really gone.
6. **Run drawer header.** The header shows one arbitrary "Open task #N" (`RunDrawer.tsx:211`) for a run that filed several tasks. Replace it with the per-target count, or link to the list of filed tasks.
7. **Time zones.** The editor says "next … 09:00 EDT", the list says "At 09:00 AM" with no zone, and the run drawer heads a run in UTC. State the zone the same way on all three surfaces, using local time with the zone named.
8. **Repeated node state word.** A node option reads "offline Offline — its task waits for it". Drop the repeated state word.
9. **Ask Jarvis overlap.** The floating "Ask Jarvis" button covers the editor drawer's Create/Save button at 1366×900. The drawer's action row must stay clickable.
10. **No-op probe visibility.** The "No-op probe" action (`apps/api/app/automation_actions.py:399`) is offered to tenant admins. Make it operator-only in the action-types listing.
11. **Automation provenance on stages.** Epic child stages filed through an automation show source "Schedule" and an empty creator. Show the automation as the source, and link to it.
12. **Icon-only buttons.** The Depth and Involvement buttons in the automation Task form are icon-only. Give them visible short labels, as on the regular create page if it has them; otherwise only in the automation context.
13. **Stale bundle.** An open tab on a pre-deploy bundle silently redirects /automations to /tasks. When the server version is newer, offer a reload instead.
14. **Webhook secret check.** A console-created webhook secret can never be shown again. Offer a "check a signature" action, so an admin can confirm which secret a sender uses without rotating it.
15. **Target type hidden by popover.** The selector popover opens over the Projects/Nodes type radios, which are then unreachable until it closes. Anchor the popover below the radios, or keep them visible.
Out of scope: no API contract changes except item 10's listing filter and item 11's provenance display. Do not change TargetSelector modes or the AC behaviours the epic verified (AC1–AC7). Do not change the ingress URL scheme, secrets, signature verification or dedup (item 14 is a verify-only tool). Do not change Playbooks, reader docs or the regular task-create behaviour (D7).
Done means:
- Each item 1–15 is fixed, or rejected with a stated reason in the PR body. Oracle: a per-item table in the report.
- Each fixed item has a component test or a dev screenshot on https://app.dev.jaah.ai as the org-b admin (`gmind/skynet/dev-orgb`). Oracle: report evidence.
- `./dc check full` is green, the PR is merged to develop, and Jaah Deploy succeeds for the merge commit.
Outcome
All 15 Automations UX items fixed and merged (PR #4981, a884bdc62); PR CI green; full gate green except 2 unrelated load-flaky node-detail specs (pass alone). Unverified per operator: Jaah Deploy hung on runner aws1-2-gha-2; no dev screenshots (item 15).
Artifacts
Activity
- Ready
- Runner started
- Awaiting response
- Awaiting response
- Runner resumed
- Runner ended (done)