Skip to content

feat(ui): Add workflow feed with filtering and pagination#2195

Merged
topher-lo merged 11 commits intomainfrom
feat/merge-workflow-tables-into-feed
Feb 26, 2026
Merged

feat(ui): Add workflow feed with filtering and pagination#2195
topher-lo merged 11 commits intomainfrom
feat/merge-workflow-tables-into-feed

Conversation

@topher-lo
Copy link
Contributor

@topher-lo topher-lo commented Feb 25, 2026

Summary

  • Restore the workflow feed stack and related client/schema/services/types artifacts that were accidentally removed, ensuring the API surface lines up with the dashboard UI.
  • Replace the workflow-tags/folders tables with a unified feed page patterned after cases-feed, adding filters for tags, created, and updated dates, badges for alias/updated/published/version metadata, and view switching between list and folder modes.
  • Rework pagination helpers and dashboard controls (header, table actions, toggles, nav) to support the new limit selector and prev/next controls alongside the search bar, keeping the experience performant per the workflow performance guidance.

Testing

  • Not run (not requested)

Summary by cubic

Adds a unified Workflows feed with tag/date filters, search, sort, cursor pagination, and trigger badges. Replaces folder views, adds tag management with a catalog toggle, fixes schedule filters and webhook layout, adds a Cases sort dropdown, and introduces an empty state for the workflows dashboard.

  • New Features

    • Unified workflows feed patterned after cases-feed with filters (tags, date), search, and sort; API returns trigger_summary and UI shows badges for schedules, webhooks, and case events.
    • New workflows header and use-workflows-pagination; catalog toggle between Workflows and Tags; tags page with create/edit/delete and a Create tag button; empty state when no workflows.
  • Refactors

    • Removed legacy folders table/sidebar and old view toggle; moved tag management to /workflows/tags; switched table actions to a context menu.
    • Tuned caching/pagination (staleTime, no focus refetch); added listEnabled to useWorkflowManager; normalized tag keys; bounded agent sessions/chats at the DB; fixed Jest lucide dynamicIconImports.
    • Cases feed: added sort dropdown (default updated desc) wired through hooks with tests.

Written for commit ec1f721. Summary will update on new commits.

@topher-lo topher-lo added ui Improvements or additions to UI/UX performance Changes that improve performance labels Feb 25, 2026
@topher-lo topher-lo force-pushed the feat/merge-workflow-tables-into-feed branch from 8df1fdf to b060948 Compare February 25, 2026 23:51
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8df1fdf567

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 19 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="frontend/src/hooks/pagination/use-cursor-pagination.tsx">

<violation number="1" location="frontend/src/hooks/pagination/use-cursor-pagination.tsx:73">
P1: Remove ineffective `useMemo` and replace `useEffect` with a render-phase state update to prevent a 'ghost fetch' with invalid cursors. (Consider applying this pattern to the limit and sorting effects as well).</violation>
</file>

<file name="frontend/src/components/dashboard/workflows-header.tsx">

<violation number="1" location="frontend/src/components/dashboard/workflows-header.tsx:132">
P2: When a custom date range is cleared in the calendar, the parent component is not notified, causing the filter UI to get out of sync with the internal state.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@topher-lo topher-lo changed the title Add workflow feed with filtering and pagination feat(ui): Add workflow feed with filtering and pagination Feb 26, 2026
@blacksmith-sh

This comment has been minimized.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 issues found across 14 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="frontend/src/components/cases/cases-layout.tsx">

<violation number="1" location="frontend/src/components/cases/cases-layout.tsx:315">
P2: The `hasExplicitSort` evaluation misses `dropdownFilters` sort directions, causing cases sorted by dropdowns to be improperly grouped.</violation>
</file>

<file name="frontend/src/hooks/use-cases.ts">

<violation number="1" location="frontend/src/hooks/use-cases.ts:251">
P2: Clearing the priority or severity sort does not reset the underlying `sortBy` state, causing the API to continue returning sorted results.</violation>
</file>

<file name="frontend/src/components/dashboard/workflows-dashboard.tsx">

<violation number="1" location="frontend/src/components/dashboard/workflows-dashboard.tsx:477">
P1: Client-side sorting and searching are being applied to a single server-paginated page, causing sorts and filters to only affect the currently loaded subset of workflows.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 16 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="frontend/src/components/dashboard/workflow-tags-table.tsx">

<violation number="1" location="frontend/src/components/dashboard/workflow-tags-table.tsx:95">
P1: Make `AlertDialog` controlled to prevent permanent UI lock after editing.</violation>

<violation number="2" location="frontend/src/components/dashboard/workflow-tags-table.tsx:242">
P2: Prevent default behavior on `AlertDialogAction` to keep dialog open during async deletion.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@topher-lo
Copy link
Contributor Author

@cursor review

@topher-lo
Copy link
Contributor Author

@codex review

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable autofix in the Cursor dashboard.

await workflowsRemoveTag(params),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["workflows", workspaceId] })
queryClient.invalidateQueries({ queryKey: ["workflows"] })
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move workflow does not invalidate list view cache

Medium Severity

The moveWorkflow mutation invalidates only directory-items; it does not invalidate workflows queries. The new list view uses useWorkflowsPagination, which depends on ["workflows", "paginated", ...]. Moving a workflow from the list view leaves the list stale until the cache expires or the user navigates away.

Fix in Cursor Fix in Web

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c2981ae7f1

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 11 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tracecat/workflow/management/types.py">

<violation number="1" location="tracecat/workflow/management/types.py:159">
P2: Fix trigger summary visibility bug where offline schedules are omitted unless webhooks/case triggers are active.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="frontend/src/components/dashboard/workflows-dashboard.tsx">

<violation number="1" location="frontend/src/components/dashboard/workflows-dashboard.tsx:1234">
P2: The empty state text incorrectly assumes the user is always in 'folders' view mode, which will display a confusing message when in 'list' mode.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@topher-lo topher-lo requested a review from daryllimyt February 26, 2026 05:18
@topher-lo topher-lo merged commit 5496425 into main Feb 26, 2026
20 checks passed
@topher-lo topher-lo deleted the feat/merge-workflow-tables-into-feed branch February 26, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance Changes that improve performance ui Improvements or additions to UI/UX

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant