diff --git a/CHANGELOG.md b/CHANGELOG.md index 127d3cf..212ed00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ All notable changes are documented here. Releases follow [SemVer](https://semver.org). Image tags published to Docker Hub (`krippler52/starr`) and GHCR (`ghcr.io/krippler/starr`). +## [1.3.3] — 2026-07-17 + +### Added +- **Grow/shrink dashboard columns by dragging — no Reset needed** — while you drag a card, any empty column now shows as a dashed **+ drop-rail**, so you can pull a card into empty space to spin a column back up (1 → 2 → 3, capped by the screen width). Dropping a card into a rail expands it into a full column; emptying a column collapses it again. Previously, once a column collapsed (1.3.2) the only way back to more columns was **Reset layout**. + ## [1.3.2] — 2026-07-17 ### Fixed diff --git a/README.md b/README.md index c0a26a0..2702bbb 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ docker run -d \ -v /mnt/user/appdata:/appdata:rw \ -v /mnt/user/appdata/starr/backups:/backups \ -v /var/run/docker.sock:/var/run/docker.sock \ - krippler52/starr:1.3.2 + krippler52/starr:1.3.3 ``` **That's it for the host side.** Open the dashboard, paste each app's API key, click **Save Credentials**, and Starr remembers it for scheduled runs and reloads. URLs / DB paths / container names are auto-discovered from Docker. @@ -72,7 +72,7 @@ docker run -d \ | Tag | Use | |---|---| -| `1.3.2` | exact version — recommended pin for production | +| `1.3.3` | exact version — recommended pin for production | | `1.2` / `1` | floating minor / major | | `latest` | newest **released version** (updated on every version tag) | | `edge` | tip of `main` — newest merged code, for testing ahead of a release | diff --git a/app/server.py b/app/server.py index a6d85a3..f805048 100644 --- a/app/server.py +++ b/app/server.py @@ -879,7 +879,7 @@ def _repair_worker(cfg: dict) -> None: _job.history = [] _job.result = None - emit("SYS", f"Starr DB Repair v1.3.2 – job started for {cfg['app'].upper()}", "sys") + emit("SYS", f"Starr DB Repair v1.3.3 – job started for {cfg['app'].upper()}", "sys") emit("SYS", f"Dry run: {cfg.get('dry_run', False)}", "sys") db_path = None diff --git a/app/templates/index.html b/app/templates/index.html index 154152e..87c9ca2 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -131,6 +131,21 @@ dead space — collapse the empty column so the populated ones expand to fill the page. (Reset layout restores the default multi-column spread.) */ .dash-col:empty { display: none; } +/* ...but WHILE dragging, reveal empty columns as slim drop-rails so you can pull + a card into empty space to spin a column back up (grow from 1→N columns, up to + the width's max) without a Reset. Dropping a card in makes the column + non-empty, so it immediately expands to a full flex column; emptying it again + collapses it back. The rail stretches full height so it's an easy drop target. */ +.dashboard.dnd-active .dash-col:empty { + display: flex; align-items: center; justify-content: center; + flex: 0 0 48px; min-width: 48px; align-self: stretch; min-height: 60px; + outline: 2px dashed var(--border); outline-offset: -3px; border-radius: var(--radius); + background: rgba(255,255,255,.02); +} +.dashboard.dnd-active .dash-col:empty::before { + content: "+"; color: var(--muted); opacity: .55; font-size: 20px; line-height: 1; +} +.dashboard.dnd-active .dash-col:empty:hover { outline-color: var(--app); background: rgba(0,200,255,.05); } /* Cards keep their own styling; the column's flex-gap replaces per-card margin. */ .dash-col > .dash-card { margin-bottom: 14px; } .dash-card { position: relative; } @@ -447,7 +462,7 @@
Database Diagnostic & Recovery — v1.3.2
+Database Diagnostic & Recovery — v1.3.3