Files
AetherForge/PROBLEMS.md
2026-06-07 00:05:09 -07:00

9.0 KiB

PROBLEMS.md

Open issues only. Fixed items removed. Last sweep: 2026-06-06.

By design / safety

Issue Notes
bof_execute disabled Agent returns explicit error; in-memory BOF execution disabled (client.go).
Process hollowing AMSI/ETW Relocation done; Defender/ETW ~50% failure; bypass not implemented (hollow_windows.go).
Cloudflared in-process (non-Windows server) Stub on Linux/macOS; use external connector (AF_TUNNEL_EXTERNAL) or add launcher.
macOS camera / GPU miner Stubs or partial; Linux has V4L2 + nvidia-smi path.
KEV heuristics Non-Windows agents return Status: n/a (Windows-only CVE matching).
Mesh P2P without -tags p2p Default build reports 0 peers (mesh_p2p_stub.go).
Linux/macOS GPU RVN mining detectGPU() may find NVIDIA but miners download Windows .exe only.

Scale limits (hundreds of subnets / 500+ agents)

Area Notes
Subnet grouping Derived from agents.ip /24 prefix at query time; no agents.subnet column — hundreds of subnets OK via LIKE filter + dropdown (not chips).
Per-agent subnet scan Capped at 128 hosts (MaxSubnetScanHosts); syscheck uses 20; spread sem=16 per agent. Fleet discovery is incremental (ARP + capped sweep), not full /16.
stats_batch WS Server coalesces stats every 250ms into one frame; client applies in single setAgents pass with agentStatsUnchanged skip.
Hashrate samples One INSERT per agent stats tick — dominant DB write at scale; retention/prune policy not automated.
Stale-agent sweep Every 45s calls ListAgents() full table scan; acceptable to ~1000 rows, costly beyond without indexed partial query.

Antivirus / Windows Defender

Topic Notes
Why "AV off" fails UI toggle often disables Real-time protection only. Tamper Protection, cloud-delivered protection, Controlled folder access, SmartScreen, and behavioral blocks still run. defender_off remote action and SilentAVExclusion fail without elevation; Tamper Protection reverts Set-MpPreference.
High-friction paths GPU subprocess (T-Rex/TRM .exe download), garble/obfuscated agent binary, spread/hollow/persistence, SilentAVExclusion hidden PowerShell. In-process RandomX (pure Go) has no external CPU miner exe.
Default execution (2026-06-06) Forge default is miner_execution=auto (full cascade). AV-Safe preset still bakes inprocess only, GPU off, no hollow/spread.
Operator tooling Calibrate → Windows Defender Exclusions generates elevated .ps1 (manual run). Crucible → Mining Diagnostics command returns JSON blockers.
No silver bullet No architecture is 100% invisible. Best combo: in-process CPU + path/process exclusions + dedicated mining hardware for GPU.

Container Mining

Topic Notes
Fallback chain agent/miner/fallback_chain.go orchestrates container → in-process → GPU (parallel) → Stratum overlay. Failures in failed_methods[] on stats WS. 30s cooldown between full re-passes.
Default execution Forge default is auto (full chain). inprocess/container/subprocess limit which steps run.
AV limits (honest) Containers are not invisible — AV still sees docker.exe, image pulls, and container filesystem scans. Legitimate benefit is isolated workload and fewer host subprocess spawns (GPU T-Rex/TRM). In-process RandomX has no external CPU miner exe.
GPU in container Linux --gpus all stub only; Windows Docker Desktop GPU passthrough is operator-dependent. Host subprocess GPU path remains fallback.
Worker image aetherforge/agent-worker:latest (override AETHERFORGE_MINER_IMAGE). Build from docker/Dockerfile.agent; not auto-pulled in MVP.
Deferred Container hashrate on dashboard (host reports 0 CPU H/s while container mines); auto-build/push worker image in forge; Podman rootless on Windows.

Architecture deferred (large)

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.
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+.
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.
Path Forge test gaps Cancellation, batch races, skipped-counter UI not fully covered.
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.

Open bugs / behavior

Issue Notes
Unknown Unix CPU stats stub cpu_stub.go may return 0 and break idle-mining guard on exotic platforms.
Linux headless screenshot Needs xvfb + scrot or custom command in containers.

UX / visual (unfixed DV)

ID Issue
DV-01 Neon cyan fragmentation (#00f5ff, #0ff vs token #00e8f5) across several components.
DV-02 Page header patterns diverge (Build Manager, Path Tracer green title, Forge naming).
DV-03 SacredPageHeader unused (dead CSS path).
DV-04 Pages.css duplicate .empty-state / .page-header h1 override order.
DV-07 Path Tracer visual island (#00ffaa) vs operator-deck chrome.
DV-09 Dead chart badge styles in wealth-deck CSS.
DV-13 Dark-only; no light / prefers-color-scheme path.
DV-14 Sidebar footer hard-coded v0.0.1.
DV-15 MissionDeckPage.tsx excessive blank lines (maintainability).

Help / product copy gaps

ID Issue
UH-03 Emberwake / War Room widgets need HelpTip parity with Command Deck funnel.
UH-04 Mission Deck minimal operator guidance.
UH-05 Builder advanced forge sections missing some HelpTip keys (docAnchors.test gap list).

Test gaps / noise

Item Notes
Agent pathtracer Go tests Windows impl + stub have limited coverage (pathtracer_stub_test.go started).
Client WS/beacon paths Integration-heavy; Docker Tier 2 covers Linux slice only.
Path Tracer 2s REST poll No WS hop progress; acceptable latency, extra load while tracing.
Emberwake double feed 15s client poll + 30s server war-room broadcast; prefer WS-only.
SystemStatusBar REST poll listAgents every 15s duplicates WS fleet stream.
Builder / dashboard failure tests Vitest emits ECONNREFUSED stderr on happy-dom; tests pass.
Download mock pattern Prefer separate vi.fn() per api/download export to avoid flakes.

Product decisions (document-only)

Topic Notes
Dual storage sync Session vs localStorage; aetherforge-auth on logout; no full cross-tab policy.
Forge progress simulation Stage timeline caps ~94% until server responds (45 min client timeout).
MatrixRain / CursorFire Layout mounts effects on all routes; route-gating deferred.
CI scope .github/workflows/ci-docker-mining.yml only; no root Makefile test target.

Do not commit

  • data/login-credentials.json, data/users.json, and other local secrets.