From 7b1b0f02ee3a794aea1090a97c523015b2bd59b0 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 26 Sep 2026 17:19:47 +0200 Subject: Validate extract on Vite manifest; v6.7 dropped v1 app.js v6.7.x release zips no longer ship public/v1/js/app.js (new layout), so the post-extract check aborted every update. public/build/manifest.json is in both 6.6.x and 6.7.x zips and missing from the composer dist, so it still catches a source-only tree. Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 5 +++++ firefly-update | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 4ccf70c..e4b593a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,6 +12,11 @@ Debian. See README.md for usage; this file is the non-obvious context. pages throw `Vite manifest not found (public/build/manifest.json)` as a secondary symptom. The zip is prebuilt and is the supported artifact. +- **v6.7 dropped the legacy `public/v1/js/app.js` bundle** (new layout; only + `public/v1/js/ff/*` and `.htaccess` remain). The extract check keys on + `public/build/manifest.json` instead, present in 6.6.x and 6.7.x zips and + absent from the composer dist. Don't go back to checking `app.js`. + - **Release tag carries a leading `v`** (`v6.6.5`). Asset name is `FireflyIII-.zip` with the `v` included. `--version` is normalized so both `6.6.5` and `v6.6.5` work; don't reintroduce a double-`v` bug. diff --git a/firefly-update b/firefly-update index 59cfc28..aacb850 100644 --- a/firefly-update +++ b/firefly-update @@ -135,7 +135,7 @@ echo "installing firefly-iii $tag" # Install from the official release zip, NOT composer create-project. The # composer/Packagist dist ships source only: it lacks the webpack-compiled -# frontend bundles (public/v1/js/app.js etc.), which breaks the UI (no graphs, +# frontend bundles (public/build, and public/v1/js before 6.7), which breaks the UI (no graphs, # broken pages). The release zip is prebuilt and is the artifact Firefly's # install docs point at. Asset name is FireflyIII-.zip, tag incl. the "v". rm -rf "$UPDATED" @@ -170,7 +170,9 @@ rm -f "$zip" # Validate the extracted tree before proceeding. A partial extract must not be # allowed to replace the live install. $OLD does not exist yet at this point, # so failing here leaves the live instance untouched (ERR trap + set -e). -for item in artisan bootstrap vendor public/v1/js/app.js; do +# public/build/manifest.json marks prebuilt frontend in every release (6.7 +# dropped the legacy public/v1/js/app.js bundle); composer dist lacks it. +for item in artisan bootstrap vendor public/build/manifest.json; do [ -e "${UPDATED}/${item}" ] || { echo "extracted install incomplete, missing: $item" >&2; exit 1; } done -- cgit v1.2.3