Skip to content

Commit eb7da0e

Browse files
committed
release: v0.5.5
Housekeeping roll-up, no runtime behaviour change: - Dependabot: Alpine runtime base 3.23→3.24 (CVE-clean, verified locally with trivy: 0 HIGH/CRITICAL), node/golang build-stage digests, web dev-deps (playwright/eslint/prettier/vitest/vite), CI actions (checkout v6→v7, setup-go, golangci-lint). Prettier 3.9 reformatted 4 files (whitespace). - ponytail-audit dead-code removal (ProgressBar label prop, supportsWebSocket placeholder, FirmwareUpdateResult type). Bundles PRs #78, #77, #75 + the ponytail cleanup. Full changelog in CHANGELOG.md.
1 parent f00efcf commit eb7da0e

11 files changed

Lines changed: 37 additions & 17 deletions

File tree

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,31 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
## [0.5.5] - 2026-07-01 — Dependency roll-up + dead-code cleanup
8+
9+
Housekeeping release: no runtime behaviour change. Bundles the Dependabot
10+
dependency bumps with the ponytail-audit dead-code removal.
11+
12+
### Changed
13+
14+
- **Runtime base image Alpine 3.23 → 3.24** (`docker/Dockerfile`), plus the
15+
`node:26-alpine` and `golang:1.26-alpine` build-stage digests refreshed.
16+
Alpine 3.24.1 ships the same CVE-clean OpenSSL (`libcrypto3`/`libssl3`
17+
3.5.7-r0) that v0.5.4 pinned by digest.
18+
- **Dev-dependency bumps** (`web/`): playwright 1.60→1.61, typescript-eslint
19+
8.60→8.62, vitest coverage 4.1.8→4.1.9, eslint 10.4→10.6, prettier 3.8→3.9
20+
(+ eslint-plugin-svelte, vite). The prettier bump reformatted four
21+
pre-existing files (whitespace only, no logic change).
22+
- **CI action bumps**: `actions/checkout` 6→7, `actions/setup-go` 6.4→6.5,
23+
`golangci/golangci-lint-action` digest.
24+
25+
### Removed
26+
27+
- **Dead frontend code** flagged by ponytail-audit (grep-verified zero
28+
references, no behaviour change): the unused `ProgressBar` `label` prop and
29+
its branches/CSS, the `supportsWebSocket()` placeholder, and the orphaned
30+
`FirmwareUpdateResult` type.
31+
732
## [0.5.4] - 2026-07-01 — Shelly 2.0.0-beta3: alt-firmware + provisioning visibility
833

934
### Added

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ details, see [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md).
1212
- **Backend**: Go 1.25 (single binary, `cmd/shellyctl/main.go`). The Go floor moved from 1.24 → 1.25 in v0.1.16 — gin v1.12.0 pulls `quic-go/quic-go` for HTTP/3, which requires Go 1.25.0 in its `go.mod`. CI's `setup-go` and the Dockerfile backend stage use the **Go 1.26 toolchain** (bumped in v0.3.4); the `go.mod` directive stays `go 1.25.0` — the floor — and the newer toolchain builds it backward-compatibly. **The binary links quic-go but does NOT open any UDP/QUIC listener** — the HTTP server in main.go is plain `net/http` over TCP. Phase 2 (v0.2.11) verified this; the QUIC code paths in the binary are dead weight at runtime, not an attack surface.
1313
- **Frontend**: Svelte + TypeScript SPA (`web/src/`)
1414
- **Database**: SQLite via `modernc.org/sqlite` (no CGO required)
15-
- **Deployment**: Multi-stage Docker image — Node 26 builds frontend, Go 1.26 builds backend, Alpine 3.23 is the runtime
15+
- **Deployment**: Multi-stage Docker image — Node 26 builds frontend, Go 1.26 builds backend, Alpine 3.24 is the runtime (bumped from 3.23 in v0.5.5)
1616
- **Entry point**: `cmd/shellyctl/main.go``internal/services/app.go`
1717

1818
The SPA is embedded into the Go binary at build time via `//go:embed`.

README.de.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Die Anwendung ist als Einzel-Container-Deployment ausgelegt mit:
4949

5050
## Status
5151

