Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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 |
Expand Down
2 changes: 1 addition & 1 deletion app/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
19 changes: 17 additions & 2 deletions app/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -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; }
Expand Down Expand Up @@ -447,7 +462,7 @@ <h2 class="gate-title">STARR DB REPAIR</h2>
</div>
<div>
<h1 id="appTitle">STARR DB REPAIR</h1>
<p id="appSub">Database Diagnostic &amp; Recovery — v1.3.2</p>
<p id="appSub">Database Diagnostic &amp; Recovery — v1.3.3</p>
</div>
</div>
<div class="header-right">
Expand Down Expand Up @@ -1642,7 +1657,7 @@ <h1 id="appTitle">STARR DB REPAIR</h1>

// Header text
document.getElementById('appTitle').textContent = cfg.name + ' DB REPAIR';
document.getElementById('appSub').textContent = cfg.sub + ' — v1.3.2';
document.getElementById('appSub').textContent = cfg.sub + ' — v1.3.3';
document.getElementById('logoSvg').innerHTML = cfg.icon;
document.getElementById('termTitle').textContent = cfg.name + ' REPAIR LOG';

Expand Down
Loading