Add forge pipeline polish, simple forge UX, and fleet management upgrades.

Fusion copies prep icon and version info via go-winres; optional Garble obfuscation, Authenticode signing, and dry-run size estimates. Forge Simple mode with smart defaults; fleet roster gets compact expandable cards, filters, bulk commands, per-agent notes/tags, and typed WebSocket payloads.
This commit is contained in:
drjones
2026-05-28 21:48:20 -07:00
parent fda72041f0
commit c95a4373de
45 changed files with 2282 additions and 272 deletions

View File

@@ -0,0 +1,29 @@
package builder
import "testing"
func TestEstimateFusionBuildTotals(t *testing.T) {
h := &Handler{
dataDir: t.TempDir(),
projectRoot: t.TempDir(),
}
req := &BuildRequest{
FusionEnabled: true,
FusionOutputName: "MyApp.exe",
OutputDir: "exports",
Obfuscate: true,
}
got := h.estimateFusionBuild(req, "", 5*1024*1024, "MyApp.exe")
if got.PrepBytes != 5*1024*1024 {
t.Fatalf("prep bytes: got %d", got.PrepBytes)
}
if got.EstimatedTotalBytes <= got.PrepBytes {
t.Fatalf("total should exceed prep: %d", got.EstimatedTotalBytes)
}
if got.OutputFileName != "MyApp.exe" {
t.Fatalf("output name: %s", got.OutputFileName)
}
if got.ExportPath == "" {
t.Fatal("expected export path")
}
}