Repository navigation
v0.3.0
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 inuseUserTypesthat
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 —
ProtectedRoutenow
trustsAuthContextinstead of readinglocalStoragedirectly. - Removed a runtime-config and login-response leak via stray
console.logcalls.
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. UserFormwas 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 andProtectedRoute.
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.