SurfSense/surfsense_web/app/dashboard/[search_space_id]
CREDO23 c0a9ea368f feat(web): automations detail page (definition viewer + trigger manager)
Vertical slice at /dashboard/[id]/automations/[automation_id]. Branches
in the orchestrator are: perms loading → skeleton, no-access → access
denied panel, bad id → not-found, fetch loading → skeleton, fetch
error → not-found, loaded → header + definition + triggers.

Route:
- page.tsx — server boundary; extracts both ids.
- automation-detail-content.tsx — client orchestrator.

Header:
- automation-detail-header.tsx — back link, name, status badge,
  description, pause/resume + delete actions. Delete navigates back to
  the list via a new onDeleted hook on DeleteAutomationDialog so the
  list page (where the row just vanishes) stays unaffected.
- automation-not-found.tsx — 404/403/NaN-id panel. We don't
  distinguish missing vs. forbidden in the UI.

Definition (read-only in v1):
- automation-definition-section.tsx — wrapper Card; renders goal +
  tags + execution defaults + inputs schema (if present) + plan.
- plan-step-card.tsx — one step (when, output_as, retries, timeout,
  params JSON).
- execution-summary.tsx — timeout / max_retries / backoff /
  concurrency + on_failure step count.
- inputs-schema-preview.tsx — formatted JSON of inputs.schema; only
  rendered when the definition declares inputs.

Triggers:
- automation-triggers-section.tsx — wrapper Card, "Add via chat" CTA
  (creation is intent-driven, same philosophy as automations).
- trigger-card.tsx — schedule + timezone + cron, last/next fire
  hints, static_inputs JSON, enable Switch and remove button.
- delete-trigger-dialog.tsx — confirm + mutation atom.

Shared:
- lib/describe-cron.ts — moved out of automation-triggers-summary.tsx
  so both list and detail can describe schedules consistently
  (daily/weekdays/weekly/monthly/hourly, raw cron fallback).

Loading:
- automation-detail-loading.tsx — same shell as the loaded view so the
  layout doesn't jump on data arrival.

RBAC: each interactive surface is independently gated
(canUpdate/canDelete/canCreate) so the orchestrator stays thin and the
component tree is self-documenting about what each action requires.

Out of scope (later PRs):
- Editing definition / trigger params (raw-JSON path) — PR5
- Run history — PR6
2026-05-28 01:21:54 +02:00
..
automations feat(web): automations detail page (definition viewer + trigger manager) 2026-05-28 01:21:54 +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