Skip to content

v2.4.0

Choose a tag to compare

@ulsklyc ulsklyc released this 11 Aug 16:16
· 6 commits to main since this release

Added

  • An API token can act as a chosen family member. Only an admin can create one, so until now every request a token made belonged to the admin - and a budget entry's owner is fixed to whoever creates it. A bank-import connector could therefore only ever file transactions under the administrator, never under the member they belong to. Creating a token now asks which member it acts as: that member supplies the identity, role, ownership and module permissions, while the administrator stays recorded as the creator for the audit trail. The subject can only narrow access, never widen it - module permissions are resolved for the member on every request, a non-admin subject cannot reach admin-only routes, and scopes remain an additional limit on top. Split-expense guests cannot be selected. Existing tokens keep behaving exactly as before. (#697)

Changed

  • The day program looks past midnight. The closing line now names tomorrow's first due task ("Nothing else today - tomorrow: permission slip"), and the free-day state row picks whichever comes first, the next appointment or the next due task - an evening glance no longer promises "nothing else" while something is due at school in the morning. On free days the family card tells each member what is next instead of stacking four identical "Free today" lines.
  • Dashboard rows act on the object they name, and an open tab stays current. The cockpit's task row opens the same quick-action dialog as the tasks widget (mark done / edit) instead of dropping the user into the task list to search again; the meal row needs no special path, because /meals already scrolls today's slot into view. Dashboard content also refreshes silently when the tab becomes visible again and every 15 minutes while it stays visible - a wall tablet shows the evening's truth, not the morning's.
  • The dashboard cockpit now tells the day instead of summarizing modules. "Heute wichtig" was three module aggregates (one task, one count, one meal); it is now a chronological day program: today's remaining appointments with their time, tasks due today ("by 17:00", overdue first), the next planned meal, and open shopping as a timeless closing row - each row carrying its module seal and, where someone is assigned, the member's avatar, plus the object id as an anchor for future deep links. An empty day finally answers instead of disappearing: "Free today" or "All done for today", with the next upcoming appointment as an outlook, and a complete program closes with "Nothing else today". The weather moved from a card into a quiet line under the greeting - the card stays available as a wall-tablet opt-in, and a visible weather card silences the masthead line. The family widget now shows per member what today holds (next appointment, open tasks counted server-side and visibility-filtered) instead of a member count that never changes. Saved layouts keep their exact view; only the author defaults changed.

Fixed

  • The dashboard stops inventing deadlines and speaking in two tones. A task due tomorrow with no set time no longer shows an invented "23:59" - that was the internal sort placeholder leaking into the UI as a deadline nobody set. The family card's seal now carries the same module tone as its hairline (contacts) instead of borrowing the settings gray from its "Manage" link, and the module hairline sits on every widget card instead of only on tall ones - a signal that appeared on one of five cards read as an accident, not a system.
  • Dashboard accessibility and first-run copy. The focus ring in "Heute wichtig" is no longer clipped by the list's rounded corners; the weather card carries a visually hidden heading, so screen-reader heading navigation finally reaches it; the pinned-notes widget puts only the visible excerpt into the DOM instead of the full note - screen readers read Wi-Fi passwords and school notes out loud while the eye saw two clamped lines; and the onboarding no longer describes the mobile bottom bar and swipe gestures to desktop users, nor calls the plus button a "FAB".