- Header indicator (pulsating dot + "NEW VERSION") when a newer release
is published on GitHub. Replaces the version subtitle without growing
the header.
- Modal with current → latest version, release notes preview (parsed
from GitHub release body), copy-paste update command, link to repo
and release notes, current star count, and "versions behind" badge.
- Auto-detects deploy mode (GHCR image vs source build) by inspecting
the running container. Shows the matching update command, but always
exposes both via tabs.
- Backend caches the GitHub API response for 6h (~8 calls/day per
instance, far under the rate limit).
Adds a download button to the bottom-left React Flow controls that
exports the current canvas view as a PNG with the dot grid preserved.
- New util src/client/utils/exportPng.ts: html-to-image capture +
manual canvas composition (solid bg + dot grid + captured layer).
Works around html-to-image's SVG <pattern> limitations and produces
a deterministic 3x retina PNG.
- During capture, temporary CSS disables ring-shadow halos and forces
service node bodies to a solid dark fill so the dot grid doesn't
bleed through. State is still indicated by border colors and the
inner state dot. Group node headers are excluded so their outlines
stay intact.
- New component src/client/components/ExportPngButton.tsx integrated
as a custom ControlButton inside <Controls> (bottom-left).
- App.tsx: id="dashboard-canvas" + data-no-export on project filter.
- i18n: 4 keys (EN + ES) for the button and 3 error states.
- New dependency: html-to-image@1.11.13