# MAGATAMA Attack-Path Fix Guidance Live Deploy

Date: 2026-05-07 UTC

## Scope

- MAGATAMA attack-path side panel
- local Mac training API reachability/truth check

## Findings

### 1. `Open Fix Guidance` was a placebo button

The Attack Paths detail sidebar rendered a real CTA labeled `Open Fix Guidance`, but the click handler only executed:

- `toast('Fix guidance opened','info')`

No real drawer, ticket, or finding guidance path opened from that action.

### 2. Local training API was not dead; it was just idle

The local training API service for MAGATAMA lane automation is managed by:

- `org.fichtmueller.magatama-train-api`

Live checks showed:

- LaunchAgent state: running
- port listener on `*:3214`
- health response on localhost when checked outside sandbox restrictions:
  - `status = ok`
  - `service = magatama-train-api`
  - `running = false`
  - `pid = null`

Interpretation:

- the API process is healthy and reachable
- it is currently idle between runs
- the remaining proof point for automation is a fresh lane training run that writes back lane-specific run metadata and completes local adoption/version switching

## Fix Applied

File:

- `magatama/packages/dashboard/public/index-v2.html`

Changes:

- added `openFixGuidanceForNode(nodeId)`
- `showNodeDetail(n)` now wires the CTA to the new helper instead of a toast
- if the graph node maps to a real finding:
  - MAGATAMA opens the existing finding/ticket detail via `openTicket(id)`
- if the node is synthetic and has no backing finding:
  - MAGATAMA now shows a clear warning toast instead of pretending guidance opened

## Live Deployment

Updated file copied to Erik:

- `/opt/magatama/packages/dashboard/public/index-v2.html`

Dashboard restarted:

- `pm2 restart magatama-dashboard`

Remote file verification confirmed presence of:

- `openFixGuidanceForNode`
- `Open Fix Guidance`

## Operational Result

- Attack Paths no longer expose a fake remediation CTA
- the CTA now routes into the actual MAGATAMA guidance/detail path when the node represents a real finding
- local training API health is confirmed, but lane-specific successful return/adoption still needs validation with a fresh real training run
