docs: Task #26 Phase 5 blocked by Blueprint corruption
Session summary: - Phase 3-4 complete and tested (Modrinth API working) - Phase 5 code written but cannot deploy - Blueprint developer mode broken after migration - All Phase 5 code is on Dev Panel, not yet in repo - Next session: fix Blueprint or fresh install Signed-off-by: Claude (Chronicler #62) <claude@firefrostgaming.com>
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Session Handoff — Next Chronicler
|
||||
|
||||
**Last Updated:** April 5, 2026 @ 9:15 PM CDT
|
||||
**Last Updated:** April 5, 2026 @ 9:30 PM CDT
|
||||
**Last Chronicler:** #62
|
||||
**Session Focus:** Task #26 ModpackChecker — Phase 3 Complete, Architecture Realigned
|
||||
**Session Focus:** Task #26 ModpackChecker — Phase 3-4 Complete, Phase 5 Blocked
|
||||
|
||||
---
|
||||
|
||||
@@ -13,122 +13,75 @@
|
||||
|
||||
---
|
||||
|
||||
## ✅ COMPLETED THIS SESSION
|
||||
## ⚠️ BLOCKER: Dev Panel Blueprint Corrupted
|
||||
|
||||
### Task #26 ModpackChecker — Phases 1-4 Infrastructure Complete
|
||||
The Dev Panel's Blueprint developer mode is broken. Cannot run `blueprint -build`.
|
||||
|
||||
**Working on Dev Panel (64.50.188.128):**
|
||||
- ✅ Admin settings panel (CurseForge API key storage)
|
||||
- ✅ React component renders on server console
|
||||
- ✅ API route calls Modrinth/CurseForge/FTB/Technic
|
||||
- ✅ Returns real data (tested: "Adrenaserver 1.7.0+1.21.1.fabric")
|
||||
- ✅ Manual "Check for Updates" button works
|
||||
**Symptoms:**
|
||||
- `blueprint -build` returns "Developer mode is not enabled"
|
||||
- `.blueprint/.developer` file exists with content "true"
|
||||
- Database has `blueprint::developer = true`
|
||||
- Still refuses to build
|
||||
|
||||
**Key technical wins:**
|
||||
- Blueprint `build.sh` + `sed` injection pattern mastered
|
||||
- Controller namespace case-sensitivity (Controllers not controllers)
|
||||
- PHP-FPM OPCache restart requirement documented
|
||||
- Pterodactyl model structure for egg variables understood
|
||||
**Likely cause:** Running `php artisan migrate` wiped some tables including the user table. May have corrupted Blueprint's internal state.
|
||||
|
||||
**Options for next session:**
|
||||
1. Ask Gemini how to fix Blueprint developer mode
|
||||
2. Reinstall Blueprint on Dev Panel
|
||||
3. Start fresh Dev Panel from scratch
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ CRITICAL ARCHITECTURE PIVOT
|
||||
## ✅ WHAT WE ACCOMPLISHED
|
||||
|
||||
**We built the wrong thing.**
|
||||
### Phase 3-4: Working End-to-End Pipeline
|
||||
- ✅ Admin settings panel (CurseForge API key storage)
|
||||
- ✅ React component on server console page
|
||||
- ✅ API calls to Modrinth/CurseForge/FTB/Technic working
|
||||
- ✅ Tested successfully: "🌿 Adrenaserver 1.7.0+1.21.1.fabric"
|
||||
|
||||
Michael's actual requirement (confirmed this session):
|
||||
> "When I log into the main page and see the overview, I want to know RIGHT THERE if any pack needs an update."
|
||||
### Phase 5: Dashboard Badge (Code Written, Not Deployed)
|
||||
|
||||
**What we built:** Button inside each server's console page (defeats the purpose)
|
||||
All code is written and ready, just can't build due to Blueprint issue:
|
||||
|
||||
**What we need:** Badge/indicator on the SERVER LIST dashboard view
|
||||
|
||||
### Gemini's Guidance (April 5, 2026)
|
||||
|
||||
**YES, Blueprint can inject into the server list.** Same `sed` trick, different target:
|
||||
|
||||
| Current | Target |
|
||||
|---------|--------|
|
||||
| `ServerConsoleContainer.tsx` | `ServerRow.tsx` |
|
||||
| Inside server view | Dashboard server list |
|
||||
|
||||
**CRITICAL WARNING — The "Dumb Badge" Rule:**
|
||||
|
||||
The dashboard badge must NEVER call external APIs directly. If it did:
|
||||
- 11 servers = 11 simultaneous API calls on every page load
|
||||
- Rate limits hit instantly
|
||||
- APIs block your IP
|
||||
- Dashboard lags out
|
||||
|
||||
**Correct Architecture:**
|
||||
**Files created on Dev Panel:**
|
||||
- `/var/www/pterodactyl/.blueprint/dev/views/dashboard/UpdateBadge.tsx` — Dashboard badge component
|
||||
- `/var/www/pterodactyl/.blueprint/dev/build.sh` — Updated to inject into ServerRow.tsx
|
||||
- `/var/www/pterodactyl/.blueprint/dev/console/CheckModpackUpdates.php` — Cron command
|
||||
- `/var/www/pterodactyl/app/Console/Commands/CheckModpackUpdates.php` — Copied to app
|
||||
- Updated migration with `server_id`, `update_available` columns
|
||||
- Added `getStatus()` method to controller
|
||||
- Added `/status` route
|
||||
|
||||
**Architecture (confirmed by Gemini):**
|
||||
```
|
||||
CRON JOB (background)
|
||||
│ php artisan modpackchecker:check
|
||||
│ Checks APIs one by one with delays
|
||||
│ Stores results in database
|
||||
▼
|
||||
DATABASE (modpackchecker_servers table)
|
||||
│ Cached: server_id, current_version, latest_version,
|
||||
│ update_available (boolean), last_checked
|
||||
│ server_id, server_uuid, platform, modpack_name
|
||||
│ current_version, latest_version, update_available
|
||||
▼
|
||||
/api/client/ext/modpackchecker/status
|
||||
/api/client/extensions/modpackchecker/status
|
||||
│ One fast database query
|
||||
│ Returns: {server_uuid: {update_available: true/false}}
|
||||
▼
|
||||
UpdateBadge.tsx (injected into ServerRow.tsx)
|
||||
│ Reads from local endpoint only
|
||||
│ Shows 🟢 (up to date) or 🟠 (update available)
|
||||
▼
|
||||
DASHBOARD — Instant visibility without clicking into servers
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 NEXT SESSION: Complete the Feature
|
||||
## 📁 CODE IN REPO (firefrost-services)
|
||||
|
||||
### Phase 5A: Background Cron Job
|
||||
1. Create Laravel console command for version checking
|
||||
2. Register in `app/Console/Kernel.php`
|
||||
3. Add rate limiting (sleep between API calls)
|
||||
4. Store results in `modpackchecker_servers` table
|
||||
Commit `1eda889` has Phase 3-4 code. Phase 5 code is NOT yet committed (it's on the Dev Panel only).
|
||||
|
||||
### Phase 5B: Status Endpoint
|
||||
1. Create `/api/client/ext/modpackchecker/status` route
|
||||
2. Returns cached update status for all user's servers
|
||||
3. Single fast database query
|
||||
|
||||
### Phase 5C: Dashboard Badge
|
||||
1. Create `UpdateBadge.tsx` component
|
||||
2. Update `build.sh` to inject into `ServerRow.tsx`
|
||||
3. Badge calls status endpoint ONCE on dashboard load
|
||||
4. Display 🟢/🟠 indicator per server
|
||||
|
||||
### Phase 5D: Current Version Detection
|
||||
1. Read from manifest.json / modrinth.index.json
|
||||
2. Or: MODPACK_CURRENT_VERSION egg variable
|
||||
3. Compare against API's latest version
|
||||
|
||||
---
|
||||
|
||||
## 📁 FILES IN REPO
|
||||
|
||||
**firefrost-services** (commit `1eda889`):
|
||||
```
|
||||
services/modpack-version-checker/blueprint-extension/
|
||||
├── conf.yml
|
||||
├── build.sh # sed injection script
|
||||
├── admin/
|
||||
│ ├── controller.php
|
||||
│ └── view.blade.php
|
||||
├── Controllers/
|
||||
│ └── ModpackAPIController.php # Capital C!
|
||||
├── routes/
|
||||
│ └── client.php
|
||||
├── views/server/
|
||||
│ └── wrapper.tsx # Console component (Standard tier)
|
||||
└── database/migrations/
|
||||
└── 2026_04_06_create_modpackchecker_servers_table.php
|
||||
```
|
||||
**To preserve Phase 5 work, next session should:**
|
||||
1. Copy files from Dev Panel to repo before any reinstall
|
||||
2. Or fix Blueprint and complete the build
|
||||
|
||||
---
|
||||
|
||||
@@ -138,29 +91,25 @@ services/modpack-version-checker/blueprint-extension/
|
||||
|------|-------|
|
||||
| URL | http://64.50.188.128 |
|
||||
| Admin | frostystyle / FFG-Dev-2026! |
|
||||
| Test Server UUID | c0a133db-6cb7-497d-a2ed-22ae66eb0de8 |
|
||||
| Blueprint | beta-2026-01 |
|
||||
| Modpack vars added | MODPACK_PLATFORM, MODPACK_ID (egg_id 4) |
|
||||
| Test config | modrinth / adrenaserver |
|
||||
|
||||
**To rebuild after changes:**
|
||||
```bash
|
||||
cd /var/www/pterodactyl
|
||||
export NODE_OPTIONS=--openssl-legacy-provider
|
||||
blueprint -build
|
||||
composer dump-autoload
|
||||
php artisan optimize:clear
|
||||
yarn build:production
|
||||
systemctl restart php8.3-fpm
|
||||
```
|
||||
| Status | User recreated, Blueprint broken |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 THE REAL DELIVERABLE
|
||||
## 📋 NEXT SESSION PRIORITIES
|
||||
|
||||
**User logs into Pterodactyl → Sees server list → Instantly knows which modpacks need updates**
|
||||
1. **Fix or reinstall Blueprint** on Dev Panel
|
||||
2. **Complete Phase 5 build:**
|
||||
- `blueprint -build`
|
||||
- `yarn build:production`
|
||||
- Test dashboard badge
|
||||
3. **Run cron command:** `php artisan modpackchecker:check`
|
||||
4. **Verify:** Log in, see badge on server list
|
||||
|
||||
No clicking. No buttons. Passive monitoring. RV-ready.
|
||||
---
|
||||
|
||||
## 💡 GEMINI QUESTION FOR NEXT SESSION
|
||||
|
||||
"Blueprint developer mode won't enable. The `.blueprint/.developer` file exists with 'true', database has `blueprint::developer = true`, but `blueprint -build` says 'Developer mode is not enabled.' How do I fix this, or do I need to reinstall Blueprint?"
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user