Repository navigation
v1.3.0 follow-up: a failed first activation leaves no sub.html behind - #7
Conversation
Raised in the second review of PR #6: when there was no sub.html before and the PasarGuard/Rebecca refresh failed, rt_activate restored nothing and left the new file behind. It now removes it, so the previous state -- including "no page yet" -- is exactly what remains. The test covers both cases. CHANGELOG: a scripted fresh install on a server with more than one supported panel now needs RT_PANEL (1.2 installed for 3X-UI there, as the only panel it supported). Re-runs and updates keep the install's own panel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
Cleans up after a failed first activation: when rt_activate finds no existing sub.html and the panel refresh fails, it now removes the staged page instead of leaving a sub.html newer than what the panel serves. Requires RT_PANEL=3xui|pasarguard|rebecca for scripted fresh installs on servers with more than one supported panel rather than guessing; interactive installs prompt, and re-runs or row-template update keep the existing install's panel.
No blocking issues surfaced. 1 lower-confidence candidate did not survive cross-model review.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 226 functions depend on the 226 functions this change touches.
Health — this change adds coupling hotspots:
- new:
rt_repair_template_store()— 4 callers, 10 callees - new:
rt_complete_install()— 4 callers, 9 callees - new:
rt_activate()— 7 callers, 4 callees - new:
rt_restore_from_backup()— 3 callers, 9 callees - new:
rt_set_dist()— 5 callers, 5 callees - new:
rt_render_report()— 6 callers, 4 callees - new:
rt_backup_snapshot_check()— 3 callers, 7 callees - new:
rt_apply_branding()— 4 callers, 5 callees - …and 20 more — each is listed as a finding
Verification — 226 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 226 function(s) in the blast radius were not formally verified this run
· 28 more finding(s) on lines outside this diff (see the check run).
Follow-up to #6, which was merged at
ea71ca2just before2131bccwas pushed. This PR carries only that commit and the CHANGELOG line that documents it.Changes
2131bccfix(activate): a failed first activation leaves no sub.html behind.ea71ca2madert_activateput the previoussub.htmlback when the PasarGuard/Rebecca refresh fails. When there was nosub.htmlbefore, it left the new one behind; now it removes it. The regression test intests/installer-panel-rebecca.test.mjscovers both cases and fails without the fix. The commit also adds a CHANGELOG "Changed" note: a scripted fresh install on a server with more than one supported panel needsRT_PANEL.fda15c8docs(changelog): the matching "Fixed" bullet now covers the first-activation case.3 files:
installer/lib/row-template.sh,tests/installer-panel-rebecca.test.mjs,CHANGELOG.md.Validation on
fda15c8(clean Linux clone)npm test: 761/761 passed, 0 skipped.npm run verify: all checks passed.npm run lint:sh: all 12 scripts clean.npm run build:panels: 51 shells.row-template-1.3.0.tar.gzsha25648bc29fde7ddf0207d1cf035a916d948ca6137ba2a3cb6d69cd21c9c6adaf5ca. This matches2131bcc; the CHANGELOG isn't in the release package.Not tagged, not released.
🤖 Generated with Claude Code