diff --git a/PROBLEMS.md b/PROBLEMS.md index 87c1f49..c96bdb4 100644 --- a/PROBLEMS.md +++ b/PROBLEMS.md @@ -40,24 +40,19 @@ Open issues only. Fixed items removed. Last sweep: 2026-06-07. | Area | Notes | |------|-------| -| **`tunnel_stream`** | Server-side TCP reverse relay documented as future (`README.md`). | -| **Path Tracer sessions** | `TraceSession` in handler RAM; restart loses state; no DB persistence or startup sweep. | | **Non-Windows Path Tracer parity** | `pathtracer_stub.go` errors on `wg_setup`; chains are Windows-agent focused. | -| **NAT / symmetric UDP** | UPnP + DB IP fallback; no STUN/TURN or post-config connectivity probe. | +| **NAT / symmetric UDP** | UPnP + DB IP fallback only; no post-config connectivity probe or TURN relay (`architecture_deferred_test.go`). | | **Fixed WireGuard port 51820** | Same UDP port all hops; multi-agent behind one NAT may conflict. | -| **Agent display name vs hostname** | WS `UpsertAgent` preserves operator rename when `name != hostname`; reconnect with hostname only keeps DB label. | | **WireGuard auto-download (Windows)** | `ensureWGExe()` on first Path Tracer use; heavy, may need admin; pre-install recommended. | -| **Monolithic WebSocket context** | All `useWebSocket()` consumers re-render on any WS change; split contexts/selectors deferred. | -| **`CruciblePage` size (~2k lines)** | Terminal + fleet + tabs in one component; section split/memo deferred. | -| **WS `init` ships full fleet** | Dashboard connect still loads all agents in one JSON blob; pagination is REST-only (`?limit=&offset=`). | -| **SQLite single-writer ceiling** | `SetMaxOpenConns(1)` + WAL; sustained 1000+ agents with per-tick DB writes may SQLITE_BUSY; consider Postgres or write batching at 1000+. | +| **Monolithic WebSocket context** | Single `useWebSocket()` re-renders all consumers; split contexts deferred (`architectureDeferred.test.ts`). | +| **`CruciblePage` size (~2k lines)** | Terminal + fleet + tabs in one component; section split deferred (`architectureDeferred.test.ts`). | +| **SQLite → Postgres at 1000+** | `SetMaxOpenConns(1)` + WAL; sustained per-tick writes may SQLITE_BUSY (`architecture_deferred_test.go`). | | **In-memory WS agent state** | Hub maps (`agentCapabilities`, `agentLogs`, DNS cache) grow O(agents); no eviction on disconnect beyond log trim. | | **Fleet topology 3D cap** | `FleetTopologyMap` renders at most 200 nodes; larger fleets need subnet-grouped view or server-side aggregation. | | **Crucible roster pagination** | Roster paginates 80 cards/page; bulk select-all still operates on filtered set in memory. | | **No CI HTTP forge** | `e2e-validate.ps1 -ForgeAgent` manual; live compile needs `LIVE_FORGE=1` + `-tags liveforge`. | | **Non-Windows forge host** | PE disguise / osslsigncode signing platform-limited by design. | | **Mac PathForge runtime** | `.command` curl `/api/download/agent-mac`; needs reachable `server_url` + binary on server. | -| **Terminal virtualization** | 400-line DOM cap only; full virtual scrollback deferred. | | **Vite chunk weight** | `three` + vendor warnings; FleetTopologyMap lazy but heavy first open. | ## Test gaps / noise