Page MenuHomePhabricator

StatusDot doesn't reflect missing required fields on freshly-loaded rows
Closed, ResolvedPublic

Description

Bug

The colored status dot in the leftmost column showed green (ready) on stash rows that had empty required fields, while the row's cells correctly highlighted red (missing). The dot only became accurate after the user typed into the row.

Root cause

StatusDot decides green/red from item.issues.length > 0, but item.issues was only populated by recomputeIssues() inside the cell-edit handler — never on initial load. The cell-level isMissing check, by contrast, reads requiredSet and field values directly at render time, so cells were always accurate while the dot lagged.

Same root cause affected the "No license" chip + the per-row "· N issues" meta in the card view, plus the sort-by-status rank.

Fix

Make issues derived state at the App level — a useMemo runs recomputeIssues over every stash item so all consumers always see fresh issues. Published items pass through untouched. Also closes a parallel gap where recomputeIssues didn't handle depicts (cell highlight already did).

GitLab MR: linked on merge.

Event Timeline

Daanvr triaged this task as Medium priority.

T425496 (original report by Daanvr, 2026-05-05) merged into this task. The two fix options proposed there (minimal: wrap every code path; cleaner: derived useMemo state) are both captured; this task takes the cleaner route and extends scope to the parallel consumers ("No license" chip, per-row meta, sort-by-status rank, depicts gap).

Daanvr moved this task from Doing to Done on the Tool-upload-workbench board.