52-
In aktiver Entwicklung. Aktuelles Release ist `v0.5.4` (Shelly-Firmware-2.0.0-beta3-Unterstützung: read-only Sichtbarkeit alternativer Firmware-Varianten und des Secure-Provisioning-Status, additiv zu `/api/devices` und der MCP-Fläche); die UI/API-Baseline ist ansonsten seit `v0.4.0` unverändert. Das Projekt folgt vor v1.0 dem SemVer-Schema mit Vorbehalt: Minor-Versionen können Breaking Changes enthalten. SemVer-Garantien gelten ab `v1.0.0`.
52+
In aktiver Entwicklung. Aktuelles Release ist `v0.5.5` (Wartung: Dependency-Sammel-Update inkl. Alpine-3.24-Runtime-Base + Dead-Code-Cleanup, ohne Verhaltensänderung). Das letzte Feature-Release war `v0.5.4` (Shelly-Firmware-2.0.0-beta3-Unterstützung: read-only Sichtbarkeit alternativer Firmware-Varianten und des Secure-Provisioning-Status); die UI/API-Baseline ist ansonsten seit `v0.4.0` unverändert. Das Projekt folgt vor v1.0 dem SemVer-Schema mit Vorbehalt: Minor-Versionen können Breaking Changes enthalten. SemVer-Garantien gelten ab `v1.0.0`.
5353

5454
Eingeplantes Einsatzprofil:
5555

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ It is designed as a single-container deployment with:
4949

5050
## Status
5151

52-
Under active development. Current release is `v0.5.4` (Shelly firmware 2.0.0-beta3 support: read-only visibility of alternative firmware variants and secure-provisioning status, additive to `/api/devices` and the MCP surface); the UI/API baseline is otherwise unchanged since `v0.4.0`. The project follows pre-1.0 semver: minor versions may carry breaking changes. Semver guarantees apply from `v1.0.0`.
52+
Under active development. Current release is `v0.5.5` (housekeeping: dependency roll-up incl. Alpine 3.24 runtime base + dead-code cleanup, no behaviour change). The last feature release was `v0.5.4` (Shelly firmware 2.0.0-beta3 support: read-only visibility of alternative firmware variants and secure-provisioning status); the UI/API baseline is otherwise unchanged since `v0.4.0`. The project follows pre-1.0 semver: minor versions may carry breaking changes. Semver guarantees apply from `v1.0.0`.
5353

5454
Intended posture:
5555

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.5.4
1+
0.5.5

web/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "shellyadmin-web",
33
"private": true,
4-
"version": "0.5.4",
4+
"version": "0.5.5",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

web/src/pages/Settings.svelte

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,7 @@
218218
(settings.subnets = (e.currentTarget as HTMLTextAreaElement).value
219219
.split('\n')
220220
.map((v) => v.trim())
221-
.filter(Boolean))}
222-
></textarea>
221+
.filter(Boolean))}></textarea>
223222
<div class="row g-3">
224223
<div class="col-md-4">
225224
<label class="form-label" for="settings-scan-timeout">Scan timeout (s)</label><input
@@ -541,8 +540,7 @@
541540
class="form-control font-monospace mb-2"
542541
rows="10"
543542
bind:value={importText}
544-
placeholder="Paste exported backup JSON here"
545-
></textarea>
543+
placeholder="Paste exported backup JSON here"></textarea>
546544
<div class="d-flex gap-2 flex-wrap">
547545
<button
548546
class="btn btn-outline-light"

web/src/pages/provision/UserCAForm.svelte

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,7 @@
137137
class="form-control font-monospace"
138138
rows="6"
139139
placeholder="-----BEGIN CERTIFICATE-----&#10;...&#10;-----END CERTIFICATE-----"
140-
bind:value={pem}
141-
></textarea>
140+
bind:value={pem}></textarea>
142141
{#if !pemLooksValid}
143142
<div class="text-warning mt-1 text-hint-md">
144143
Warning: content does not contain a PEM header.

web/src/pages/provision/WebhooksForm.svelte

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,7 @@
103103
class="form-control form-control-sm font-monospace"
104104
rows="3"
105105
bind:value={entry.urls}
106-
placeholder="https://example.com/hook"
107-
></textarea>
106+
placeholder="https://example.com/hook"></textarea>
108107
</div>
109108
</div>
110109
{/each}

0 commit comments

Comments
 (0)