Design system (Layout2):
- Solid token-driven theme (no animated grid); single-source tokens for bg,
cards (bg/border/radius), popups, fonts (Inter), and full semantic +
data-viz color palette. Swept ~168 hardcoded colors to tokens.
Dashboard:
- Reflow: To Do + Calendar row (fixed right rail) over Activity / In-Progress /
Team Performance; CSS height-match (To Do = Calendar); responsive stacking.
- 'Tasks Not Started' -> 'To Do' card with R#/Assigned columns; compact money fmt.
Tasks page:
- Combined tabs into Tasks + Completed with a Status column.
- Column-header sort + filter (Status, R#/new-vs-revision, Project, Task Type,
Company) via portaled, scrollable FilterDropdown; removed toolbar filters and
the projects side panel; headers stay visible when empty; renamed to 'Tasks'.
Perf:
- FK/filter index migration; removed redundant client/external scope waterfall
(rely on RLS); parallel follow-up queries.
Mobile:
- Responsive grids; mobile topbar = hamburger only, blends with bg, proper offset.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add sync_project_status trigger so projects flip active<->completed with their tasks; backfill existing rows.
- handleSubmitReject now aborts (and alerts) if the rejection-reason submission fails to save, instead of silently flipping status to in_progress and logging a reason-less rejection.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Team performance: count each delivery record individually (sent_by + version_number), not per task — R00/R01/R02 by different people all count separately
- Performance uses deliveries table directly, EST timezone bucketing, month-gated tabs
- TaskDetail Submissions tab: reads from deliveries table, shows R## version, sent_by, sent_at
- Submit for Review: writes to deliveries + delivery_files (deliveries bucket), stores version_number
- Revision request popup: uses FileAttachment drag-drop component
- Task table: only Name and Project columns highlight on hover
- deliveries.version_number column added and backfilled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Expense detail popup: 80vw×80vh, inline editing, save gated on dirty state, Download Receipt in footer
- Add expense form: same layout with FileAttachment drag-drop on right
- New invoice popup: 80vw×80vh inline form replacing navigate-away page
- Tasks table: suppress row hover background, only Name/Project table-links highlight
- TaskDetail Submissions tab: reads from deliveries table, shows R## version, sent_by, message
- Submit for Review: writes to deliveries + delivery_files (deliveries bucket)
- deliveries.version_number column added and backfilled from revision history
- Port 4173 for dev server
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Overview tab: 3 donut pie charts (expenses by category, sub payments, invoiced) each with independent month navigation arrows
- Expenses tab: big red total in category sidebar, left-aligned category column, white text
- Subcontractors tab: big gold total in sidebar, pending/paid breakdown with gold highlight
- Invoices tab: big green total in companies sidebar, dashboard-inline-link for invoice# and company, StatusBadge with Invoiced/Paid labels, column widths tuned
- StatusBadge: add optional label prop for custom display text
- Layout/style polish across tabs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>