WIP: State save - Task #125 Phase 2 asset browser deployed

This commit is contained in:
Claude
2026-04-12 01:11:23 +00:00
parent a5c774584c
commit 2391bfb08f

View File

@@ -213,3 +213,27 @@ New `/admin/social-calendar` widget in Trinity Console for Meg. Week-at-a-glance
- Browser smoke test by Michael.
— Chronicler #81
**Task #125 Phase 2 — Branding Asset Browser DEPLOYED ✅**
Calendar form now has a "🎨 Browse assets" button next to Media Notes that opens a modal showing every image in `firefrost-operations-manual/branding/` and `docs/branding/` as thumbnails. Click one → filename is appended to the media notes textarea.
**Infrastructure added to Command Center (not in any repo):**
- `/opt/firefrost-ops-manual` — fresh clone of the operations manual, separate from the stale `/root/firefrost-work/...` clone (which was untouched)
- `/etc/systemd/system/firefrost-ops-sync.{service,timer}` — pulls every 15 min (active, enabled, first run succeeded)
- `/var/cache/arbiter/branding-thumbs/` — thumbnail cache directory
- `sharp@0.34.5` (libvips 8.17.3) added as Arbiter npm dependency
**Code:**
- `src/routes/admin/branding-assets.js` — /list scans both roots recursively, groups by category. /thumb generates 256px WebP on-the-fly via sharp, caches to disk keyed by `sha1(path + mtime)` so any file edit busts the cache automatically. Path traversal protection + scope check.
- `src/views/admin/social-calendar/_assets.ejs` — category-grouped thumbnail grid with lazy-loaded images.
- `src/views/admin/social-calendar/index.ejs` — second modal at z-[60] (above the form modal) + `sppInsertAsset()` helper that appends to the media_notes textarea.
- `src/views/admin/social-calendar/_form.ejs` — "Browse assets" button next to media notes.
**Verified:** List endpoint returned 31 assets matching the on-disk count. Thumbnail generation succeeded (254×256 WebP, 17KB). Cached request returns in ~8ms (pure disk stream, sharp not invoked). Branches `task-125-asset-browser` merged and pushed.
**Remaining for Task #125:**
- Michael browser smoke test of the calendar + asset browser end-to-end
- Possible UX enhancements based on Meg's usage feedback (search/filter assets by name, sort, recently-used section, etc.) — defer until she uses it
— Chronicler #81