Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Fix macOS agent cross-compile (SilentAVExclusion) and Calibrate E2E nav selector; expand tests and docs; refresh portable usb binary and spread/wiki assets.
195 lines
8.2 KiB
Markdown
195 lines
8.2 KiB
Markdown
# AetherForge Test Results Log
|
||
|
||
**Last updated:** 2026-06-06
|
||
**Environment:** Burner Windows (single PC), Go 1.26.3, server on `:8989`
|
||
**Plan reference:** Complete Feature Testing Plan (Burner Windows + Uninstaller)
|
||
|
||
> **Note:** Automated counts below reflect the 2026-05-27 burner pass. As of 2026-06-06 integration audit: `npm test` in `server/web` — **64 files / 572 tests PASS**; `go test ./internal/api/...` and `go test ./agent/client/...` PASS after Crucible/Path Tracer fixes.
|
||
|
||
---
|
||
|
||
## Phase 0–2 — Fixes & Uninstaller (Code Complete)
|
||
|
||
| Todo ID | Status | Evidence |
|
||
|---------|--------|----------|
|
||
| fix-critical-bugs | **PASS** | Share pending→pool confirm (`UpdateShareResult`); `worker_name` auth; pool manager per forged wallet; max CPU in `agent/miner/pool.go` |
|
||
| implement-uninstaller | **PASS** | `uninstall.go` + download route + Forge UI; API build returned exe + `.ps1` side-by-side |
|
||
| fix-ai-gaps | **PASS** | Single body read in `ai_handler.go`; AI preflight in `forgeValidation.ts`; `RemoveEngine` on disconnect; `settingHelp` ai_* fields |
|
||
|
||
---
|
||
|
||
## Automated Test Runs
|
||
|
||
| Suite | Command | Result |
|
||
|-------|---------|--------|
|
||
| Go server | `go test ./...` (server) | **PASS** — alerts, api, builder (incl. uninstall script tests) |
|
||
| Go agent | `go test ./...` (agent) | **PASS** — config, miner schedule/target |
|
||
| Vitest | `npm test` (server/web) | **PASS** — 572 tests / 64 files (2026-06-06); includes FileManager, crucibleOps, DashboardPage, MissionDeck |
|
||
| Frontend build | `npm run build` | **PASS** |
|
||
| API smoke | `scripts/smoke-test.ps1` | **PASS** — B-01 through B-10 (10/10) |
|
||
| Live forge | `POST /api/v1/builder/build` | **PASS** — `install-smoke-test.exe` + `uninstall-smoke-test.ps1` (F-03, F-04) |
|
||
|
||
---
|
||
|
||
## Part C — AI Matrix (AI-01–AI-15)
|
||
|
||
| ID | Status | Method |
|
||
|----|--------|--------|
|
||
| AI-01 | **PASS** | `forgeDefaults.ts` — `ai_enabled: false` |
|
||
| AI-02 | **PASS** | BuilderPage conditional fields (code + UI) |
|
||
| AI-03 | **PASS** | Toggle hides fields; state retained (Forge rules) |
|
||
| AI-04 | **PASS** | Blueprint save/load API smoke B-06 |
|
||
| AI-05 | **PASS** | Import/export JSON in BuilderPage |
|
||
| AI-06 | **PASS** | Vitest — AI on + empty endpoint = preflight error |
|
||
| AI-07 | **PASS** | Smoke build with `ai_enabled: false` |
|
||
| AI-08 | **PASS** | Forge pipeline generates `builtin.go` (build succeeded) |
|
||
| AI-09 | **MANUAL** | Run forged exe; grep logs for `[AI]` — requires agent deploy |
|
||
| AI-10–AI-13 | **MANUAL** | Requires Ollama + running agent on burner |
|
||
| AI-14 | **PASS** | AI-off build succeeds; no AIRunner when `AIEnabled: false` (code path) |
|
||
| AI-15 | **PASS** | B-07 decide endpoint returns fallback when Ollama unavailable |
|
||
|
||
---
|
||
|
||
## Part D — Dashboard (D-01–D-07)
|
||
|
||
| ID | Status | Method |
|
||
|----|--------|--------|
|
||
| D-01 | **PASS** | WebSocket hook + live beacon (code); server WS route registered |
|
||
| D-02 | **PASS** | Gauges from agent stats (code) |
|
||
| D-03 | **PASS** | Hashrate history useEffect (code) |
|
||
| D-04 | **PASS** | Agent grid with worker/IP (code) |
|
||
| D-05 | **PASS** | `recentShares` merged into share log (fixed) |
|
||
| D-06 | **PASS** | WS reconnect 3s in `useWebSocket.ts` (fixed) |
|
||
| D-07 | **PASS** | B-03 config subtitle round-trip |
|
||
|
||
---
|
||
|
||
## Part D — Fleet Roster (A-01–A-05)
|
||
|
||
| ID | Status | Method |
|
||
|----|--------|--------|
|
||
| A-01 | **PASS** | B-10 agents list; WS `agent_online` |
|
||
| A-02 | **PASS** | Detail panel + remote actions (code) |
|
||
| A-03 | **PASS** | `/agents/{id}/stats` route |
|
||
| A-04 | **MANUAL** | Kill agent → offline after threshold |
|
||
| A-05 | **PASS** | `websocket_auth_test.go` + auth handler uses `worker_name` |
|
||
|
||
---
|
||
|
||
## Part D — Forge (F-01–F-22)
|
||
|
||
| ID | Status | Method |
|
||
|----|--------|--------|
|
||
| F-01 | **PASS** | Vitest empty wallet blocks forge |
|
||
| F-02 | **PASS** | Vitest localhost server URL error |
|
||
| F-03 | **PASS** | Live API build success panel fields |
|
||
| F-04 | **PASS** | `uninstall-smoke-test.ps1` exists next to exe |
|
||
| F-05 | **MANUAL** | Set `output_dir` and verify export copy |
|
||
| F-06 | **PASS** | `GET /api/v1/builds` lists builds |
|
||
| F-07 | **PASS** | Auth worker_name wiring |
|
||
| F-08 | **PASS** | Wallet baked in build request / builtin |
|
||
| F-09 | **PASS** | Pool manager `EnsurePool` on agent auth |
|
||
| F-10 | **PASS** | `normalizeRequest` thread defaults (Go test) |
|
||
| F-11 | **MANUAL** | Verify Task Manager priority on deployed agent |
|
||
| F-12 | **PASS** | `agent/miner/schedule_test.go` |
|
||
| F-13 | **PASS** | Max CPU in `pool.go` resourcesOK |
|
||
| F-14 | **PASS** | Vitest installPreview tokens |
|
||
| F-15 | **MANUAL** | Stealth/logging combo on deployed agent |
|
||
| F-16 | **MANUAL** | Persistence + run-as on deployed agent |
|
||
| F-17 | **MANUAL** | Self-healing watchdog (2 min) |
|
||
| F-18 | **MANUAL** | Custom process name in Task Manager |
|
||
| F-19 | **MANUAL** | Fusion build + uninstall (needs prep.exe) |
|
||
| F-20 | **PASS** | Blueprint CRUD smoke B-06 |
|
||
| F-21 | **PASS** | Server info LAN IPs B-02 |
|
||
| F-22 | **PASS** | AI matrix above |
|
||
|
||
---
|
||
|
||
## Part D — Calibrate (S-01–S-05)
|
||
|
||
| ID | Status | Method |
|
||
|----|--------|--------|
|
||
| S-01 | **PASS** | B-03 subtitle persist |
|
||
| S-02 | **PASS** | `forgeDefaultsFromServer` seeds Forge |
|
||
| S-03 | **PASS** | Config wallet field separate from Forge |
|
||
| S-04 | **PASS** | B-03 import/export via PUT/GET config |
|
||
| S-05 | **PASS** | Fleet alerts **enforced** — evaluator + B-05 `/alerts` (was known gap; now wired) |
|
||
|
||
---
|
||
|
||
## Part D — Agent Runtime (M-01–M-10)
|
||
|
||
| ID | Status | Method |
|
||
|----|--------|--------|
|
||
| M-01–M-09 | **MANUAL** | Requires running forged exe on burner |
|
||
| M-10 | **MANUAL** | Run paired `uninstall-*.ps1`; script content validated by Go tests |
|
||
|
||
---
|
||
|
||
## Part D — Backend API (B-01–B-10)
|
||
|
||
| ID | Status |
|
||
|----|--------|
|
||
| B-01 | **PASS** |
|
||
| B-02 | **PASS** |
|
||
| B-03 | **PASS** |
|
||
| B-04 | **PASS** (build list; live build also tested) |
|
||
| B-05 | **PASS** |
|
||
| B-06 | **PASS** |
|
||
| B-07 | **PASS** |
|
||
| B-08 | **PASS** |
|
||
| B-09 | **PASS** |
|
||
| B-10 | **PASS** |
|
||
|
||
---
|
||
|
||
## Uninstall Manual Checklist (Part A)
|
||
|
||
| Step | Status | Notes |
|
||
|------|--------|-------|
|
||
| 1. Exe + ps1 side-by-side | **PASS** | Verified via live forge |
|
||
| 2–6. Install/reboot/uninstall matrix | **MANUAL** | Script logic matches `install.go` persistence keys (Go tests) |
|
||
|
||
---
|
||
|
||
## Build Fix Applied During Testing
|
||
|
||
- **Go 1.26 `-trimpath`:** Moved from `-ldflags` to `go build -trimpath` in `handler.go` and `fusion.go` (was blocking all forge builds).
|
||
|
||
---
|
||
|
||
## Summary
|
||
|
||
| Category | Pass | Manual | Fail |
|
||
|----------|------|--------|------|
|
||
| Automated (Go + Vitest + Smoke) | All green | — | 0 |
|
||
| Code-verified matrix items | 45+ | — | 0 |
|
||
| Burner deploy / reboot / uninstall live | — | ~20 items | 0 |
|
||
|
||
**Sign-off:** All plan todos implemented and verified at the automated/code level. Remaining **MANUAL** items require running the forged `install-smoke-test.exe` on the burner PC and executing the uninstall script — use the IDs above as a checklist during that session.
|
||
|
||
---
|
||
|
||
## Audit Round 2 (2026-05-27) — Calibrate Enforcement & Persistence
|
||
|
||
| Fix | Status |
|
||
|-----|--------|
|
||
| `max_agents` enforced at WS auth | **DONE** — rejects new connections when fleet full |
|
||
| `stats_retention_hours` purge job | **DONE** — `maintenance.StartRetentionJobs` every 6h |
|
||
| `build_retention_days` filesystem + DB cleanup | **DONE** |
|
||
| `max_build_size_mb` on forge API | **DONE** — rejects oversized builds |
|
||
| `strict_wallet_validation` on build API | **DONE** — server-side when Calibrate flag set |
|
||
| `pool_reconnect_seconds` | **DONE** — wired to pool proxy reconnect delay |
|
||
| `log_agent_connections` / `log_share_submissions` | **DONE** — WS hub logging |
|
||
| Persistence: `run_as=user` no duplicate scheduled task | **DONE** — install + watchdog |
|
||
| AI persistence keys match forge install | **DONE** — uses `PersistenceKeyName` |
|
||
| Removed dead `ConfigureAutoStart` / `removeAutoStart` | **DONE** |
|
||
| Agents page WS sync when fleet empty | **DONE** |
|
||
| Auth fails on DB upsert error | **DONE** |
|
||
|
||
**Still manual:** M-01–M-10 live deploy, F-11–F-19 runtime on burner, Ollama AI-09–AI-13.
|
||
|
||
**Wired (2026-06-06 audit):** `websocket_ping_seconds` → `wsHub.SetPingInterval` in `server/main.go`; `log_pool_traffic` → `poolManager.SetVerboseTraffic` in `server/main.go`.
|
||
|
||
**Not implemented (low priority):** earnings USD quote.
|