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.1] — 2026-07-17

### Fixed
- **Dashboard panel titles were pushed to the centre of their headers** — the drag grip added in 1.3.0 was injected as a flex child of each panel header, and with `justify-content: space-between` that turned every header into three items, centering the title (Connection, Repair Operations, etc.) instead of left-aligning it. The grip is now absolutely positioned in a small reserved gutter, out of the flex flow, so headers lay out exactly as before 1.3.0 with the grip appearing on hover.

## [1.3.0] — 2026-07-16

### Added
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.0
krippler52/starr:1.3.1
```

**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.0` | exact version — recommended pin for production |
| `1.3.1` | 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.0 – job started for {cfg['app'].upper()}", "sys")
emit("SYS", f"Starr DB Repair v1.3.1 – job started for {cfg['app'].upper()}", "sys")
emit("SYS", f"Dry run: {cfg.get('dry_run', False)}", "sys")

db_path = None
Expand Down
13 changes: 9 additions & 4 deletions app/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,15 @@
.dash-card { position: relative; }
/* Grip handle injected into each card header by JS. Hidden until you hover the
card (or while a drag is in progress), Fresharr-style. */
/* The grip is absolutely positioned in a small reserved gutter so it is OUT of
the header's flex flow — otherwise it becomes a third flex item and
`justify-content: space-between` shoves each panel title to the centre. */
.dash-card > .panel-head, .dash-card > .terminal-bar { position: relative; padding-left: 30px; }
.drag-handle {
cursor: grab; user-select: none; flex-shrink: 0;
position: absolute; left: 9px; top: 50%; transform: translateY(-50%);
cursor: grab; user-select: none;
font-size: 14px; line-height: 1; color: var(--muted);
opacity: 0; transition: opacity .15s; padding: 0 6px 0 0; margin-right: -2px;
opacity: 0; transition: opacity .15s;
}
.dash-card:hover .drag-handle, .dashboard.dnd-active .drag-handle { opacity: .5; }
.drag-handle:hover { opacity: 1; color: var(--app); }
Expand Down Expand Up @@ -438,7 +443,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.0</p>
<p id="appSub">Database Diagnostic &amp; Recovery — v1.3.1</p>
</div>
</div>
<div class="header-right">
Expand Down Expand Up @@ -1633,7 +1638,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.0';
document.getElementById('appSub').textContent = cfg.sub + ' — v1.3.1';
document.getElementById('logoSvg').innerHTML = cfg.icon;
document.getElementById('termTitle').textContent = cfg.name + ' REPAIR LOG';

Expand Down
Loading