Improve portable launch, forge persistence, and operator auth UX.

Persist build extra_files for Build Manager history, print dashboard login on every start, add libp2p for Mesh P2P forge, defer WebSocket until login, and split devrun.bat from LAUNCH.bat with USB deck auto-detection.
This commit is contained in:
AetherForge
2026-05-31 18:56:43 -07:00
parent 2f528229f2
commit feba06e008
80 changed files with 2897 additions and 675 deletions

View File

@@ -47,13 +47,19 @@ func TestFindProjectRootFromServerDir(t *testing.T) {
t.Fatal(err)
}
root := findProjectRoot()
runBat := filepath.Join(root, "run.bat")
if _, err := os.Stat(runBat); err != nil {
t.Fatalf("findProjectRoot=%q missing run.bat: %v", root, err)
found := false
for _, name := range []string{"devrun.bat", "LAUNCH.bat", "run.bat"} {
if _, err := os.Stat(filepath.Join(root, name)); err == nil {
found = true
break
}
}
if !found {
t.Fatalf("findProjectRoot=%q missing devrun.bat/LAUNCH.bat/run.bat", root)
}
// When tests run from server/, root should be parent of cwd or cwd itself.
if root != cwd && root != filepath.Dir(cwd) {
t.Logf("findProjectRoot=%q cwd=%q (acceptable if run.bat layout differs)", root, cwd)
t.Logf("findProjectRoot=%q cwd=%q (acceptable if marker layout differs)", root, cwd)
}
}