docs: release-note image-versions fix, add marketplace QA tracker, update RESUME

- AccountInfoSection.vue: append 5th bullet to v1.7.43-alpha entry
  explaining that update-available badges and version comparisons
  work again now that the pinned-image catalog is found at the
  correct deployed path.

- docs/MARKETPLACE-QA.md: new tracker for the upcoming app-by-app
  install walk on .228. Documents the per-app fix workflow, the
  four layers we might need to fix at (app recipe, registry image,
  backend orchestrator, frontend), status-key table for tracking
  each catalog entry, and the release-notes policy for the walk.

- docs/RESUME.md: refresh with a9908597 commit, updated binary md5
  on .228, and split Immediate Next Step into Phase 1 (browser
  verification) and Phase 2 (marketplace walk) with a pointer to
  the new tracker.
This commit is contained in:
archipelago
2026-04-23 09:32:41 -04:00
parent a990859745
commit fdc035dda7
3 changed files with 78 additions and 7 deletions

58
docs/MARKETPLACE-QA.md Normal file
View File

@@ -0,0 +1,58 @@
# Marketplace QA — app-by-app install walk
Purpose: track install/launch/uninstall health for every app in the marketplace catalog on `.228`. User installs each app one by one; for each broken one we triage, fix at the right layer (app recipe / registry image / backend / frontend), commit, redeploy, and re-verify.
Target build: `v1.7.43-alpha` + backend md5 `9b8ead06aaf210b85cd78fce270384e3` (image-versions path fix included).
## Status key
- ✅ install, launch, uninstall all clean
- ⚠️ installs and runs but has cosmetic or partial issues (note in details)
- ❌ broken — fix needed
- ⏳ pending verification
## Catalog
Pull the authoritative list from Marketplace page on `.228` during the walk. Fill in as you go.
| App | Status | Notes / fix applied |
|---|---|---|
| _(to be filled during walk)_ | ⏳ | |
## Known issues going in
- **Vaultwarden** — container exits immediately on start. Pre-existing. Backend async wrapper correctly detects + removes the install state entry. Needs container-config investigation (image pin / env vars / volume layout).
## Fix layers cheat-sheet
When an app breaks, identify which layer to fix at:
1. **App recipe**`apps/<app>/package.yaml` or wherever the Podman manifest lives. Ports, volumes, env vars, healthcheck, resource caps.
2. **Registry image** — if image itself is missing/wrong-tag on `.168`:3000/lfg2025 or `git.tx1138.com`. Push corrected image, bump `scripts/image-versions.sh`.
3. **Backend orchestrator**`core/archipelago/src/container/` or `core/archipelago/src/api/rpc/package/` if the install flow mishandles this app's shape.
4. **Frontend**`neode-ui/src/views/marketplace/` or curated data in `neode-ui/src/views/marketplace/marketplaceData.ts` if catalog entry is wrong or UI can't render this app correctly.
## Per-app fix workflow
For each broken app:
1. Capture failure mode:
```
ssh archy228 'sudo journalctl -u archipelago --since "5 minutes ago" --no-pager | tail -80'
ssh archy228 'podman ps -a --format "{{.Names}}\t{{.Status}}\t{{.Image}}" | grep <app>'
ssh archy228 'podman logs <container-name> 2>&1 | tail -60'
```
2. Diagnose — which layer.
3. Fix in repo (use SSHFS mount for edits).
4. `cargo check` if backend changed; `npm run build` if frontend changed.
5. Commit with `fix(app/<name>): ...` or `fix(registry/<image>): ...` etc.
6. Redeploy as needed (binary via Mac ferry; frontend via rsync; registry via podman push).
7. User re-verifies on `.228`. Mark ✅.
## Release-notes policy
For each app fix, append a bullet to the current in-flight release entry in `neode-ui/src/views/settings/AccountInfoSection.vue`. If the fix pile gets large enough to warrant its own release, bump to v1.7.44-alpha and start a new block at the top. Keep entries operator-focused ("Nostr Relay no longer crashes on first start"), not implementation-focused.
## Running log
_Add dated notes here as we progress through the catalog._

View File

