feat: add Tower Log narrative event feed (Fixes #7)
Some checks failed
CI / Typecheck & Lint (pull_request) Failing after 0s

Adds the tower_log DB table, a narrateEvent method on AgentService (Haiku-powered, stub-safe), a tower-log service that persists and broadcasts entries, a GET /api/tower-log REST endpoint, WebSocket bootstrap and real-time push, and a bottom-sheet Tower Log panel in the-matrix UI with fade-in animations and auto-scroll.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Alexander Whitestone
2026-03-23 22:43:10 -04:00
parent b6569aeedc
commit c2f2cfe3ea
12 changed files with 431 additions and 2 deletions

View File

@@ -8,7 +8,7 @@ import {
import { initEffects, updateEffects, disposeEffects, updateJobIndicators } from './effects.js';
import { initUI, updateUI } from './ui.js';
import { initInteraction, disposeInteraction, registerSlapTarget } from './interaction.js';
import { initWebSocket, getConnectionState, getJobCount } from './websocket.js';
import { initWebSocket, getConnectionState, getJobCount, initTowerLog } from './websocket.js';
import { initPaymentPanel } from './payment.js';
import { initSessionPanel } from './session.js';
import { initHistoryPanel } from './history.js';
@@ -45,6 +45,7 @@ function buildWorld(firstInit, stateSnapshot) {
if (firstInit) {
initUI();
initWebSocket(scene);
initTowerLog();
initPaymentPanel();
initSessionPanel();
initHistoryPanel();