diff --git a/apps/ui/src/components/views/board-view.tsx b/apps/ui/src/components/views/board-view.tsx index 0038b6d3f..51e3ce5ed 100644 --- a/apps/ui/src/components/views/board-view.tsx +++ b/apps/ui/src/components/views/board-view.tsx @@ -379,6 +379,7 @@ export function BoardView() { handleForceStopFeature, handleStartNextFeatures, handleArchiveAllVerified, + handleHideFeature, } = useBoardActions({ currentProject, features: hookFeatures, @@ -744,7 +745,15 @@ export function BoardView() { }); // Use column features hook - const { getColumnFeatures, completedFeatures } = useBoardColumnFeatures({ + const { + getColumnFeatures, + completedFeatures, + backlogPagination, + showMoreBacklog, + showAllBacklog, + toggleShowOnlyHidden, + resetBacklogPagination, + } = useBoardColumnFeatures({ features: hookFeatures, runningAutoTasks, searchQuery, @@ -1021,6 +1030,7 @@ export function BoardView() { onImplement={handleStartImplementation} onViewPlan={(feature) => setViewPlanFeature(feature)} onApprovePlan={handleOpenApprovalDialog} + onHide={handleHideFeature} featuresWithContext={featuresWithContext} runningAutoTasks={runningAutoTasks} shortcuts={shortcuts} @@ -1028,6 +1038,11 @@ export function BoardView() { onShowSuggestions={() => setShowSuggestionsDialog(true)} suggestionsCount={suggestionsCount} onArchiveAllVerified={() => setShowArchiveAllVerifiedDialog(true)} + backlogPagination={backlogPagination} + onShowMoreBacklog={showMoreBacklog} + onShowAllBacklog={showAllBacklog} + onToggleShowOnlyHidden={toggleShowOnlyHidden} + onResetBacklogPagination={resetBacklogPagination} /> ) : ( void; onViewPlan?: () => void; onApprovePlan?: () => void; + onHide?: () => void; } export function CardActions({ @@ -46,6 +48,7 @@ export function CardActions({ onComplete, onViewPlan, onApprovePlan, + onHide, }: CardActionsProps) { return (
@@ -298,6 +301,22 @@ export function CardActions({ Edit + {onHide && ( + + )} {feature.planSpec?.content && onViewPlan && ( + {backlogPagination.hiddenCount > 0 && ( + + )} {columnFeatures.length > 0 && ( ) : undefined } + footerAction={ + column.id === 'backlog' && backlogPagination.hasMore ? ( +
+ + +
+ ) : undefined + } > f.id)} @@ -184,6 +278,7 @@ export function KanbanBoard({ onImplement={() => onImplement(feature)} onViewPlan={() => onViewPlan(feature)} onApprovePlan={() => onApprovePlan(feature)} + onHide={() => onHide(feature)} hasContext={featuresWithContext.has(feature.id)} isCurrentAutoTask={runningAutoTasks.includes(feature.id)} shortcutKey={shortcutKey} diff --git a/libs/types/src/feature.ts b/libs/types/src/feature.ts index 593b626b5..bcb25f7a9 100644 --- a/libs/types/src/feature.ts +++ b/libs/types/src/feature.ts @@ -30,6 +30,7 @@ export interface Feature { passes?: boolean; priority?: number; status?: string; + hidden?: boolean; // Hidden features appear at the bottom of backlog dependencies?: string[]; spec?: string; model?: string;