Skip to content

Commit 2b322cd

Browse files
cpcloudcursoragent
andcommitted
feat(dashboard): height-aware layout with proportional row trimming
The dashboard overlay now adapts to terminal height: - Empty sections are skipped entirely instead of showing placeholder messages like "Nothing overdue -- nice work!" - When the terminal is too short to show all data, rows are distributed proportionally across sections (each section gets at least 1 row) - Maintenance sub-sections (Overdue/Upcoming) trim proportionally too - dashNav is rebuilt from the actually-rendered rows so cursor tracking stays correct after trimming - Spending footer is shown only when non-zero, taking fixed space Extracted distributeDashRows() and distributeSubLimits() as pure functions for testability. Added 4 new tests covering proportional distribution, empty-section skipping, row trimming, and nav rebuild. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent f4c0293 commit 2b322cd

File tree

4 files changed

+470
-145
lines changed

4 files changed

+470
-145
lines changed

AGENTS.md

Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -988,12 +988,27 @@ in case things crash or otherwise go haywire, be diligent about this.
988988
- [DATEPICKER] calendar date picker for inline date editing (68a1fa6)
989989
- [CAL-YEAR-NAV] calendar year navigation via [/] keys (e611cd9)
990990
- [CAL-ALIGN] calendar day column alignment preserved when centering grid (6fdc566)
991+
- [CAL-YEAR-KEYS] year nav switched from ctrl+shift+h/l to [/] (e611cd9)
992+
- [CAL-LAYOUT] fixed-height grid + left-side key legend (f4c0293)
993+
- [REF-SCROLL] refactor width/scroll implementation (fb84d4e, a46f34a, 9ca4f6e, 1bfa3cb)
994+
- [DATEPICKER] calendar date picker for inline date editing (68a1fa6)
995+
- [HOTNESS-KEYS] ^/$ jump to first/last column (c1c7214)
996+
- [NORMAL-TO-NAV] NORMAL badge renamed to NAV (c1c7214)
997+
- [STYLING-TIME-TO-MAINT] 4-tier urgency coloring on Next Due column (c1c7214)
998+
- [APPLIANCEAGE] computed Age column on Appliances (c1c7214)
999+
- [VENDORS-TAB] vendors as first-class browsable tab (a330f2d)
1000+
- [WARRANTY-INDICATOR] green/red warranty status coloring (c1c7214)
1001+
- [NOTES-EXPAND] read-only note preview overlay (590a6c0)
1002+
- [SOFT-DELETE-DOCS] verified cross-session persistence + updated docs (c1c7214)
1003+
- [WEBSITE-DESLOP] removed AI-slop from quotes blurb
1004+
- [HELP-OVERLAY] help screen as stacking overlay via bubbletea-overlay
1005+
- [DOCS] project documentation with Hugo, deployed to micasa.dev/docs
1006+
- [ATTRIBUTION] Claude/Cursor credited in website footer + README
1007+
- [NAV-CLAMP] column navigation clamped at edges instead of wrapping
9911008

9921009
# Remaining work
9931010

