9.0 KiB
9.0 KiB
Code Status Update
Last Updated: 2026-04-16 (post-launch day-two session)
Environment
Local Nitro (Windows 11) at C:\Users\mkrau\firefrost-services. Git remote: Gitea. Identity: Claude Code <claude@firefrostgaming.com>.
Current Focus
Bridge queue empty. Five features shipped tonight, all pending deploy by Michael.
Session 2026-04-16
Shipped
-
Task #101 — Modpack Installer (
bca31bf, +1233 lines, 20 files)- Migrations 143 (server_config modpack columns) + 144 (install_history table)
- Provider APIs: CurseForge (full), Modrinth (full), FTB/ATLauncher/Technic/VoidsWrath (stubs)
- pg-boss
modpack-installsqueue (concurrency 2), 11-step worker pipeline - Trinity Console:
/admin/modpack-installer(3-step flow: provider → search → configure+install), status page (3s poll), history, Holly's pending-spawns queue - Deploy:
npm install(pg-boss) + run migrations 143+144 + addCURSEFORGE_API_KEYto .env + restart
-
Discord Action Log — Issue #1 (
49f8f79, +263 lines)- Migration 142:
discord_action_logtable discordActionLog.jsservice (silent-fail logAction)- Instrumented: reactionRoles.js (add/remove), events.js (wanderer + welcome DM), stripe.js (link reminder DM)
- Trinity Console:
/admin/discord-log(recent 100, filter by type/user) - Deploy: run migration 142 + restart
- Migration 142:
-
Task #138 — Wiki.js Subscriber Sync (
328e9ba, +199 lines)wikijsSync.js: GraphQL client for subscribers.firefrostgaming.com- Hooked into 4 Stripe paths: checkout → syncWikiUser, subscription.deleted/chargeback/refund → demoteToAwakened
- Deploy PRE-REQ: Michael creates 6 Wiki.js groups + generates API key first, then add
WIKIJS_API_KEYto .env + restart
Session 2026-04-15 (launch night)
Shipped
- REQ-2026-04-15-reaction-roles (
f4f96df) — 3 #get-roles messages (20 emoji→role mappings), Wanderer auto-assign + welcome DM on guildMemberAdd, link-reminder DM after Stripe checkout. Added GuildMessageReactions + DirectMessages intents + Partials. - REQ-2026-04-15-bitch-bot (
e655286) — full NeoForge 1.21.1 source scaffold (7 Java files). NOT compiled — compile on Dev Panel:cd services/bitch-bot/1.21.1 && source use-java 21 && /opt/gradle-8.8/bin/gradle build --no-daemon
Session Summary (2026-04-14 Evening)
Rules Mod 1.18.2 Builds — DONE ✅
- Ported both Firefrost Rules and Discord Rules to Forge 1.18.2-40.2.4
- API changes: TextComponent, sendMessage(comp, Util.NIL_UUID), getPlayer()
- ForgeGradle 6.0 + Gradle 8.8 + Java 17
- Jars:
firefrostrules-1.0.5-1.18.2-forge.jar,discord-rules-1.0.5-1.18.2-forge.jar - Both mods now have 4 versions each: 1.16.5, 1.18.2, 1.20.1, 1.21.1
Version UI in Server Matrix — DONE ✅
- Added installed version display to both TX1 and NC1 card loops in
_matrix_body.ejs - Uses
<% var %>assignment pattern to avoid single-quote EJS breakage - Edit button, save/cancel, version history viewer via HTMX
- EJS validates clean
PWA Phase 1 — DONE ✅
manifest.json— standalone app config, cyan theme, app IDsw.js— conservative static-only caching, never caches admin routes- Placeholder icons (cyan T, 192 + 512) in
src/public/images/ express.staticmiddleware added tosrc/index.js- PWA meta tags + Apple mobile web app + service worker registration in
layout.ejs
Task Module — 7 Features — DONE ✅
- Slide-out detail panel (click task title → full info overlay from right)
- Client-side sorting (number, priority, status, updated) persists in localStorage
- Toggleable filter chips (status + priority, multi-select)
- Saved filter presets (Launch Fires, Code Queue, Post-Launch, All Open)
- Kanban board view (4 columns, toggle persists in localStorage)
- Session summary badge ("X tasks completed today")
- Code queue badge in sidebar nav (cyan count from tasks tagged 'code')
- Route updated: added completedToday query, allTasks for kanban
- Admin middleware: code queue count query for sidebar badge
Earlier Session (2026-04-14)
Server Command Center — CODE COMPLETE ✅
- Full Arbiter feature build (migrations, services, routes, views)
- Pending deploy by Michael (see previous ACTIVE_CONTEXT for deploy steps)
Previous Session (2026-04-13)
Task #69: Discord Rules CurseForge Fork — DONE ✅
- All builds at v1.0.5 (now 4 firefrostrules + 4 discordrules)
- CurseForge project page copy pending from Chronicler
Rules Mod Config Bug — FIXED ✅
- v1.0.5 WORKING on Otherworld
Session 2026-04-15 (local Nitro)
Shipped
-
Task #166 — Trinity Console Issue Tracker (
b0b69fb, +916 lines)- Migration 141:
issues,issue_attachments,issue_commentstables + indexes src/routes/admin/issues.js— session-auth UI routes (list/new/detail/status/assign/comments/upload/attachment-serve)src/routes/api.js—/api/internal/issues*bearer-token REST surface for n8nsrc/services/issueNotifier.js— Discord webhook dispatcher (DISCORD_ISSUE_WEBHOOK_URL), silent-fail- Views:
index.ejs(list+filters+stats),new.ejs(mobile-first,accept="image/*"for phone camera roll),detail.ejs(screenshots w/ lightbox, workflow controls, comments) layout.ejssidebar nav linkpackage.jsonaddsmulter ^1.4.5-lts.1- CSRF token passed via query string on multipart forms (csurf runs before multer parses body)
- Screenshots stored at
services/arbiter-3.0/uploads/issues/, 10 MB/file × 6 max, image MIME filter, path-traversal guard - All 4 EJS files validated via
ejs.compile(), all JSnode --checkclean - Deploy:
cd /opt/arbiter-3.0 && git pull && npm install && mkdir -p uploads/issues && psql -U arbiter -h 127.0.0.1 -d arbiter_db -f migrations/141_issues.sql && pm2 restart arbiter-3. Optional:DISCORD_ISSUE_WEBHOOK_URLin.env.
- Migration 141:
-
Task #163 — Task Description Hygiene Backfill (
263a7e3)scripts/backfill-task-descriptions.js— reads ops manual archive, strips YAML frontmatter, emitsUPDATE tasksSQL with$body$…$body$dollar quoting- Guard:
AND (description IS NULL OR description = '')— safe to re-run - Output:
scripts/out/backfill-task-descriptions.sql(575 lines),.mdreport - Matched 6/15 from archive: #99, #100, #104, #105, #106, #113
- Missing 9 (no archive file, need manual copy): #22 Netdata, #23 Department Structure, #32 Terraria Branding, #48 n8n Rebuild, #49 NotebookLM, #51 Ignis Protocol, #81 Memorial Writing Assistant, #89 DERP Protocol Review, #97 Trinity Console Social Hub
- Apply:
psql -U arbiter -h 127.0.0.1 -d arbiter_db -f scripts/out/backfill-task-descriptions.sql - Note: REQ header claimed 16 tasks but table lists 15 — worked from the table
Archived (no-op verifications)
- REQ/RES-2026-04-14-server-command-center — verified code-complete in
d16a525(full build) anda193523(subdomain + Cloudflare provisioning per RES-2026-04-14-subdomain-seed-data). Migration 139, seed JS,uptimeKuma.js,pterodactyl.js,/provision-subdomainroute all present. Pending Michael's deploy on dev panel. - REQ-2026-04-14-code-queue-badge-fix — verified already implemented in
166e4c8("Task module: 7 UX features"). Middleware inadmin/index.jslines 31–42, badge span inlayout.ejslines 105–110. Archived as no-op. If badge still not showing after deploy, check whether any open/in_progress tasks actually have'code'in theirtagsarray — badge correctly hides at count 0.
Pending Bridge Requests
Deferred (post-launch, not urgent)
- REQ-2026-04-12-phase11e-gitbook-scope — GitBook integration scope for ModpackChecker. Explicitly held per Michael.
Previously Completed (can be archived on next pass)
- REQ-2026-04-14-version-ui-matrix ✅
- REQ-2026-04-14-pwa-phase1 ✅
- REQ-2026-04-14-task-module-improvements ✅
- REQ-2026-04-14-rules-mod-1182 ✅
Previously Completed (can be archived)
- REQ-2026-04-12-discord-rules-fork — ✅ Done
- REQ-2026-04-12-phase11-prerequisites — ✅ Done
- REQ-2026-04-12-phase11a-deploy — ✅ Done
- REQ-2026-04-12-phase11bc-deploy — ✅ Done
- REQ-2026-04-12-phase11d-badge-debug — ✅ Done
- REQ-2026-04-12-phase11d-badge-decision — ✅ Done
- REQ-2026-04-12-phase11d-deploy — ✅ Done
- REQ-2026-04-13-arbiter-discord-roles — ✅ Done
- REQ-2026-04-13-missing-modpack-installations-migration — ✅ Done
- REQ-2026-04-13-rules-mod-config-fix-versioning — ✅ Done
- REQ-2026-04-13-rules-mod-config-not-read-at-runtime — ✅ Done
- REQ-2026-04-13-rules-still-returning-defaults — ✅ Done
- REQ-2026-04-13-status-route-mismatch — ✅ Done
- REQ-2026-04-13-v110-consolidated-deploy — ✅ Done
Standing Items
- ModpackChecker v1.1.0 deploy blocked on CurseForge API rate limit
- CurseForge Discord Rules project page pending Chronicler copy
- Build router at
/opt/mod-builds/ffg-build.sh
Discipline Notes
- CHANGELOG.md updated with every version bump
- ACTIVE_CONTEXT.md updated at end of each work session
- EJS validated before every commit