feat(FN-2466): prefer workflow lookup names in progress labels

- Thread workflow name lookup data from Board into Column, TaskCard, and WorktreeGroup components
- Update unified task progress resolution to prefer workflow lookup names over raw workflow IDs
- Keep fallback behavior for missing lookup entries so progress labels remain stable
- Expand Board, Column, and TaskCard tests to cover lookup-based workflow name rendering
This commit is contained in:
Fusion
2026-04-24 09:54:00 -07:00
committed by gsxdsm
parent e7a8a952b7
commit b4d74c3661
9 changed files with 160 additions and 14 deletions

View File

@@ -34,7 +34,10 @@ function isCompleted(status: UnifiedTaskProgressStatus): boolean {
return status === "done" || status === "skipped";
}
export function getUnifiedTaskProgress(task: Pick<Task, "steps" | "enabledWorkflowSteps" | "workflowStepResults">): UnifiedTaskProgress {
export function getUnifiedTaskProgress(
task: Pick<Task, "steps" | "enabledWorkflowSteps" | "workflowStepResults">,
workflowStepNameLookup?: ReadonlyMap<string, string>,
): UnifiedTaskProgress {
const stepItems: UnifiedTaskProgressItem[] = (task.steps ?? []).map((step, index) => ({
id: `step-${index}`,
name: step.name,
@@ -49,9 +52,10 @@ export function getUnifiedTaskProgress(task: Pick<Task, "steps" | "enabledWorkfl
const workflowItems: UnifiedTaskProgressItem[] = (task.enabledWorkflowSteps ?? []).map((workflowStepId) => {
const result = workflowResultsById.get(workflowStepId);
const lookupName = workflowStepNameLookup?.get(workflowStepId);
return {
id: `workflow-${workflowStepId}`,
name: result?.workflowStepName || workflowStepId,
name: lookupName ?? result?.workflowStepName ?? workflowStepId,
status: result ? mapWorkflowStatus(result.status) : "pending",
source: "workflow",
phase: result?.phase ?? "pre-merge",