feat: show golden VM tag in clone list, add console logging, fix ubuntu boot

- Persist golden VM tag to clones/{id}/tag at spawn time
- GET /clones now returns [{id, tag}] objects instead of plain IDs
- Web UI renders tag as a dim label next to each clone entry (clone 3 · default)
- Pre-existing fixes included in this commit:
  - console: tee all PTY output to clones/{id}/console.log for boot capture
  - network: destroy stale tap before recreating to avoid EBUSY errors
  - orchestrator: fix ubuntu systemd boot (custom fc-console.service, fstab,
    mask serial-getty udev dep, longer settle time, correct package list)
  - config: remove quiet/loglevel=0 from default boot args

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-14 22:04:11 +00:00
parent fb1db7c9ea
commit d0da012a82
6 changed files with 95 additions and 31 deletions

View File

@@ -54,6 +54,8 @@ func (o *Orchestrator) setupBridge() error {
// createTap creates a tap device and attaches it to the bridge.
func (o *Orchestrator) createTap(name string) error {
// Destroy any stale tap with this name before (re)creating it.
_ = run("ip", "link", "del", name)
if err := run("ip", "tuntap", "add", "dev", name, "mode", "tap"); err != nil {
return fmt.Errorf("create tap %s: %w", name, err)
}