@@ -8,9 +8,11 @@ Read this first if you're a fresh OpenCode session resuming the install/uninstal
## Where we are right now
**v1.7.43-alpha shipped and deployed to .228**. 5 commits on `.116:main`, unpushed per user mirror protocol.
**v1.7.43-alpha shipped and deployed to .228**. Latest addition: image-versions.sh path bug fixed (silent update-check failure on all production nodes). User is about to walk the marketplace app-by-app on `.228` to shake out any remaining broken apps. Tracker for that walk: `docs/MARKETPLACE-QA.md`.
Commits (newest first):
Commits on `.116:main` (newest first, unpushed per user mirror protocol):
- `a9908597` fix(image-versions): locate image-versions.sh at its actual deployed path
- `013e8df0` docs(resume): add RESUME.md for context-restart recovery
- `f9fef8d2` docs(status): record rounds 3-5 + config migration + changelog as shipped
- `008da477` docs(changelog): add v1.7.43-alpha entry covering async lifecycle + .23 retirement
- `0ee16820` fix(config): auto-purge decommissioned .23 VPS from saved registry/mirror configs
@@ -22,8 +24,8 @@ Commits (newest first):
- `e471ef75` fix(rpc): empty icon in transient install entry (Round 2)
**Deployed artifacts on .228**:
- Backend: `/usr/local/bin/archipelago` md5 `d2b619949f19815faaeab10429e36ba0`
- Frontend: `/opt/archipelago/web-ui/` (v1.7.43-alpha changelog + .168-only registry)
- Backend: `/usr/local/bin/archipelago` md5 `9b8ead06aaf210b85cd78fce270384e3` (includes image-versions path fix)
- Frontend: `/opt/archipelago/web-ui/` (v1.7.43-alpha changelog with 5 bullets, .168-only registry)
- Rollback backups: `/usr/local/bin/archipelago.bak-pre-async-install` + `/opt/archipelago/web-ui.bak-pre-async-install/`
**Rollback command** (if catastrophic):
@@ -35,15 +37,25 @@ ssh archy228 'sudo cp -a /usr/local/bin/archipelago.bak-pre-async-install /usr/l
## Immediate next step
**User is doing browser verification on https://192.168.1.228/** right now. Checklist they were given:
**Phase 1 — browser verification of v1.7.43-alpha on https://192.168.1.228/**
1. Settings → About: top changelog entry reads "v1.7.43-alpha · Apr 23, 2026" with 4 bullets starting "Installing, updating, and removing apps no longer freezes…". Hard-refresh (Cmd+Shift+R) if stale.
1. Settings → About: top changelog entry reads "v1.7.43-alpha · Apr 23, 2026" with **5** bullets. Last bullet mentions "Update-available badges and version comparisons work again across every app." Hard-refresh (Cmd+Shift+R) if stale.
2. Settings → App Registries: only `146.59.87.168:3000/lfg2025` + `git.tx1138.com`. No .23.
3. Settings → System Update → Update Mirrors: only `.168` (Server 1 primary) + `tx1138` (Server 2). No .23.
4. Install SearXNG (small, fast image). Expect: instant button response, 7 phase labels in progress bar (Preparing → Pulling image → Creating container → Starting container → Waiting for healthy → Finalizing → Done), Launch button appears within ~3s of "Done".
5. Uninstall: snappy, no freeze.
**When user reports back**: if any item fails, investigate that item. If everything passes, ask user for the next install/uninstall/update UX issue to tackle (they work "one by one in order").
**Phase 2 — marketplace walk (app-by-app on .228)**
Once Phase 1 is clean, user will install every app in the marketplace catalog one by one. Tracker: `docs/MARKETPLACE-QA.md`. For each broken app:
- Triage via `journalctl -u archipelago`, `podman ps -a`, `podman logs <name>`.
- Identify layer: app recipe / registry image / backend / frontend.
- Fix, commit `fix(app/<name>): ...` or similar.
- Redeploy as needed.
- Append release-note bullet for the fix (to current in-flight version, or bump to v1.7.44-alpha if the pile grows).
- User re-verifies, mark ✅ in the tracker.
Known pre-existing issue to expect: **Vaultwarden** container exits immediately on start. Backend correctly detects + removes state entry; needs container-config debug.
---

View File

@@ -191,6 +191,7 @@ init()
<p>Install progress bar actually reflects reality now. It previously stayed at 0% until the very end because podman doesn't emit parseable progress when run without a TTY. Replaced byte-counting with seven clearly-labelled phases — Preparing, Pulling image, Creating container, Starting, Waiting for health, Finalizing, Done — each mapped to a fixed percentage so the bar only moves forward.</p>
<p>Launch button now appears the moment an install finishes, instead of waiting up to 60 seconds for the next container scan. After a successful install or update, the backend kicks the scanner and waits for a fresh manifest to land before flipping the app to Running, so the UI always has real port and UI-route info by the time the card becomes clickable.</p>
<p>Retired the decommissioned .23 Hetzner VPS mirror. New nodes default to OVH (146.59.87.168) as Server 1 and tx1138 as Server 2 for both system updates and the app registry. Existing nodes auto-purge any saved .23 entries on next load so they stop paying connection-timeout penalties against a dead host.</p>
<p>Update-available badges and version comparisons work again across every app. The backend was looking for its pinned-image catalog at the wrong path and silently getting an empty result on deployed nodes, which meant the UI never showed "update available" even when a newer image was ready. The search path now matches where the image recipe actually installs the file.</p>
</div>
</div>
<!-- v1.7.42-alpha -->