SurfSense/surfsense_web/app/dashboard/[search_space_id]
CREDO23 fe28833ad4 feat(web): automations list page with status, pause/resume and delete
Vertical slice at /dashboard/[id]/automations. The page is read-only by
default; every action gates on backend automations:* permissions via a
co-located permissions hook so adding/removing surfaces stays a
one-file change.

Route:
- page.tsx — server boundary; extracts search_space_id.
- automations-content.tsx — client orchestrator (loading / no-access /
  error / empty / table branches).

Components (one concern per file):
- automations-header.tsx — title + count + "Create via chat" CTA.
- automations-table.tsx + automation-row.tsx — name/status/updated
  columns; row name links to detail (PR4).
- automation-status-badge.tsx — active / paused / archived pill.
- automation-row-actions.tsx — ⋯ menu with pause/resume + delete,
  gated on canUpdate / canDelete. Archived rows hide the toggle.
- delete-automation-dialog.tsx — destructive confirm; mentions FK
  cascade explicitly so users know triggers/runs go too.
- automations-empty-state.tsx — zero-state pointing to chat (creation
  is intent-driven via the create_automation HITL tool, not a form).
- automations-loading.tsx — skeleton rows in the same shell so the
  layout doesn't shift on data arrival.
- automation-triggers-summary.tsx — small cron-describer (daily,
  weekdays, weekly, monthly, hourly) + timezone for the detail page.
  Kept inline since v1 only registers schedule.

Hooks:
- use-automation-permissions.ts — single source of truth for the
  slice's canCreate/canRead/canUpdate/canDelete/canExecute gates,
  backed by myAccessAtom.

Pause/resume and delete reuse the PR2 mutation atoms, so list +
detail caches stay coherent without bespoke invalidation.

Out of scope (later PRs):
- detail route (definition viewer + triggers manager) — PR4
- raw JSON editor — PR5
- nav entry / sidebar wiring — small follow-up PR
2026-05-28 01:02:48 +02:00
..
automations feat(web): automations list page with status, pause/resume and delete 2026-05-28 01:02:48 +02:00
buy-more refactor: implement tab navigation in BuyMorePage and enhance button styles in BuyPagesContent and BuyTokensContent 2026-05-17 23:29:41 +05:30
buy-pages feat: no login experience and prem tokens 2026-04-15 17:02:00 -07:00
buy-tokens feat: no login experience and prem tokens 2026-04-15 17:02:00 -07:00
connectors/callback refactor(web): centralize OAuth callback cookie contract (fixes #1362) 2026-05-23 23:22:18 +07:00
logs chore: ran linting 2026-05-19 21:02:07 +05:30
more-pages refactor: implement tab navigation in BuyMorePage and enhance button styles in BuyPagesContent and BuyTokensContent 2026-05-17 23:29:41 +05:30
new-chat refactor(env): replace inline process.env reads with BACKEND_URL in editor, chat, dashboard and settings 2026-05-20 03:34:22 +05:30
onboard refactor: update OnboardPage styling for consistency with main panel design 2026-05-13 18:22:52 +05:30
purchase-cancel feat: no login experience and prem tokens 2026-04-15 17:02:00 -07:00
purchase-success chore: linting 2026-05-05 17:08:34 -07:00
search-space-settings refactor: remove team memory components and related settings from user and search space settings 2026-05-20 12:01:26 +05:30
team refactor: extract shared hasPermission helper (MODSetter/SurfSense#1366) 2026-05-22 12:08:05 +08:00
user-settings refactor: remove team memory components and related settings from user and search space settings 2026-05-20 12:01:26 +05:30
client-layout.tsx refactor(layout): implement background color management in DashboardClientLayout; streamline RightPanel and LayoutShell styles for consistency 2026-05-04 02:05:20 +05:30
layout.tsx chore: ran linting 2026-03-06 12:17:57 +05:30
page.tsx chore: linting 2026-03-27 03:17:05 -07:00