feat(controller): Hub asset syncer for logos and screenshots
Add internal/assets package that downloads and caches app assets from Hub API with SHA-256 change detection. Assets resolve from synced cache first, falling back to baked-in directory. Daily sync schedule + on-demand POST /api/assets/sync endpoint. Config: assets.sync_enabled + assets.sync_schedule (default 05:00) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,15 @@
|
||||
## Changelog
|
||||
|
||||
### v0.22.3 — Hub Asset Sync (2026-02-21)
|
||||
|
||||
**Hub-managed asset downloads**
|
||||
|
||||
- New `internal/assets` package: downloads and caches app assets (logos, screenshots) from the Hub API with SHA-256 change detection.
|
||||
- Asset syncer resolves files from downloaded cache first, falls back to baked-in `/usr/share/felhom/assets/` directory.
|
||||
- Config: `assets.sync_enabled: true` + `assets.sync_schedule: "05:00"` to enable daily sync.
|
||||
- API: `POST /api/assets/sync` triggers on-demand sync, `GET /api/assets/status` returns sync status.
|
||||
- Web server's `serveAsset()` now routes through syncer's `Resolve()` when available.
|
||||
|
||||
### v0.22.2 — Setup Logo Fix (2026-02-21)
|
||||
|
||||
- **Fix setup wizard logo**: Logo failed to load because `handleLogo()` tried to read it as a file from the filesystem, but it only exists as an embedded string constant. Now imports and serves `web.FelhomLogoSVG` directly.
|
||||
|
||||
Reference in New Issue
Block a user