Files
firefrost-services/docs/code-bridge/status/ACTIVE_CONTEXT.md

9.0 KiB
Raw Blame History

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-installs queue (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 + add CURSEFORGE_API_KEY to .env + restart
  • Discord Action Log — Issue #1 (49f8f79, +263 lines)

    • Migration 142: discord_action_log table
    • discordActionLog.js service (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
  • 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_KEY to .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 ID
  • sw.js — conservative static-only caching, never caches admin routes
  • Placeholder icons (cyan T, 192 + 512) in src/public/images/
  • express.static middleware added to src/index.js
  • PWA meta tags + Apple mobile web app + service worker registration in layout.ejs

Task Module — 7 Features — DONE

  1. Slide-out detail panel (click task title → full info overlay from right)
  2. Client-side sorting (number, priority, status, updated) persists in localStorage
  3. Toggleable filter chips (status + priority, multi-select)
  4. Saved filter presets (Launch Fires, Code Queue, Post-Launch, All Open)
  5. Kanban board view (4 columns, toggle persists in localStorage)
  6. Session summary badge ("X tasks completed today")
  7. 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_comments tables + 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 n8n
    • src/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.ejs sidebar nav link
    • package.json adds multer ^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 JS node --check clean
    • 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_URL in .env.
  • Task #163 — Task Description Hygiene Backfill (263a7e3)

    • scripts/backfill-task-descriptions.js — reads ops manual archive, strips YAML frontmatter, emits UPDATE tasks SQL 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), .md report
    • 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) and a193523 (subdomain + Cloudflare provisioning per RES-2026-04-14-subdomain-seed-data). Migration 139, seed JS, uptimeKuma.js, pterodactyl.js, /provision-subdomain route 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 in admin/index.js lines 3142, badge span in layout.ejs lines 105110. Archived as no-op. If badge still not showing after deploy, check whether any open/in_progress tasks actually have 'code' in their tags array — 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)

  1. REQ-2026-04-12-discord-rules-fork — Done
  2. REQ-2026-04-12-phase11-prerequisites — Done
  3. REQ-2026-04-12-phase11a-deploy — Done
  4. REQ-2026-04-12-phase11bc-deploy — Done
  5. REQ-2026-04-12-phase11d-badge-debug — Done
  6. REQ-2026-04-12-phase11d-badge-decision — Done
  7. REQ-2026-04-12-phase11d-deploy — Done
  8. REQ-2026-04-13-arbiter-discord-roles — Done
  9. REQ-2026-04-13-missing-modpack-installations-migration — Done
  10. REQ-2026-04-13-rules-mod-config-fix-versioning — Done
  11. REQ-2026-04-13-rules-mod-config-not-read-at-runtime — Done
  12. REQ-2026-04-13-rules-still-returning-defaults — Done
  13. REQ-2026-04-13-status-route-mismatch — Done
  14. 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