16 tasks have empty descriptions in DB but full specs exist in archived
markdown files. Code needs to backfill from docs/archive/tasks-index-archived/.
Chronicler #89
Mobile-first issue tracker for Holly. Screenshot upload from phone,
minimal friction submission while in-game. Full schema, API routes,
and UI spec for Code.
Chronicler #89
When mcp-server restarts, activeSessions is cleared but Claude.ai may
still hold the old session ID. Previously this fell to a generic 400 error.
Now returns 404 with clear re-initialize message so clients know to
create a fresh session.
Chronicler #89
Claude.ai upgraded to MCP protocol 2025-11-25 (Streamable HTTP) but Trinity Core
only supported the deprecated 2024-11-05 (HTTP+SSE) transport. This caused the
SSE connection to drop after initialize — tools/list never completed.
Changes:
- Add StreamableHTTPServerTransport alongside existing SSEServerTransport
- app.all('/mcp') handler detects protocol via mcp-session-id header
- Legacy SSE still works via GET /mcp (backwards compatible)
- New Streamable HTTP works via POST /mcp with session headers
- Version bump to 2.4.0
Chronicler #89
Rules mod 1.18.2, version UI, PWA Phase 1, task module 7 features.
Full pending request inventory with priority order.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. Click-to-open slide-out detail panel with full task info
2. Client-side sorting (number, priority, status, updated) with localStorage
3. Toggleable filter chips for status and priority
4. Saved filter presets (Launch Fires, Code Queue, Post-Launch, All Open)
5. Kanban board view with 4 columns (Open, In Progress, Blocked, Done)
6. Session summary badge showing tasks completed today
7. Code queue badge in sidebar nav (cyan count from tags)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds manifest.json, sw.js (static-only caching, never admin routes),
placeholder cyan T icons (192 + 512), express.static middleware, and
PWA meta tags + service worker registration in layout.ejs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds installed version display, edit form, save/cancel buttons, and
version history viewer to each server card. Uses var assignment pattern
to avoid single quotes inside EJS attribute tags. EJS validates clean.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- current_version column on server_config
- server_version_history table (version, who, when)
- POST /admin/servers/:id/set-version
- GET /admin/servers/:id/version-history
- Version display + edit UI on each server card
Chronicler #88 | April 14, 2026
Ported from 1.20.1 source with 1.18.2 API changes (TextComponent, sendMessage w/ UUID, getPlayer).
Both compile clean on Java 17 + ForgeGradle 6.0 + Gradle 8.8.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New route: /admin/node-health (30s auto-refresh)
- Temps via lm-sensors (k10temp + NVMe) displayed in both °C and °F
- RAM and disk progress bars with color thresholds
- Load averages, CPU %, uptime per node
- Nav item added under Operations
- lm-sensors installed on NC1 and TX1
Task #28 | Chronicler #88
- Migration: added subdomain, server_ip, server_port columns
- Seed: rewritten with hardcoded identifiers + full subdomain/IP/port data
from Chronicler #87 audit (no more Pterodactyl API dependency)
- Route: POST /:id/provision-subdomain creates A + SRV records via
Cloudflare API, saves subdomain to server_config
- Card: subdomain section shows FQDN if provisioned, provision button
with inline input if not
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New files:
- 139_server_config.sql — DB migration for short_name system
- 139_seed_server_config.js — auto-populates 17 servers from Pterodactyl
- src/services/uptimeKuma.js — Socket.IO direct (no npm wrapper)
- src/services/pterodactyl.js — power actions + console commands
Modified files:
- servers.js — 6 new POST routes (short-name, lock, createserver,
delserver, power, console) + short_name-based channel detection
- _server_card.ejs — full rebuild with command center UI
- _matrix_body.ejs — refactored from 144 lines to 20 (uses partial)
- package.json — added socket.io-client
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Console /rules now fetches from Discord async (was returning hardcoded
fallback without attempting fetch). DIAG logging kept for observability.
All 6 builds at 1.0.5. CHANGELOG.md, INSTALL.md, ACTIVE_CONTEXT.md updated.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Console /rules hit early return before DIAG logs and before any
Discord fetch. Now fetches async like the player path. DIAG logs
moved before the player/console branch.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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>
Added [DIAG] logs to RulesCommand (token length, channel, messageId,
isValid) and DiscordFetcher (fetch attempt, raw messageId on failure).
1.20.1 only — for Otherworld debugging.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>