+ {/* Tasks + jobs */}
+ {story.tasks.length === 0 ? (
+
Geen taken.
+ ) : (
+
+ {story.tasks.map((task) => {
+ const latestJob = task.claude_jobs[0]
+ return (
+ -
+
+ {task.code}
+
+ {task.title}
+
+ {TASK_STATUS_LABEL[task.status] ?? task.status}
+
+ {latestJob ? (
+
+ {JOB_STATUS_LABELS[jobStatusKey(latestJob.status)] ??
+ latestJob.status}
+
+ ) : (
+
+ Geen job
+
+ )}
+ {latestJob?.branch && (
+
+ {latestJob.branch}
+
+ )}
+ {latestJob?.pushed_at && (
+
+ gepusht {formatRelative(latestJob.pushed_at)}
+
+ )}
+ {latestJob?.pr_url && (
+
+ PR
+
+ )}
+
+ )
+ })}
+
+ )}
+
+ {/* Activity log (StoryLog hergebruik) */}
+
+
+ Activiteit
+
+ ({
+ id: l.id,
+ type: l.type,
+ content: l.content,
+ status: l.status,
+ commit_hash: l.commit_hash,
+ commit_message: l.commit_message,
+ created_at:
+ typeof l.created_at === 'string'
+ ? l.created_at
+ : l.created_at.toISOString(),
+ }))}
+ repoUrl={data.product?.repo_url ?? null}
+ />
+
+
+