v0.39.0
Added
- Improved task status UX: each status now has a customizable color and icon, with smart defaults driven by its category (backlog, todo, in progress, done). Kanban column headers show the status icon and a colored accent bar, and every status dropdown (kanban, project table/gantt rows, My Tasks, tag task lists, task edit page) now shows the icon beside the name and mirrors the active status color on the trigger border.
Fixed
- Auto-redirect to the welcome/login page when the access token expires, instead of leaving the app in a broken state until the user manually refreshes. Shows a "Your session has expired" toast before the redirect.
- Backend now returns
401 Unauthorized(withWWW-Authenticate) for expired or invalid JWTs, invalid device tokens, and malformed token payloads, rather than403 Forbidden. Genuine authorization failures are unchanged. - Frontend 401 interceptor no longer silently swallows expired-session 401s on web cookie auth: an explicit session flag tracks whether a user is currently signed in, regardless of whether the in-memory bearer token was ever populated.
- Backend now returns
- Fix manual logout so previously-issued JWTs are actually invalidated server-side. The logout endpoint was using
AdminSessionDepwhileget_current_user_optionalusedSessionDep, so in production thecurrent_userobject came from a detached session and thetoken_version += 1bump was silently dropped on commit. Previously-signed JWTs (and any still-cached HttpOnly cookie) stayed valid until natural expiry, letting users navigate back into protected pages by typing the URL after clicking "Sign out". The endpoint now uses a singleSessionDepso FastAPI's per-request dependency cache hands both sites the same session, and the commit actually persists.
Downloads
Android App
Download the APK from the assets below and install on your Android device.
Docker Image
docker pull morelitea/initiative:0.39.0Or use latest tag. View on Docker Hub.