A dashboard that pads empty state with confident numbers is worse than one that admits it has nothing yet. This release removes the padding.
An empty dashboard says it is empty
The dashboard hero asserted facts it did not have yet, phantom stage rows appeared where no stages existed, and the quiz card showed the same state whether or not there were results. Padding an empty dashboard with confident numbers is worse than admitting it has nothing yet, so the padding is gone and the Add-goal button now does something.
Dates and durations follow the reader
Durations and certificate dates went through hard-coded English. They now go through one locale-aware formatter, which is also the single place the numeral system is decided — so a dashboard cannot show one numeral system while the sentence beside it shows another.
App info tells the truth
Every environment reported its version as “dev”. The build now injects the real app version and commit sha, so a bug report says which build it came from.
Also in this release
Fixed
- The dashboard hero no longer asserts facts it does not have yet, and the stranded skill-mastery empty state is centred.
- Phantom stage rows are gone, the quiz no-data state is split from the has-data one, and the Add-goal button does something.
- Durations and certificate dates go through a locale-aware formatter instead of hard-coded English.
- App info reports the real version and build sha rather than reading “dev” in every environment.
- Shared table chrome is localized, and the raw enum under every activity-log row is gone.
- Ten non-interactive card captions stopped advertising a pointer cursor, and the dashboard tablist declares a complete contract.
- Notifications and chat got the h1 they were still missing, and three combobox contracts are complete.
- Seven community breadcrumb segments and seven more elsewhere are localized; calendar chevrons mirror in Arabic.
One email when we publish. Research, product decisions, and what teams report back.