eee2c85321
Adds the CAMPAIGN 7 audit doc (53/53 apps deployed and validated on the demo box
through the real controller endpoints; 45 pass, 13 template fixes, ranked
findings) and the uninstall-semantics map row it proves out: remove requires stop
first, named docker volumes are ALWAYS destroyed including the DB, HDD data and
backups survive unless explicitly ticked, and the per-app offsite toggle outlives
the app while tier-2 config is cleared.
ROADMAP +3:
R-40 the update path cannot express a multi-hop major upgrade (nextcloud
forbids skipping majors; the template moved 31 -> 34)
R-41 no standing 'does every template still deploy?' check -- the sweep was
the first thing to try, and found 5 apps that had NEVER been deployable
R-42 ruling needed on DB/cache sidecar majors (deliberately not bumped)
CLAUDE.md: REPORT.md is overwritten, so a second concurrent session in this repo
writes REPORT-<topic>.md instead -- applied to this run's own report.
Campaign 7 catalog sweep.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nn3VgQk9iwEGgyx6QJ2NvE
2.8 KiB
2.8 KiB
REPORT — CAMPAIGN 7 (felhom.eu side: docs only)
Written as
REPORT-campaign7.md, not the sharedREPORT.md, per the convention this run added toCLAUDE.md:REPORT.mdis overwritten, so a second concurrent session in this repo would clobber it. This session's implementation work was inapp-catalog-felhom.eu; here it only touched documentation.
Run: 2026-07-18 evening → 2026-07-19 morning. Class: campaign (record-and-rank + a defined
allowed-fix set). Implementation repo: app-catalog-felhom.eu (see its REPORT.md).
What changed in this repo
| file | change |
|---|---|
documentation/audits/CAMPAIGN-7-catalog-sweep-2026-07-19.md |
new — method, uninstall-semantics map, trio detail, full 53-app matrix, ranked findings, coverage |
documentation/backlog/ROADMAP.md |
+3 items — R-40 (multi-hop major upgrade path), R-41 (no standing catalog deployability check), R-42 (sidecar-major ruling) |
CLAUDE.md |
REPORT.md parallel-session rule: the second session writes REPORT-<topic>.md |
No hub/agent/scripts/website code was touched (campaign scope: catalog + docs).
Headline for this repo's readers
- Uninstall semantics map row PARTIAL → PROVEN (campaign doc §2), with live evidence from all
three trio apps: remove requires stop first; named docker volumes are always destroyed
(including the app's database); HDD bind-mount data and
backups/primary/<app>survive unless explicitly ticked; images are kept;app.yamlgoes, the template stays; the per-app offsite toggle survives the uninstall while tier-2 config is cleared. The confirmation modal does warn about the volumes, so there is no consent gap. - A lying healthcheck takes an app OFF-LINE, it does not merely mislead. Traefik will not route
to an
unhealthycontainer, so a probe that cannot execute → permanent unhealthy → 404 to the customer while the app serves 200 on its own port. 7 of 53 apps were in that state. - The pre-flight gate's own signal is missing: the 0.145.0 → 0.146.0 floor-lift emitted no
controller_updatedevent, though the identical bootstrap path emitted one for 0.143.0 → 0.145.0 two hours earlier (§0, finding F1). The box did converge — golden, floor and runtime all agreed — but the event trail under-reports version transitions.
Open items owned outside this repo
- plant-it / wanderer — images do not resolve at all (neither the new tag nor the one the catalog already ships). Upstream research needed; recorded as findings, not deletions.
- gokapi — pinned back to v1.9.6; v2 needs the seeded
config.jsonregenerated. Security- relevant, should not sit on a superseded line indefinitely. - glance — never had a seeded
glance.yml; proven pre-existing.