0.14.0
- Show elapsed and target turn times on campaign overview cards, with sorting in both directions.
- Keep campaigns with unavailable timing values visible and consistently sorted last.
- Base campaign “Updated” timestamps on the latest save upload.
- Fix missing Discord active-player announcements after changing seats, with reliable delivery retries.
- Preserve the latest accepted roster across navigation and campaign renumbering, and prevent stale responses from overwriting newer roster data.
- Improve in-game password reset and undo handling for stale data, interrupted requests, navigation, and permission changes.
- Validate password reset and undo responses before reporting success, and avoid automatically repeating operations with uncertain outcomes.
- Consolidate save publication and recovery handling while preserving conflict safeguards and failed-upload cleanup.
- Display turn-history and save-history timestamps in the viewer’s local timezone.
- Fix save archive key configuration for API containers and document Dokploy setup.
- Update campaign empty-state guidance to mention both
/initand/register. - Upgrade Node.js, pnpm, NestJS, SQLite bindings, and application dependencies.
- Refresh CI and desktop build tooling, including the pinned Rust toolchain.
Full Changelog: 0.13.2...0.14.0