SurfSense/surfsense_web/app
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
..
(home) Merge remote-tracking branch 'upstream/dev' into feat/opentelemetry 2026-05-23 03:21:08 +05:30
api refactor(env): replace inline process.env reads with BACKEND_URL in editor, chat, dashboard and settings 2026-05-20 03:34:22 +05:30
auth/callback fix(auth): remove redundant token storage write 2026-05-11 06:25:40 +09:00
dashboard feat(web): automations list page with status, pause/resume and delete 2026-05-28 01:02:48 +02:00
db try vercel fix 2025-09-30 22:45:04 -07:00
desktop refactor: enhance Google login functionality and button styles across multiple components 2026-05-18 01:17:37 +05:30
docs fix: update URLs to use the "www" subdomain across the application 2026-05-15 12:35:15 -07:00
invite/[invite_code] fix(auth): centralize redirect path storage 2026-05-11 06:30:26 +09:00
public/[token] chore: linting 2026-03-27 03:17:05 -07:00
verify-token chore: ran biome checks 2026-03-07 12:57:27 +05:30
apple-icon.png feat: enhance SurfSense with new skills, blog section, and improve SEO metadata 2026-04-11 23:38:12 -07:00
error.tsx chore: ran linting 2026-05-19 21:02:07 +05:30
favicon.ico feat: updated logo 2026-01-08 23:03:43 -08:00
global-error.tsx feat: add processing mode support for document uploads and ETL pipeline, improded error handling ux 2026-04-14 21:26:00 -07:00
globals.css refactor: update UI components to utilize 'popover-border' for consistent styling and enhance overall design coherence 2026-05-14 12:53:52 +05:30
icon.png feat: enhance SurfSense with new skills, blog section, and improve SEO metadata 2026-04-11 23:38:12 -07:00
layout.config.tsx chore: ran linting 2026-03-10 16:17:12 +05:30
layout.tsx Merge remote-tracking branch 'upstream/dev' into feat/ui-revamp 2026-05-16 19:26:36 +05:30
not-found.tsx feat: add processing mode support for document uploads and ETL pipeline, improded error handling ux 2026-04-14 21:26:00 -07:00
robots.ts fix: update URLs to use the "www" subdomain across the application 2026-05-15 12:35:15 -07:00
sitemap.ts cloud: added openrouter integration with global configs 2026-04-15 23:46:29 -07:00