v0.45.0
Added
- Counters advanced tool for initiatives. A new initiative-scoped feature for tracking numeric values like HP, ammo, scores, or budgets. Data model is
Initiative > Counter Group > Counter, mirroring Queues with full DAC (user + role permissions), guild-scoped RLS, soft-delete, and real-time WebSocket updates. Each counter has its owncount,min/maxbounds,step,initial_count, and view mode (number,progress_bar, orsegmented_clock). Counts can be set directly, incremented/decremented by step, or reset to the initial value; a "Reset All" button on the group resets every counter at once. Counters use fractional-position indexing (Numeric(20,10)) for single-PATCH drag-and-drop reordering within a group. Adds thecounters_enabledinitiative master switch andcounters_enabled/create_countersper-role permission keys (backfilled: managers ON, members OFF). New routes:/counter-groups,/counter-groups/:groupId,/counter-groups/:groupId/settings.
Fixed
-
Spreadsheet column/row resize now persists on Mac (and other high-DPI/Retina devices). Pointer events on Retina displays report fractional coordinates (e.g.
clientX = 123.5), which the spreadsheet'sclampIntinteger validator rejected. The sanitized formatting record then came back empty, andupdateColumn/updateRowinterpreted that as "delete the entry" — so releasing the mouse silently reverted the column or row to its default size. The resize handler now rounds the new size to an integer before committing. Also rewrote the resize event wiring to attachpointermove/pointerup/pointercancellisteners synchronously insidepointerdown(eliminating a latent race where a fast release on a Mac trackpad could misspointerupbefore the React effect attached). -
Pagination control now resyncs when external code resets the page. When a filter change called
setPage(1)on the My Tasks / My Projects / My Documents / Created Tasks / Documents / Tag Tasks tables, the underlying query refetched page 1 correctly but the DataTable's internal pagination control kept its oldpageIndex, so the UI continued to show the previous page number and an empty/short data page. DataTable now accepts a controlledpageIndexprop inmanualPaginationmode and syncs to it on change. Bug existed since manual pagination was introduced; surfaced while validating filter behavior in the Biome migration.
Changed
- Frontend tooling: migrated from ESLint + Prettier to Biome.
Downloads
Android App
Download the APK from the assets below and install on your Android device.
Docker Image
docker pull morelitea/initiative:0.45.0Or use latest tag. View on Docker Hub.