1.4 KiB
1.4 KiB
Changelog
Unreleased
Changed
- Optimized the HTML dashboard data flow by splitting board loading and task detail loading.
- Kept the public
/api/tasks/*API unchanged. - Added internal
/ui_data/*routes for lightweight board data and on-demand task details. - Updated the
/statspage to load a lightweight board model first and fetch full task details only for the selected task. - Hid internal UI routes from Swagger / OpenAPI documentation.
- Updated tests and project documentation to match the new dashboard behavior.
Why
- The previous dashboard rendered the full task payload for every card directly into the HTML.
- This caused unnecessary data transfer and made the page size grow linearly with the number of tasks.
- The change reduces the initial payload and loads detailed data only when it is actually needed.
Effect
- The
/statsHTML response became nearly constant in size instead of growing with the full board. - Embedded per-card task payloads were removed from the DOM.
- The dashboard now transfers less data on initial load and keeps full task details as a separate targeted request.
- Measured impact on a 1000-task dataset:
/statsHTML reduced from632,377 Bto11,413 B- embedded task payload reduced from
250,800 Bto0 B - full board data moved into a lightweight JSON response (
162,656 B) - selected task details are loaded separately in a small response (
179 B)