polish(engine): standard empty/loading/error states (Phase L) #184
Reference in New Issue
Block a user
Delete Branch "feat/empty-states"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase L from docs/ui-redesign-2026-07.md — the doc called it "small, mechanical, big perceived-quality win" and that's what it was.
One pattern
ui_modal::spawn_empty_state(parent, glyph, headline, detail, font)— a centred glyph + headline + optional detail block with anEmptyStateBlockmarker. Next-step actions are composition (spawn a button after it), not configuration. Glyphs are restricted to FiraMono-covered ranges (suits / arrows / ASCII) per the §10/§11 Android tofu constraint.Swept surfaces
Deliberately not swept: the Account tab's sync row — it's a live status + action row, not an empty state; its richer treatment (last-synced timestamp, conflict summaries) is exactly Phase M's scope.
Tests
1 new structural test for the helper (marker count, node contents, detail-less variant). Full workspace + clippy green, exit-code-verified.
With this, only Phase M (sync transparency & data export/import) remains from the thirteen-phase redesign doc.
🤖 Generated with Claude Code