SurfSense/surfsense_web
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
..
app feat(web): automations list page with status, pause/resume and delete 2026-05-28 01:02:48 +02:00
atoms feat(web): automations contracts, API client, atoms and hooks 2026-05-28 00:55:57 +02:00
blog/content fix: update URLs to use the "www" subdomain across the application 2026-05-15 12:35:15 -07:00
changelog/content chore: added missed changelogs 2026-04-16 22:14:44 -07:00
components rbac: surface automations permissions in the UI 2026-05-28 00:30:40 +02:00
content/docs feat(docs): add observability documentation 2026-05-23 03:18:25 +05:30
contexts feat: fixed vision/image provider specific errors and fixed podcast/video streaming 2026-05-02 19:18:53 -07:00
contracts feat(web): automations contracts, API client, atoms and hooks 2026-05-28 00:55:57 +02:00
features/chat-messages refactor: replace action log sheet with dialog component and update related references 2026-05-18 01:34:41 +05:30
hooks feat(web): automations contracts, API client, atoms and hooks 2026-05-28 00:55:57 +02:00
i18n chore: linting 2026-03-27 03:17:05 -07:00
lib feat(web): automations contracts, API client, atoms and hooks 2026-05-28 00:55:57 +02:00
messages feat: add processing mode support for document uploads and ETL pipeline, improded error handling ux 2026-04-14 21:26:00 -07:00
public feat: added adsense on /free page 2026-05-21 21:01:10 -07:00
tests chore: fix linting 2026-05-12 04:00:04 +05:30
types chore: linting 2026-04-27 14:04:50 -07:00
zero feat: unified credits and its cost calculations 2026-05-02 14:34:23 -07:00
.cursorrules feat: monorepo 2025-04-07 23:47:06 -07:00
.dockerignore chore: ignore Playwright runtime artifacts 2026-05-04 17:48:44 +05:30
.env.example feat: added adsense on /free page 2026-05-21 21:01:10 -07:00
.gitignore chore: update .gitignore and biome.json to include additional test-related directories and files for improved E2E testing 2026-05-12 03:59:52 +05:30
biome.json chore: update .gitignore and biome.json to include additional test-related directories and files for improved E2E testing 2026-05-12 03:59:52 +05:30
components.json chore: ran linting 2026-02-17 12:47:39 +05:30
docker-entrypoint.js format: auto-fix via pnpm format:fix 2026-03-24 16:07:28 +02:00
docker-entrypoint.sh feat: add Docker configuration files and installation script for SurfSense 2026-02-24 22:45:37 +05:30
Dockerfile chore: update Docker configuration to include pnpm workspace and refine dependency management 2026-05-11 15:31:24 +05:30
drizzle.config.ts chore: biome checks 2025-10-15 14:38:26 -07:00
eslint.config.mjs Biome: fixes for eslint config 2025-07-27 11:47:38 -07:00
instrumentation-client.ts feat: implement analytics tracking for desktop app events 2026-04-18 14:35:14 -07:00
instrumentation.ts feat: enhance error handling with PostHog integration 2026-03-12 01:28:39 -07:00
LICENSE feat: monorepo 2025-04-07 23:47:06 -07:00
mdx-components.tsx perf(images): add sizes prop to improve Next.js image loading 2026-04-03 22:11:21 +07:00
next.config.ts feat(next.config): enable remote SVG support with enhanced content security policy 2026-05-05 19:13:38 -07:00
package.json feat: bumped version to 0.0.25 2026-05-21 14:44:33 -07:00
playwright.config.ts chore: fix linting 2026-05-12 04:00:04 +05:30
pnpm-lock.yaml chore: remove caret from @rocicorp/zero dependency version 2026-05-13 03:34:28 +05:30
pnpm-workspace.yaml feat: added blog posts 2026-05-15 11:55:30 -07:00
postcss.config.mjs Initial formatting using biome 2025-07-27 10:05:37 -07:00
source.config.ts feat: added blog posts 2026-05-15 11:55:30 -07:00
svgr.d.ts chore: ran linting 2026-02-10 19:06:21 +05:30
tailwind.config.js feat: enhance UI components with new border radius and tooltip features 2026-01-20 17:35:08 +05:30
tsconfig.json feat: old chat to new-chat with persistance 2025-12-21 16:32:55 -08:00