No results
74
Roadmap
david edited this page 2026-06-10 09:25:57 -07:00
Table of Contents
Roadmap
This page mirrors the repo roadmap for the selected future-feature work. Update it at the end of each development iteration along with the matching repo docs.
Selected Work
| # | Area | Status | Next Slice |
|---|---|---|---|
| 1 | Release and version visibility | Done | Running version and build ID appear in dashboard APIs, the container workflow embeds the commit SHA, and Forgejo releases use release-specific notes. |
| 2 | Server-side history | In progress | Status changes, Uptime Kuma samples, and diagnostic samples now persist in SQLite with admin summary/export/clear/retention controls. Next: migrate useful local history into server history where possible. |
| 3 | Integration diagnostics | In progress | Poll success/failure timing is sampled into SQLite, shown as per-integration response trends, used for configurable response-threshold warning alerts, paired with per-module remediation playbooks, exportable through filtered history shortcuts, visible in admin response drill-down cards, and lazy-loaded in admin so settings pages do not wait for live polls. Next: add service-specific drill-down details from each integration's own health surface. |
| 4 | Backup and restore | In progress | Settings backup exists and dashboard history can be exported separately. Next: decide whether history should be bundled into full backups or kept as a separate operator archive. |
| 5 | Notification upgrades | Foundation present | Alert rail pills now show their triggering reason. Next: add quiet hours, deduping windows, severity routing, templates, and clearer alert lifecycle state. |
| 6 | Role-based access | Foundation present | Expand current admin/user split with finer permissions for viewing dashboard, managing settings, managing users, and viewing sensitive operational data. |
| 7 | Storage fleet depth | In progress | Storage capacity thresholds are configurable, ASUSTOR temperature thresholds are operator opt-in, aggregate capacity has stronger visual prominence, storage warning rows name the affected source/device, TrueNAS/ASUSTOR/UniFi NAS sources combine capacity and pool/volume health in named system rows, Storage admin fields are grouped by source in collapsible sections, TrueNAS polling uses JSON-RPC/WebSocket instead of deprecated REST with legacy API-key fallback, and UniFi NAS local Drive API polling now handles session, API-key, MFA/rate-limit fallback, and bare host/IP local URL paths. Next: add clearer NAS connection testing, deeper SMART/RAID/disk health details, disk temperature trends, and per-source threshold overrides where useful. |
| 10 | Wallboard and mobile polish | In progress | Wallboard presets now enter focused lab view, drag/resize controls stay out of wallboard mode, mobile lab view becomes a scrollable compact status board, small-screen lab controls are reduced to status/diagnostic actions, dashboard header controls/focus states now behave better across compact and mobile layouts, action tooltips/pressed states clarify dense controls, and lab-view graph/media cards now have stronger visual separation. Next: visual QA on target wall display and real phone/tablet breakpoints. |
| 11 | Performance hardening | Foundation present | Dashboard snapshots are cached in memory for faster reloads, duplicate initial dashboard/WebSocket polls are de-duped, and admin diagnostics lazy-load away from the settings bootstrap. Keep the performance smoke check; add budgets for bundle size, poll duration, API response size, and memory growth over longer runs. |
| 13 | Integration template/plugin path | In progress | Frontend diagnostics, admin recovery, admin health, sidebar-based admin navigation, and more resilient UniFi Network configured-site fallbacks have reduced operational friction. Next: continue extracting integration-specific backend/frontend modules before adding more service depth. |
Iteration Rule
Every implementation pass should update:
- The relevant repo docs under
docs/. - The Forgejo wiki page that operators use.
- This roadmap when a selected feature moves between planned, in progress, foundation present, and done.
- If a feature expands
src/App.tsx,src/App.css, orserver/server.js, first look for an extraction point or shared helper so feature work does not keep concentrating in the largest files.
Current First Slice
- Added running version visibility to app APIs and the dashboard header.
- Embedded the Forgejo commit SHA into published container images through
DASHBOARD_BUILD. - Added SQLite-backed dashboard events, Uptime Kuma history samples, and integration diagnostic samples.
- Added admin summary, export, and clear controls for server-side dashboard history.
- Added admin retention settings for server-side dashboard history.
- Surfaced per-integration diagnostic response trends from persisted samples.
- Added diagnostic response warning thresholds from persisted samples.
- Added operator-configurable diagnostic response thresholds in admin settings.
- Added per-integration diagnostic explanations and threshold tuning guidance.
- Added module-specific remediation playbooks for recurring integration failures.
- Stabilized recent diagnostics/history work by extracting diagnostics guidance, dashboard diagnostics, admin recovery, and admin health UI out of the main app file.
- Started wallboard and mobile polish with focused wallboard presets, cleaner non-editable lab cards, and compact scrollable mobile lab layouts.
- Added configurable warning thresholds for storage capacity, ASUSTOR temperatures, and Proxmox resource summary cards.
- Added filtered dashboard history exports and compact mobile lab controls.
- Split admin integration configuration into a module menu and made ASUSTOR temperature warnings opt-in by default.
- Promoted admin areas and each integration configuration into separate admin pages.
- Moved admin page navigation into a highlighted sidebar with mobile-friendly overflow.
- Let the admin sidebar scroll with the full page instead of using an independent scroll area.
- Added admin diagnostic response drill-down cards with retained sample bars and ranked slow/warning trend summaries.
- Gave the storage fleet aggregate stronger presence and made storage warning rows identify the affected source or device.
- Simplified UniFi Network to device health, made Seerr stats-only, and showed all storage sources as named systems.
- Grouped Storage Health admin fields by TrueNAS, thresholds, ASUSTOR units, and UniFi NAS units.
- Made Storage Health admin source/device setup sections collapsible.
- Generated Forgejo release notes from the registry release-history table instead of generic automated text.
- Cached the latest dashboard snapshot and lazy-loaded admin Integration Health so reloads and settings pages do not wait on every live integration poll.
- Combined Storage Health capacity and pool/volume details into per-system rows while keeping warning-specific details prominent.
- Migrated TrueNAS Storage Health polling from deprecated REST calls to JSON-RPC over WebSocket.
- Added TrueNAS JSON-RPC API-key fallback handling and clearer UniFi NAS SNMP empty-row diagnostics.
- Scoped TrueNAS failed-job warnings in Storage Health to storage-related jobs so unrelated update jobs do not create storage warnings.
- Showed alert reasons directly in the dashboard alert rail so top-level alerts are easier to identify.
- Added UniFi NAS local Drive API polling with SNMP fallback for storage capacity and pool health.
- Fixed UniFi NAS local API backend startup after adding Drive API polling.
- Broadened UniFi NAS Drive API parsing and showed response-shape diagnostics when capacity still cannot be matched.
- Added UniFi NAS SNMP positional row fallback for partial one-row capacity tables.
- Added UniFi NAS SNMP sample-value diagnostics when capacity rows cannot be built.
- Ignored UniFi NAS SNMP
No Such Objectreplies and clarified when local Drive API credentials are required. - Broadened UniFi NAS local Drive API parsing for newer pool and global disk payloads.
- Preferred UniFi NAS local login sessions over API-key auth when both are configured, with clearer auth-mode diagnostics.
- Accepted bare host/IP values in UniFi NAS local API URL fields by defaulting them to HTTPS.
- Fell back to UniFi NAS API-key auth when local session login requires MFA.
- Avoided repeated UniFi NAS session login attempts after MFA or login-attempt rate-limit blocks.
- Extracted Storage Health overview rendering from
App.tsxand indexed storage checks in one pass. - Extracted backend module definitions and environment mapping from
server/server.js. - Extracted Proxmox overview rendering from
App.tsxand indexed Proxmox checks in one pass. - Extracted UniFi Network overview rendering from
App.tsxand indexed device rows in one pass. - Let UniFi Network use configured Site ID and Host ID values when site discovery fails.
- Extracted dashboard trend rendering from
App.tsxand indexed diagnostic samples once per snapshot. - Extracted the shared backend JSON fetcher from
server/server.js. - Extracted backend auth/session helpers from
server/server.js. - Extracted dashboard history helpers from
server/server.js. - Extracted dashboard alert aggregation helpers from
server/server.js. - Extracted notification delivery helpers from
server/server.js. - Extracted audit log helpers from
server/server.js. - Extracted dashboard diagnostics summary helpers from
server/server.js. - Extracted Seerr integration helpers from
server/server.js. - Extracted Uptime Kuma integration helpers from
server/server.js. - Extracted Proxmox, Plex, media, and Storage Health backend helpers from
server/server.js. - Extracted UniFi Network backend helpers and discovery handling from
server/server.js. - Extracted dashboard runtime caching, polling, and realtime payload orchestration from
server/server.js. - Extracted SQLite persistence, settings, event-log, and legacy JSON migration helpers from
server/server.js. - Extracted admin action handlers from
server/server.jsand the authentication screen fromsrc/App.tsx. - Extracted the admin shell/sidebar from
src/App.tsxand polished admin page navigation state. - Added shared status, check-dot, and empty-state UI primitives across dashboard surfaces.
- Added stable loading skeletons for dashboard and admin health loading states.
- Polished admin form controls, action buttons, and security/user form grouping.
- Tightened dashboard integration card layout, meta rows, and card body scrolling.
- Polished Storage Health unknown-capacity states and capacity row hierarchy.
- Improved diagnostics drawer scanability with prioritized rows and status-toned headers.
- Polished dashboard header controls, compact density, mobile layout, and keyboard focus states.
- Added dashboard action tooltips and pressed states for toggle controls.
- Made Proxmox backup task polling compatible with task endpoints that reject filter query parameters.
- Improved lab-view separation for graph-heavy and image/logo-heavy cards.
- Attributed Forgejo releases to the configured registry user instead of the Actions Ghost user.
- Preserved the selected roadmap in repo docs and this wiki page.