librelad 168924757e fix(tasks): reap orphaned running tasks immediately at processor startup
Holding the singleton flock at startup proves no other processor is alive
to heartbeat or complete anything, so every task still marked running is
a corpse from a killed predecessor. Recover them all before the first
dispatch (recoverOrphans now takes an 'all' mode) instead of waiting out
the 60s heartbeat-staleness window — which used to leave a dead task
showing 'running' alongside the genuinely-running next task for a minute
whenever the service was restarted mid-task (e.g. by the deploy chain
during initial setup). The idle-loop pass keeps the stale-only gate.

refactor(dashboard): slim the storage card back to chart + percentage

The disk card was only ever meant to be the donut and the % figure; drop
the Apps/Docker/Other/Free legend rows and signal the deeper view with a
corner expand glyph instead (the System page's chart-expand icon) — the
card already opens /admin/system/storage on click.

Signed-off-by: librelad <librelad@digitalangels.vip>
2026-06-12 23:39:28 +01:00

55 lines
2.3 KiB
HTML
Executable File

<!-- Topbar Component -->
<div id="topbar-container"></div>
<!-- Main content -->
<div class="main dashboard-main">
<div class="dashboard-stats">
<div class="stat-card">
<div class="stat-number" id="installed-count">0</div>
<div class="stat-label">Installed Apps</div>
</div>
<div class="stat-card disk-stat-card" id="disk-stat-card" role="button" tabindex="0" title="View storage breakdown">
<span class="disk-expand" aria-hidden="true">
<svg viewBox="0 0 24 24" width="14" height="14"><path d="M3 9V3h6M21 9V3h-6M3 15v6h6M21 15v6h-6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
</span>
<div class="disk-donut-wrap">
<div class="disk-donut" id="disk-donut"></div>
<div class="disk-percentage" id="disk-percent">0%</div>
</div>
<div class="chart-label">
<div class="chart-text">Disk Used</div>
</div>
</div>
<div class="stat-card system-info-card">
<div class="system-details">
<div class="system-item">
<span class="system-label">OS:</span>
<span class="system-value" id="system-info">Loading...</span>
</div>
<div class="system-item">
<span class="system-label">Uptime:</span>
<span class="system-value" id="uptime-info">Loading...</span>
</div>
<div class="system-item">
<span class="system-label">Memory:</span>
<span class="system-value" id="memory-info">Loading...</span>
</div>
</div>
<button class="system-refresh-btn" id="system-refresh-btn" aria-label="Refresh system info">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M23 4v6h-6"></path>
<path d="M1 20v-6h6"></path>
<path d="M3.51 9a9 9 0 0 1 14.85-3.36M20.49 15a9 9 0 0 1-14.85 3.36"></path>
</svg>
<div class="system-refresh-tooltip" id="update-countdown"></div>
</button>
</div>
</div>
<!-- Installed Apps Icons -->
<div id="frontpage-apps-section" class="frontpage-apps-section" style="display:none;">
<div id="frontpage-apps-container" class="frontpage-apps-grid"></div>
</div>
</div>