dragonflight/services/web-ui
Zac Gaetano 5968d4f681 feat(settings/growing): storage warning, SMB auth + CIFS mount, per-recorder growing
Implements docs/superpowers/specs/2026-05-31-storage-settings-growing-smb-design.md.

1. Storage warning banner at the top of Settings → Storage (set-once /
   path-change-corrupts-data warning).

2. Growing-files SMB credentials + system CIFS mount (Approach A):
   - settings.js: new global keys growing_smb_mount / growing_smb_username /
     growing_smb_vers; growing_smb_password is write-only (GET returns only
     growing_smb_password_exists; growing_smb_password_clear:true removes it).
   - GrowingSettingsCard: SMB mount/username/password (masked, "saved" state) +
     CIFS version fields.
   - capture Dockerfile: add cifs-utils + util-linux.
   - capture-manager: on growing start, mount //host/share at /growing using a
     root-only credentials file (creds never on the command line); unmount on
     stop; mount failure falls back to S3 streaming so a recording is never lost.
   - recorders.js: pass GROWING_SMB_* env; don't host-bind /growing when a CIFS
     mount is configured (an empty mountpoint is required).

3. Per-recorder growing mode (global toggle removed):
   - Removed the global "capture writes to local SMB share first" checkbox; the
     growing card is now SMB-infrastructure-only.
   - recorders.js reads the per-recorder recorders.growing_enabled column
     (already present from migration 014) instead of the global setting;
     RECORDER_FIELDS += growing_enabled.
   - New-recorder modal: "Growing-files mode" toggle.
   - storage.js overview: "enabled" now means the SMB landing zone is configured
     (mount source set), surfaced as smb_mount; health strip labels updated.

No DB migration required (recorders.growing_enabled exists; new settings are
key/value rows).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 14:50:36 -04:00
..
public feat(settings/growing): storage warning, SMB auth + CIFS mount, per-recorder growing 2026-05-31 14:50:36 -04:00
scripts chore: 1.2 ship-prep sweep — close 38 issues 2026-05-27 02:06:14 +00:00
src/css rebrand: Dragonflight — ember orange accent (hue 266→32) 2026-05-21 22:16:32 -04:00
.dockerignore add services/web-ui/.dockerignore 2026-04-07 21:58:21 -04:00
.gitignore web-ui: fix corrupted .gitignore from earlier patch 2026-05-21 12:31:18 -04:00
Dockerfile chore: 1.2 ship-prep sweep — close 38 issues 2026-05-27 02:06:14 +00:00
nginx.conf fix(playout): HLS preview path + live elapsed counter 2026-05-31 13:16:57 -04:00
package.json chore: 1.2 ship-prep sweep — close 38 issues 2026-05-27 02:06:14 +00:00
postcss.config.js web-ui: fix wave-1 build pipeline (primitives missing from bundle) 2026-05-21 16:41:55 +00:00
tailwind.config.js web-ui: fix wave-1 build pipeline (primitives missing from bundle) 2026-05-21 16:41:55 +00:00