diff --git a/apps/frontend/src/renderer/components/TaskCard.tsx b/apps/frontend/src/renderer/components/TaskCard.tsx index 87ee9751..994342cd 100644 --- a/apps/frontend/src/renderer/components/TaskCard.tsx +++ b/apps/frontend/src/renderer/components/TaskCard.tsx @@ -268,15 +268,24 @@ export const TaskCard = memo(function TaskCard({ task, onClick }: TaskCardProps) onClick={onClick} > - {/* Header - improved visual hierarchy */} -
-

- {task.title} -

-
+ {/* Title - full width, no wrapper */} +

+ {task.title} +

+ + {/* Description - sanitized to handle markdown content (memoized) */} + {sanitizedDescription && ( +

+ {sanitizedDescription} +

+ )} + + {/* Metadata badges */} + {(task.metadata || isStuck || isIncomplete || hasActiveExecution || reviewReasonInfo) && ( +
{/* Stuck indicator - highest priority */} {isStuck && ( )} -
-
- - {/* Description - sanitized to handle markdown content (memoized) */} - {sanitizedDescription && ( -

- {sanitizedDescription} -

- )} - - {/* Metadata badges */} - {task.metadata && ( -
{/* Category badge with icon */} - {task.metadata.category && ( + {task.metadata?.category && ( )} {/* Impact badge - high visibility for important tasks */} - {task.metadata.impact && (task.metadata.impact === 'high' || task.metadata.impact === 'critical') && ( + {task.metadata?.impact && (task.metadata.impact === 'high' || task.metadata.impact === 'critical') && ( )} {/* Complexity badge */} - {task.metadata.complexity && ( + {task.metadata?.complexity && ( )} {/* Priority badge - only show urgent/high */} - {task.metadata.priority && (task.metadata.priority === 'urgent' || task.metadata.priority === 'high') && ( + {task.metadata?.priority && (task.metadata.priority === 'urgent' || task.metadata.priority === 'high') && ( )} {/* Security severity - always show */} - {task.metadata.securitySeverity && ( + {task.metadata?.securitySeverity && ( - {task.metadata.securitySeverity} severity + {task.metadata.securitySeverity} {t('metadata.severity')} )}
diff --git a/apps/frontend/src/shared/i18n/locales/en/tasks.json b/apps/frontend/src/shared/i18n/locales/en/tasks.json index 8602b8a2..403a1d61 100644 --- a/apps/frontend/src/shared/i18n/locales/en/tasks.json +++ b/apps/frontend/src/shared/i18n/locales/en/tasks.json @@ -95,5 +95,8 @@ "retry": "Retry", "selectFile": "Select a file to view its contents", "openInIDE": "Open in IDE" + }, + "metadata": { + "severity": "severity" } } diff --git a/apps/frontend/src/shared/i18n/locales/fr/tasks.json b/apps/frontend/src/shared/i18n/locales/fr/tasks.json index ea3e5b38..404a5a8a 100644 --- a/apps/frontend/src/shared/i18n/locales/fr/tasks.json +++ b/apps/frontend/src/shared/i18n/locales/fr/tasks.json @@ -95,5 +95,8 @@ "retry": "Réessayer", "selectFile": "Sélectionnez un fichier pour voir son contenu", "openInIDE": "Ouvrir dans l'IDE" + }, + "metadata": { + "severity": "sévérité" } } diff --git a/implementation_plan.json b/implementation_plan.json index d44f4f68..ae64097a 100644 --- a/implementation_plan.json +++ b/implementation_plan.json @@ -1,24 +1,30 @@ { - "spec_id": "011-fix-scale-adjustment-and-view-reload-issues", + "spec_id": "025-improving-task-card-title-readability", "subtasks": [ { "id": "1", - "title": "Fix slider to defer view reload until drag ends and add zoom button functionality", + "title": "Restructure TaskCard header: Remove flex wrapper around title, make title standalone with full width", + "status": "completed" + }, + { + "id": "2", + "title": "Relocate status badges from header to metadata section", + "status": "completed" + }, + { + "id": "3", + "title": "Add localization for security severity badge label", "status": "completed" } ], "qa_signoff": { "status": "fixes_applied", - "timestamp": "2025-12-27T02:20:00Z", - "fix_session": 0, + "timestamp": "2026-01-01T11:58:40Z", + "fix_session": 1, "issues_fixed": [ { - "title": "Remove preview hint textbox", - "fix_commit": "2653019" - }, - { - "title": "Remove unused preview translation keys", - "fix_commit": "e17536c" + "title": "Missing localization for hardcoded 'severity' string in TaskCard", + "fix_commit": "de0c8e4" } ], "ready_for_qa_revalidation": true