Quota UI and settings cleanup
2026-02-28
Journal quota UI
- Added daily regeneration quota to the journal detail page (commit).
- New API client
getQuota()callsGET /users/me/quota; on load it shows remaining count in the regenerate button like "Regenerate (2/day)". - Disabled the button when remaining=0; show plain "Regenerate" when
limit=-1(dev/unlimited). Optimistically decrement remaining on trigger. - Dropped in i18n keys for this:
journal.regenerateUnlimited,journal.quotaExhausted. Closed #237.
Settings layout + polish
- Reworked settings to a plain sidebar + content cards; aligned markup/styles with the integration-detail pattern (align commit).
- Added section
<h2>titles, fixed buttons so they don’t stretch full-width, and removed the 28rem max-width and a few unused modifiers. - Updated tests to query headings via
getByRole('heading')to avoid nav/title ambiguity. - Switched timezone input from free-text to a select dropdown.
- Prevented layout shift from scrollbar appearance using CSS
scrollbar-gutter.