Skip to content

v0.3.0

Choose a tag to compare

@pablofelipe pablofelipe released this 23 Jul 17:41
· 4 commits to main since this release

Frontend architecture and reliability release. No backend API changes in
this cycle — the REST/GraphQL surface is unchanged since v0.2.0.

Highlights

  • Three real bugs fixed, found while reworking the API call layer: a
    silent "success" on a failed condominium delete, a corrupted dashboard
    state on a non-OK response, and a loading state in useUserTypes that
    could hang indefinitely.
  • WebSocket notifications reconnect reliably again — a reconnect churn
    bug (an unstable callback dependency re-subscribing the message handler
    on every render) is fixed.
  • No more flash-of-logged-out on page load — ProtectedRoute now
    trusts AuthContext instead of reading localStorage directly.
  • Removed a runtime-config and login-response leak via stray
    console.log calls.

Under the hood

  • All direct fetch() calls in pages, forms and hooks now go through
    dedicated service modules (authService, dashboardService,
    condominiumService, userService, towerService), consistent with
    the pattern already used elsewhere in the frontend.
  • The WebSocket notification path (useWebSocket, NotificationHandler,
    notifications) is now TypeScript.
  • UserForm was split into presentational sub-components
    (UserLoginFields, UserProfileFields, UserLocationFields);
    orchestration logic is unchanged.
  • New frontend test coverage for the WebSocket hook, notification
    utilities, the API client and ProtectedRoute.

Compatibility

Pre-1.0 release — the public API is not yet declared stable (see
CHANGELOG.md). No breaking changes in this release; none are expected
before the next minor.