Capabilities

Session.Capabilities on the one SDK, pkg/abox.

Prints protocol and feature flags. Exit 1 if the guest is below protocol 4 (Open already rejects that).

CLI

The CLI does not print capability flags. A TUI or exec session already requires protocol 4; older disks fail at start.

--probe-vm is the exception: it still lists files on a pre-protocol-4 guest.

abox --probe-vm               # list files even on an old disk
abox                          # fails if guest < protocol 4
abox --resume <old-id>        # same; rebuild then Open a new session

Rebuild: make build && make image-update. Errors.

SDK

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/AdminTurnedDevOps/ABox/pkg/abox"
)

func main() {
	ctx := context.Background()
	sess, err := abox.Open(ctx, abox.Options{})
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		os.Exit(1)
	}
	defer sess.Close()
	c := sess.Capabilities()
	fmt.Printf("protocol=%d cancel=%v rich=%v turn_opts=%v approvals=%v mcp_broker=%v\n",
		c.Protocol, c.Cancel, c.RichEvents, c.TurnOptions, c.Approvals, c.MCPBroker)
	if c.Protocol < 4 {
		fmt.Fprintln(os.Stderr, "rebuild guest: make build && make image-update, then Open a new session")
		os.Exit(1)
	}
}