Resolve current forwarding-rule owner names by user ID. Add administrator-managed persistent user and speed-limit ordering, backup compatibility, and conflict recovery. Repair PostgreSQL explicit-ID import sequences transactionally.
Closes#574Closes#575
Persist upgrade jobs and progress across backend restarts; preserve Compose identity and database mounts, isolate backups, and fail safely on uncertain recreation. Add frontend recovery handling and lifecycle/permission regressions.
* fix(relay): authenticate endpoints and fail closed on missing routes
* fix(tunnel): retain chains until receiver replacement is acknowledged
* docs: record final relay security review and validation
Revoke tunnel grants and pause each forwarding entry without self-healing missing services. Continue healthy nodes and other forwards after failures, aggregate pending nodes for retry, and show persistent partial-disable feedback.
Related: #562
In list view, the per-node upgrade button set upgradeTargetNodeId and then
called openUpgradeModal("single") without an id, which resets the target to
null. handleConfirmUpgrade then matched neither branch, so "确认升级" sent no
request and the modal stayed open. Pass node.id the same way grid view does.
Co-authored-by: Sebastian Luo <sebastianluo@Sebastians-MacBook-Pro.local>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Add WebAuthn passkey enrollment and login for issue #536, with trusted origin configuration, user verification, single-use challenges, and documented deployment and recovery behavior.
Fix panel update deployment discovery and rollback safety, add nftables compatibility and atomic replacement, and restore reproducible frontend CI installs.
Reset only the selected forwarding rule's displayed upload/download usage without affecting user totals, tunnel quotas, historical statistics, nftables baselines, or running services.
Closes#523
- Add --force-recreate --remove-orphans to docker compose up so helper
actually replaces running containers with newly pulled images
- Add upgrade.log file for post-mortem debugging when helper fails
- Add pre-flight validation for docker-compose.yml and .env
- Fix "立即升级" button permanently disabled by relaxing the disabled
condition so auto-check on click can fire