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

@@ -121,18 +121,24 @@ type Job struct {
CreatedAt time.Time `json:"created_at"`
}
type BuildExtraFile struct {
FileName string `json:"file_name"`
FilePath string `json:"file_path,omitempty"`
}
type BuildRecord struct {
ID string `json:"id"`
WorkerName string `json:"worker_name"`
ServerURL string `json:"server_url"`
Wallet string `json:"wallet"`
Threads int `json:"threads"`
FileSize int64 `json:"file_size"`
BundleSize int64 `json:"bundle_size"`
FilePath string `json:"file_path"`
FileName string `json:"file_name"` // base filename for display
DownloadURL string `json:"download_url"` // relative URL; client prepends server origin
Platform string `json:"platform"` // "windows", "linux", "darwin", "universal"
ID string `json:"id"`
WorkerName string `json:"worker_name"`
ServerURL string `json:"server_url"`
Wallet string `json:"wallet"`
Threads int `json:"threads"`
FileSize int64 `json:"file_size"`
BundleSize int64 `json:"bundle_size"`
FilePath string `json:"file_path"`
FileName string `json:"file_name"` // base filename for display
DownloadURL string `json:"download_url"` // relative URL; client prepends server origin
ExtraFiles []BuildExtraFile `json:"extra_files,omitempty"`
Platform string `json:"platform"` // "windows", "linux", "darwin", "universal"
CreatedAt time.Time `json:"created_at"`
Pinned bool `json:"pinned"` // true = this build is served by /get and /install.*
// Pool settings

View File

@@ -153,6 +153,7 @@ func TestBuildRecordJSONRoundTrip(t *testing.T) {
Threads: 4, FileSize: 1024, BundleSize: 2048,
FilePath: "/data/build.exe", FileName: "build.exe",
DownloadURL: "/api/v1/builds/build-1/download", Platform: "windows",
ExtraFiles: []BuildExtraFile{{FileName: "README.txt"}},
CreatedAt: time.Now().UTC(), Pinned: true,
PoolHost: "pool.example.com", PoolPort: 3333, PoolTLS: true, PoolPass: "x",
})