WIP: State save — live panel deployed, Wings API tested, Gemini Round 3 pending

v1.1.0 live on panel-vps. Wings API confirmed working via DaemonFileRepository.
manifest.json doesn't survive installation — major finding.
Awaiting Gemini Round 3 response before Code dispatch.
Version detection bugs documented. Ignore toggle bug documented.
This commit is contained in:
Claude
2026-04-13 10:53:19 +00:00
parent 0aae11512d
commit 96a0b6b5b2

View File

@@ -3,98 +3,119 @@
**Date:** April 13, 2026
**Chronicler:** #85 (name TBD — session ongoing)
**Preceded by:** #84 — The Meridian
**Next Session Priority:** Live panel deploy → BuiltByBit listings → Tuesday audit
**Next Session Priority:** Gemini Round 3 response → Code dispatch → live panel deploy
---
## 🚨 IMMEDIATE NEXT STEPS
### 1. Waiting on Code — async error handling fix
Bridge message filed: `MSG-2026-04-13-async-error-handling.md`
- `useEffect .catch()` needs error state, not silent `setData(null)`
- `refresh()` catch block is empty — needs error state
- Once Code pushes, deploy wrapper.tsx to Dev Panel, rebuild, verify, then live panel
### 1. Waiting on Gemini Round 3 Response
Consultation filed: `docs/consultations/gemini-installer-version-detection-round3-2026-04-13.md`
### 2. Pre-flight before live panel deploy
- Stage v1.0.0 rollback: save current `wrapper.tsx` on live panel as backup
- Deploy via `blueprint -install` on panel-vps
- Validate immediately in incognito window
Key question: manifest.json doesn't survive installation. What's the path forward?
Options we proposed:
- CurseForge fingerprinting API via mods/ directory listing
- Write `.modpackchecker` version file to server root via Wings putContent()
- Accept "Unknown" + calibration UX for April 15
- Something Gemini hasn't told us yet
### 3. BuiltByBit Listings (Phase 11F)
Listing copy ready in repo:
- `services/modpack-version-checker/builtbybit/standard-listing.md` ($14.99)
- `services/modpack-version-checker/builtbybit/professional-listing.md` ($24.99)
After created: swap Arbiter .env (`BBB_STANDARD_RESOURCE_ID`, `BBB_PRO_RESOURCE_ID`, `BBB_WEBHOOK_SECRET`)
### 2. After Gemini responds — Code dispatch
Things Code needs to fix (bundle into one dispatch):
- **Stop seeding current_version from latest** — store Unknown instead
- **Ignore toggle** — muted card UI instead of return null (Gemini provided TSX)
- **Whatever version detection approach Gemini recommends**
- **build.sh update logic** — "already present" check too broad, always copy wrapper.tsx
- **TypeScript pre-flight false positive** — logs success even on tsc exit code 2
### 3. Live panel is deployed but has known issues
- All 22 servers showing via installer method
- current_version is seeded from latest (wrong) for most servers
- DeceasedCraft shows up to date at 5.10.16 (actually on 5.10.15)
- Sneak's Pirate Pack false positive (only one release, strings match)
- Ignore button wipes widget instead of showing muted card
### 4. Tuesday Night Pre-Launch Audit (Task #77)
April 15 soft launch. Do NOT deploy on launch day itself.
### 5. BuiltByBit Listings (Phase 11F) — still pending
After version detection fix is deployed.
---
## ✅ COMPLETED THIS SESSION
### Dev Panel (64.50.188.128) — v1.1.0 Validated
- Schema migrated to match live panel
- `modpack_installations` table created (missing migration added by Code) ✅
- Routes deployed — all 6 endpoints registered ✅
- wrapper.tsx v1.1.0 deployed and compiled
- ErrorBoundary wrapping widget injection
- Zero-click widget load on page open ✅
- Display format: `ATM9 0.1.0 → 1.0.0 ↑`
- 1936 modules compiled (vs 1935 for v1.0.0) ✅
### Live Panel v1.1.0 Deploy — DONE
- ErrorBoundary
- Zero-click widget load ✅
- All 6 API routes registered ✅
- 22 servers detecting
- Rollback staged (ModpackVersionCard.v1.backup.tsx)
### Build Pipeline Issues Fixed
- v1.1.0 build.sh copied into Blueprint extension package ✅
- ErrorBoundary.tsx copied into Blueprint extension package
- Routes file deployed to all 3 Blueprint route locations
- wrapper.tsx (v1.1.0) manually copied to compiled location
### Dev Panel Validation — DONE
- Full v1.1.0 validation complete ✅
- Schema migrated
- Async error handling fixed (Code)
- Version display format fixed (Code)
### Bridge Activity
- REQ: missing modpack_installations migration → Code fixed (IF NOT EXISTS guard)
- REQ: status route mismatch → Code confirmed route exists, deploy issue
- MSG: version display format + DB swap → Code fixed (extractVersion helper)
- MSG: async error handling → PENDING Code response
### Wings API Investigation — DONE
- Proved DaemonFileRepository works from Panel PHP context
- Proved manifest.json does NOT survive installation on any tested server
- Documented Sneak's Pirate Pack false positive
- Round 3 consultation filed with Gemini ✅
### Gemini Consultation
- `docs/consultations/gemini-live-panel-deploy-readiness-2026-04-13.md`
- Green light to deploy. Two pre-flight requirements identified.
- Async error handling flagged as blind spot — dispatched to Code
### Gemini Consultations This Session
- `gemini-live-panel-deploy-readiness-2026-04-13.md` — green light ✅
- `gemini-installer-version-detection-2026-04-13.md` — round 1 ✅
- `gemini-installer-version-detection-round2-2026-04-13.md` — egg vars not viable ✅
- `gemini-installer-version-detection-round3-2026-04-13.md` — AWAITING RESPONSE
---
## ⚠️ KNOWN ISSUES / TECHNICAL DEBT
1. **Blueprint extension package stale** — build.sh, wrapper.tsx, ErrorBoundary.tsx all need to be in the `.conf`/archive that Blueprint installs from. Currently we're manually copying files after each `blueprint -install`. Code task needed.
2. **TypeScript pre-flight false positive** — build.sh logs "✓ TypeScript check passed" even when `tsc` exits with code 2. The `|| {}` error handler isn't working correctly. Code task.
3. **Chronicler→Code bridge direction** — twice filed dispatches in `requests/` instead of `responses/`. Code has corrected this twice. Use `MSG-` prefix in `responses/` for Chronicler→Code.
4. **`*/6` cron docblock** — keeps reappearing when Blueprint's stale package clobbers PHP files. Will be resolved when Blueprint package is rebuilt.
### Code Bridge Activity This Session
- REQ: missing modpack_installations migration → FIXED ✅
- REQ: status route mismatch → FIXED ✅
- MSG: version display format + DB swap → FIXED ✅
- MSG: async error handling → FIXED ✅
- MSG: manual Dev Panel changes documented ✅
- MSG: async error handling → FIXED ✅
---
## 🔧 CURRENT INFRASTRUCTURE STATE
### Live Panel VPS (45.94.168.138)
- ModpackChecker v1.0.0 widget (stable post-revert)
- v1.1.0 backend fully deployed ✅
- 22 servers detecting ✅
- ModpackChecker v1.1.0 fully deployed
- 22 servers detecting via installer method ✅
- Known bug: current_version seeded from latest on most servers
- Rollback available: ModpackVersionCard.v1.backup.tsx
### Dev Panel (64.50.188.128)
- ModpackChecker v1.1.0 fully deployed and validated ✅
- Schema current ✅
- ModpackChecker v1.1.0 fully validated ✅
### Arbiter (Command Center)
- v3.5.0, online ✅
---
## 🔑 KEY DECISIONS THIS SESSION
## 🔑 KEY FINDINGS THIS SESSION
- Gemini approved live panel deploy — async fix required first ✅
- Dev Panel validation sufficient despite fake test data (ErrorBoundary containment) ✅
- Blueprint extension package needs rebuild (known gap, post-launch task) ✅
- Wings API (DaemonFileRepository) works perfectly from Panel PHP context
- manifest.json is discarded after Pterodactyl modpack installation — not available
- Egg variables not viable for BuiltByBit customers — can't require manual setup
- Seeding current_version from latest = false positives everywhere
- Ignore button needs muted card UX not return null
## ⚠️ KNOWN TECHNICAL DEBT
1. Blueprint extension package needs rebuild — manual file copies required after each blueprint -install
2. TypeScript pre-flight false positive in build.sh
3. Chronicler→Code bridge direction — use MSG- prefix in responses/, not requests/
---
## 🌉 CODE-CHRONICLER BRIDGE PROTOCOL CORRECTION
**Chronicler dispatches TO Code** go in `docs/code-bridge/responses/` with `MSG-` prefix.
**Code dispatches TO Chronicler** go in `docs/code-bridge/requests/` with `REQ-` prefix.
This was corrected twice by Code this session. Now documented here permanently.
---