Show artifact badges on pending review task cards

This commit is contained in:
2026-06-13 14:38:08 -04:00
parent 52dcf8e309
commit 75cb4a14eb
2 changed files with 17 additions and 0 deletions
+15
View File
@@ -138,6 +138,14 @@ function renderBoard() {
attachCardListeners();
}
const ARTIFACT_LABELS = {
'research': 'SPEC.md', 'decomposition': 'DECOMPOSITION.md',
'design': 'DESIGN.md', 'test_design': 'TEST_PLAN.md',
'implement': 'IMPLEMENTATION.md', 'bug_find': 'BUG_REPORT.md',
'adv_bug_find': 'ADVERSARIAL_BUG_REPORT.md', 'doc_review': 'DOC_REVIEW.md',
'referee': 'VERDICT.md',
};
function renderTaskCard(task) {
const statusClass = task.state === 'done' ? 'done' : task.state === 'blocked' ? 'blocked' : 'in_progress';
const statusIcon = task.state === 'done' ? '✅' : task.state === 'blocked' ? '❌' : '🔄';
@@ -156,9 +164,16 @@ function renderTaskCard(task) {
return `<div class="subtask-item"><span class="subtask-status ${stStatus}">${stIcon}</span><span>${st.name}</span></div>`;
}).join('')}</div>`
: '';
const artifactsHtml = (reviewStatus === 'pending' || reviewStatus === 'changes_requested')
? `<div class="task-card-artifacts">${COLUMNS.filter(col => task.artifacts[col.id]).map(col => {
const label = ARTIFACT_LABELS[col.id] || col.label;
return `<span class="artifact-badge" title="${col.label}">${label}</span>`;
}).join('')}</div>`
: '';
return `<div class="task-card" data-task="${task.name}" data-status="${statusClass}">
<div class="task-card-header"><span class="task-card-name">${task.display_name}</span><span style="display:flex;align-items:center;gap:4px">${reviewBadge}<span class="task-card-status ${statusClass}">${statusIcon}</span></span></div>
<div class="task-card-sublabel">${subLabel}</div>
${artifactsHtml}
${progressHtml ? `<div class="task-card-footer"><span class="subtask-progress">${progressHtml}</span></div>` : ''}
${subtasksHtml}
</div>`;
+2
View File
@@ -246,6 +246,8 @@ kbd {
.review-btn.changes { border-color: var(--error); color: var(--error); }
.review-btn.changes:hover { background: var(--error-bg); }
.review-comment { font-size: 12px; color: var(--text-secondary); padding: 8px; background: var(--bg-primary); border-radius: 4px; margin-top: 4px; }
.task-card-artifacts { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.artifact-badge { font-size: 10px; padding: 1px 6px; background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 3px; color: var(--text-secondary); font-family: monospace; }
@media (max-width: 768px) {
.header { flex-wrap: wrap; gap: 8px; }