Skip to content

libmicrovmi: default VirtualBox access method with MachineDebugger fallback #316

Open

Description

@Wenzel

Parent

#312

What to build

When the caller selects no Access method (omitted params in Rust/Python, access_method = 0 in C), the VirtualBox Driver uses the VBoxVMI method at the default socket, and falls back to the MachineDebugger method only if that socket file does not exist. Any other VBoxVMI failure (busy, permission, protocol mismatch, handshake timeout) is returned. An explicitly selected method never falls back. The chosen method, and the fallback reason, are logged at info. ADR-0004 supersedes the "no default access method" rule of ADR-0003.

Acceptance criteria

  • No selection + VBoxVMI enabled on the VM → VBoxVMI is used (log says so)
  • No selection + VBoxVMI disabled → MachineDebugger is used (log names the missing socket)
  • No selection + socket busy (another client) → error, no fallback
  • Explicit VBoxVMI with a missing socket → error, no fallback
  • Default only exists when both methods are compiled in
  • ADR-0004 written; ADR-0003 marked as partly superseded
  • Cases above covered in the existing VirtualBox integration harness

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions