# MAGATAMA UI / Cache / RunPod / Tooltip / Changelog Fix

Date: 2026-05-06
Author: Codex

## Scope

Addressed the current MAGATAMA operator complaints in one block:

- training UI still showed `1097`
- findings page looked blank
- attack paths looked empty/broken
- Switchblade port hover only showed a help cursor / question mark
- changelog looked stale

## What Was Fixed

### 1. Training truth source

`magatamallm` RunPod launches still logged the old legacy deduplicated `fixes.jsonl` count (`1097`) during SSE startup.

This was corrected so RunPod launches now:

- still dedupe the legacy fix corpus where needed
- but no longer present that count as the operator-facing training truth
- instead emit the lane-specific RunPod manifest totals after dataset refresh

Live verified via public MAGATAMA API:

- `collectedExamples = 15620`
- `effectiveExamples = 15620`
- `evalExamples = 1736`
- `totalExamples = 17356`
- `newSinceLastTraining = 15620`

### 2. RunPod completion truthfulness

RunPod worker jobs could return `COMPLETED` even though the logs contained real training failures.

MAGATAMA now inspects worker logs for markers such as:

- `Traceback`
- `SyntaxError`
- non-zero exit status
- explicit train/fine-tune failure text

If such evidence exists, the run is recorded as worker-failed instead of being treated as a clean success.

### 3. Findings page no longer looks broken when empty

The live findings API currently returns:

- `findings = []`
- `total = 0`

The UI now renders an explicit empty-state row when there are no open findings or when filters hide everything, instead of leaving the table visually blank.

### 4. Attack Paths empty-state clarified

Attack Paths previously looked broken when the selected scope had zero assets.

The UI now explicitly states:

- the current scope has `0 assets`
- operators should widen location/datacenter/rack scope
- the graph stays intentionally empty when no correlated multi-step paths exist

### 5. Frontend cache + scope hardening

Frontend cache handling was improved:

- cache version bumped to `2026-05-06b`
- stale legacy `magatama_api_cache:*` entries are cleared
- per-endpoint TTLs were introduced
- invalid scope selections are normalized
- empty scoped selections reset rather than silently trapping the UI in misleading empty views

### 6. Switchblade port hover improved

The old port chips relied only on browser-native `title` behavior.

Now:

- port chips carry `data-tooltip`
- custom tooltip CSS is shipped live
- usage/state text should appear as a real hover bubble

Live Erik file check confirmed:

- `data-tooltip` markers present
- tooltip CSS present

### 7. Changelog self-healing

The public changelog cache in MAGATAMA core previously returned cached data indefinitely if structurally valid.

Now:

- cached changelog older than 6 hours triggers a rebuild from git history

Live verified on Erik through dashboard proxy:

- `generatedAt = 2026-05-06T15:18:42.708Z`
- latest entries include fresh `2026-04-30` material again

## Files Touched In MAGATAMA

- `packages/dashboard/public/index-v2.html`
- `packages/dashboard/src/server.ts`
- `packages/core/src/routes/changelog.ts`

## Deployment Status

Built locally and redeployed to Erik:

- dashboard dist synced
- core dist synced
- `index-v2.html` synced
- PM2 restarted:
  - `magatama-dashboard`
  - `magatama`

## Important Live Evidence

- public `api/llm/status` shows lane-export counts, not `1097`
- public `api/findings?limit=1` returns empty findings cleanly
- Erik live dashboard file contains:
  - `API_CACHE_VERSION = '2026-05-06b'`
  - `data-tooltip`
  - `Im aktuellen Scope liegen 0 Assets.`
  - `Klicken für Details`

## Open Truths

- current live findings are genuinely `0`; this is not a hidden frontend-only failure
- Attack Paths can still be empty if there are truly no scoped assets or no correlated attack stories
- RunPod serverless still needs endpoint-side reliability; the MAGATAMA-side truthfulness improvements do not by themselves fix a broken RunPod release/worker pipeline