9941011
## Features
995-
- [REF-SCROLL] ~~Refactor width/scroll implementation (pure rendering, extract
996-
viewport helper, fix left-truncation), one commit per refactor.~~ DONE
9971012
- [WEBSITE] Help me build a `github-pages` website for this project. Modern,
9981013
simple, not AI sloppish, whimsical, funny, perhaps even a bit snarky and
9991014
irreverent. Ideally this wouldn't require a bunch of random javascript crap
@@ -1003,15 +1018,6 @@ in case things crash or otherwise go haywire, be diligent about this.
10031018
The site should include a project overview, installation instructions,
10041019
feature list. Bonus points for a "demo" section with animated GIFs showing
10051020
off the terminal UI.
1006-
- [DATEPICKER] ~~Date picker calendar widget for inline date editing.~~ DONE
1007-
- [HOTNESS-KEYS] ~~in nav mode, ^ should go to the first column, $ to the last~~ DONE
1008-
- [NORMAL-TO-NAV] ~~change the NORMAL label to NAV~~ DONE
1009-
- [STYLING-TIME-TO-MAINT] ~~add a gradient from say green to orange to red (where
1010-
green means maintenance is not due for a long time, orange means it's coming
1011-
up, and red means it's overdue) to the background of the "Next Due" column on
1012-
the maintenance tab.~~ DONE
1013-
- [APPLIANCEAGE] ~~Add an Age column to the Appliances table, it should be
1014-
read-only and computed from purchase date and the current date.~~ DONE
10151021
- [HIDECOLS-INTERACTIVE] Make the collapsed column stacks interactive: navigate to
10161022
a candy-wrapper pill and press c to unhide just that column (peel it off the
10171023
stack). Currently c hides and C shows all; this would add per-column restore.
@@ -1024,7 +1030,6 @@ in case things crash or otherwise go haywire, be diligent about this.
10241030
model number; doesn't need to be super sophisticated, just plausible
10251031
- [STATUS-MODE-VERBOSITY] is there a kind of verbose status bar we can add that
10261032
shows keystrokes and also more verbose context?
1027-
- [VENDORS-TAB] ~~Vendors as a first-class tab.~~ DONE
10281033
- [PAINT-COLORS] Paint color tracking per room: brand, color name/code, finish,
10291034
room/area. "What paint did we use in the living room?" is a universal
10301035
homeowner question.
@@ -1037,9 +1042,6 @@ in case things crash or otherwise go haywire, be diligent about this.
10371042
- [SEASONAL-CHECKLISTS] Recurring seasonal reminders not tied to a specific
10381043
appliance or interval (e.g. "clean gutters in spring", "check weatherstripping
10391044
before winter"). Could be a lightweight checklist model with season/month tags.
1040-
- [WARRANTY-INDICATOR] ~~Visual indicator on appliances for warranty status: green
1041-
if still covered, red/dim if expired.~~ DONE
1042-
- [NOTES-EXPAND] ~~Read-only note preview: enter on notes cell opens overlay.~~ DONE
10431045
- [TABLE-FILTER] In-table row filtering: `/` opens a filter input, typed text
10441046
narrows visible rows across all columns, `esc` clears. Essential for tabs
10451047
with more than ~15 rows. (Search was previously removed; this is a simpler,
@@ -1050,27 +1052,8 @@ in case things crash or otherwise go haywire, be diligent about this.
10501052
- [QUICK-ADD-FORM] Lighter-weight add forms: only require essential fields
10511053
(title + status for projects, name + interval for maintenance), let user fill
10521054
in optional details later via edit.
1053-
- [SOFT-DELETE-DOCS] ~~verify that soft deletion works across runs and if it does
1054-
then note in the soft delete section that this functionality works even
1055-
across runs~~ DONE
1056-
1057-
- [WEBSITE-DESLOP] ~~Remove "close the laptop, reopen the laptop" AI-slop from
1058-
quotes feature blurb on website and README.~~ DONE
10591055
- [DASH-OVERLAY-STYLE] Revisit dashboard overlay styling -- noodle on dim/bg
10601056
approach, make it feel polished.
1061-
- [HELP-OVERLAY] ~~Convert help screen to an overlay using bubbletea-overlay.
1062-
Must support stacking on top of the dashboard overlay (dimming the layer
1063-
beneath).~~ DONE
1064-
1065-
## Docs
1066-
1067-
- [DOCS] ~~Build out project documentation, deploy to micasa.dev/docs via CI~~ switched to Hugo, screenshots added
1068-
- [ATTRIBUTION] ~~ensure that claude, codex and cursor are ack'd in the built with section~~ DONE (website footer + README)
1069-
1070-
## Bugs
1071-
1072-
- [NAV-CLAMP] ~~Remove table column navigation wrapping -- clamp at edges
1073-
instead of wrapping around.~~ DONE
10741057

10751058
## Questions
10761059
- Why are some values pointers to numbers instead of just the number? E.g.,

0 commit comments

Comments
 (0)