Restore wopr-support-plane.py patches + fix deploy URL #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/sp-restore-quirks-patches"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Re-applies all 5 quirks patches that keep getting reverted, repoints deploy URL from non-existent WOPR.git to wopr-installer. See commits for detail.
- Created new provision.html with punk rock CRT aesthetic - Scanlines, glow effects, terminal styling - Real-time SSE connection for progress updates - Module-by-module deployment progress bar - Completion and error states with proper styling - Added /provision/{job_id} and /setup/{job_id} routes - Updated CORS to allow provision.wopr.systems - Fixed get_provisioning_status to return not_found instead of fake job - Mounted /static for serving assets Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>- Add VPSProvisioner to bridge Stripe webhooks to Hetzner API - Generate cloud-init with bootstrap.json and orchestrator callback - Add /api/v1/webhooks/stripe endpoint for payment processing - Add /api/v1/provision/{job_id}/status for installer callbacks - Add /provision endpoint to handle Stripe success redirect This completes the one-click installer flow: 1. Stripe checkout → 2. Webhook → 3. Hetzner VPS → 4. Installer → 5. Callbacks Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>The daemon at /opt/wopr/support-plane/wopr-support-plane.py on homerig was reverted to pre-04-25 state (mtime Apr 23) — wiping out 5 documented patches from support_plane_quirks.md. False-positive DEFCON-2 spam returned (meme-engine "no activity" alerts every cooldown window). Re-applied patches in this commit: 1. grep -ci -> grep -ciE on meme-engine activity check (line 1869) basic-regex pipe was literal, always returned 0 matches 2. EMAIL_COOLDOWN_MINUTES 30 -> 120 (line 53) 3. ALERT_SUPPRESS_TARGETS list + _is_suppressed_target() helper covers 8600, easy-diffusion, comfyui, fooocus, wopr-ai-engine, meme-engine-homerig, meme-engine, wopr-meme-engine (lines 58-72) 4. tier2_backend_check issues.append wrapped with suppress check (line 1805) - prevents alerts not just remediation 5. Cooldown key normalization re.sub _\d+_issue_s_ -> _N_issue_s_ (line 854) - so cooldown matches across issue-count variants 6. Two meme-engine "backend_critical" issues.append blocks wrapped with _is_suppressed_target (lines 1895, 1904) Verified: scan complete, 0 false-positive issues, service active. Backups on homerig: .bak.1777989782, .bak.restore-1777990051, .bak.restore2-1777990113. Tracking source-of-truth here so deploys can pull from canonical. NOTE: scripts/modules/support_plane.sh fetches from vault.wopr.systems/wopr/WOPR/raw/branch/main/scripts/wopr-support-plane-universal.py which 404s (no WOPR.git on vault). Recommend repointing to wopr-installer or creating WOPR.git mirror. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>The fetch URL was hardcoded to vault.wopr.systems/wopr/WOPR/raw/... but no WOPR.git repo exists on vault — every install silently 404'd and fell back to either a non-existent build_dir path or the existing on-disk file. That silent failure is part of why the daemon kept getting reverted: nothing was actively deploying the patched version, so any time someone restored from a .bak the patches were gone for good. Changes: - Repoint fetch URLs to wopr/wopr-installer.git (raw/branch/main, with raw/branch/fix/sp-restore-quirks-patches as second-try fallback until the fix branch is merged). - Validate fetched body before writing (size + EMAIL_COOLDOWN_MINUTES sentinel) so we never overwrite a healthy file with a stub or HTML error page. - Update build_dir fallback to look for wopr-installer/ first, with the legacy WOPR/ path kept as a secondary fallback. - Strengthen the existing-file branch comment so it's clear: leave the on-disk file alone, do NOT clobber from a stale backup. Mirror both copies (scripts/modules/ and wopr-installer/scripts/modules/). Verified the deploy URL now returns 200 with all 5 patches present after fixing a stale Docker DNAT rule that was sending :3001 to a long-dead container (172.19.0.4 instead of 172.19.0.7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>Two more stale fetches were still pointing at the nonexistent WOPR.git: - knowledge-base JSON - autodiscovery engine .py Repointed both to wopr-installer with the same scheme as the daemon URL (vault HTTPS first, direct-IP HTTP fallback for when Caddy/DNS is broken): - support-plane/knowledge-base.json (verified 200 on main) - support-plane/wopr-sp-autodiscovery.py (file pushed to main in same operation; will be 200 after that commit lands) Build-dir fallbacks updated to match the new wopr-installer/support-plane/ layout, with the legacy WOPR/scripts/ path preserved as a secondary fallback so older build dirs still work. KB fallback also gained "if file already exists, leave alone" — prevents clobbering a working KB with a stub on transient fetch failure. Verified: 0 wopr/WOPR URLs remain in the file. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.