docs: Update CHANGELOG.md (v1.0.4 entry) + ACTIVE_CONTEXT.md

CHANGELOG now includes diagnostic builds. ACTIVE_CONTEXT reflects
full session state for Chronicler pickup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude (Chronicler #83 - The Compiler)
2026-04-13 18:10:45 -05:00
parent f23f71ef04
commit b4fbfc6adf
2 changed files with 42 additions and 28 deletions

View File

@@ -1,40 +1,42 @@
# Code Status Update
**Last Updated:** 2026-04-13 00:30 CDT
**Last Updated:** 2026-04-13 18:10 CDT
## Current Focus
Phase 11 COMPLETE — all features verified on Dev Panel. Ready for live panel deploy.
Rules mod config bug — iterating fixes for Otherworld (NC1, 1.20.1 Forge).
## Session Summary (2026-04-12)
- Phase 11A: DEPLOYED ✅ — mvc_licenses + mvc_activations tables, 5 API routes
- Phase 11B/C: DEPLOYED ✅ — /verify-mvc Discord command + ModpackChecker Customer role
- Phase 11D: DEPLOYED ✅ — License UI, phone-home cron, tier gating, admin styling
- Phase 11F: BuiltByBit listing drafts ready in `builtbybit/`
- Dashboard badges: WORKING ✅ — Node detection + openssl-legacy-provider fixed CSS build
- All 6 verification checks passing on Dev Panel
- Fixes shipped: case sensitivity, layout/callout styling, CSS specificity, controller DI, build.sh PHP copies, admin auth for root users
## Session Summary (2026-04-13)
## v1.0.0 Feature Set
- License activation via BuiltByBit order ID
- Daily phone-home validation (7-day grace period)
- Tier gating: Standard vs Professional
- /verify-mvc Discord command + customer role
- Console version check widget
- Dashboard status badges (orange/green dots)
- Admin UI with proper Pterodactyl AdminLTE styling
- Node 17+ compatibility (openssl-legacy-provider)
### Task #69: Discord Rules CurseForge Fork — DONE ✅
- Forked `firefrostrules``discordrules` (generic, MIT license)
- Package: `com.firefrostgaming.rules``com.discordrules`
- Removed Fire/Frost/Arcane color detection → configurable `header_color`/`body_color`
- Emoji strip gated by `strip_emojis` config toggle
- All 3 versions compiled (1.21.1 NeoForge on NC1, 1.20.1 + 1.16.5 Forge locally)
- CurseForge project page copy pending from Chronicler
## Waiting On
- **Michael creates BuiltByBit listings** → provides resource IDs
- **Chronicler swaps .env placeholders** for real BBB resource IDs
- **Green light for live Panel VPS (45.94.168.138) deploy**
### Rules Mod Config Bug — IN PROGRESS 🔧
- v1.0.1: Added `ModConfigEvent.Loading` handler (symptom fix, not root cause)
- v1.0.2: Switched `ModConfig.Type.SERVER``COMMON` (config now persists across restarts ✅)
- v1.0.3: Fixed 1.20.1 event bus registration (config events were on wrong bus), added section header warnings to generated config
- v1.0.4: Diagnostic build (1.20.1 only) — INFO-level `[DIAG]` logs in RulesCommand + DiscordFetcher to trace where config-to-fetch pipeline breaks
- **Status:** Config loads correctly (Loading handler confirmed channel ID). `/rules` still returns defaults. Awaiting Chronicler's v1.0.4 diagnostic log output from Otherworld.
## Post-Launch Backlog
- Phase 11E: GitBook knowledge base docs
- Phase 11G: Business hours & support boundaries
- Task #69: CurseForge submission (Discord Rules jars ready)
### Bridge Queue — CLEAR ✅
- All REQs have matching RES files
- Bridge confirmed working both directions (push + pull)
- Chronicler was missing `git push` after writing bridge files — fixed
## ModpackChecker Status (from previous session)
- Phase 11 COMPLETE on Dev Panel
- v1.1.0 deploy blocked on CurseForge API rate limit (resets 2026-04-14)
- Waiting on Michael for BuiltByBit listings + resource IDs
## Build Router
- `ffg-build.sh` deployed at `/opt/mod-builds/ffg-build.sh`
- Usage: `ffg-build.sh 1.21.1` — auto-routes to NC1
- Routes 1.21.1 builds to NC1 (Vineflower RAM), others build locally
- SSH key: `/opt/mod-builds/ffg_build_rsa`
- NC1 user: `ffg-builder` — non-root, isolated
## Discipline Notes
- CHANGELOG.md updated with every version bump (including diagnostic builds)
- ACTIVE_CONTEXT.md updated at end of each work session