feat(dashboard): let the top card be switched off

The layout settings gain a switch for the dashboard's top card (the Today
card above the tiles). Stored server-side on the layout blob as
`todayCardVisible`: missing means shown, only an explicit false hides it,
the default is omitted from storage, a save that omits the field keeps
the stored choice, and a layout reset shows the card again. Hidden, the
card leaves no skeleton or error card behind. The flag rides the
account-settings backup with the rest of the layout.

The field is deliberately not `heroVisible`, the retired opt-in hero's
flag that older stored layouts may still carry.

An end-to-end journey on its own account switches the card off and on
and walks the score histories' range tabs.
This commit is contained in:
Marc-André Bombeck committed 2026-10-09 16:52:39 +02:00
1 parent 62140a4aee
commit 668f568289
21 files changed
+714 -10

No files matched your search

+15
View File
@@ -32820,6 +32820,11 @@ components:
enum:
- score
- reminders
todayCardVisible:
description: v1.42 — whether the dashboard shows its top card (the Today card above the tiles). Missing resolves to
`true`; only an explicit `false` hides it. The stored default is omitted. A layout reset (DELETE) shows it
again. Additive.
type: boolean
baseUpdatedAt:
description: "Optimistic-concurrency base token: the `updatedAt` the client last read for this resource. Omit it for the
legacy unconditional write (older clients are unaffected). When present, the write is guarded on the stored
@@ -76275,6 +76280,11 @@ components:
enum:
- score
- reminders
todayCardVisible:
description: v1.42 — whether the dashboard shows its top card (the Today card above the tiles). Missing resolves to
`true`; only an explicit `false` hides it. The stored default is omitted. A layout reset (DELETE) shows it
again. Additive.
type: boolean
updatedAt:
description: "Optimistic-concurrency token: the stored row's `updatedAt` at read/write time. Echo it back as
`baseUpdatedAt` on the next write. Opaque."
@@ -76532,6 +76542,11 @@ components:
enum:
- score
- reminders
todayCardVisible:
description: v1.42 — whether the dashboard shows its top card (the Today card above the tiles). Missing resolves to
`true`; only an explicit `false` hides it. The stored default is omitted. A layout reset (DELETE) shows it
again. Additive.
type: boolean
updatedAt:
description: "Optimistic-concurrency token: the stored row's `updatedAt` at read/write time. Echo it back as
`baseUpdatedAt` on the next write. Opaque."