8000 T66 — Register a box on the host and hand it its addresses · Issue #1711 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T66 — Register a box on the host and hand it its addresses #1711

Closed

Description

@norrietaylor

Task

slice size difficulty model who estimated lines
Escape into the VM reaches only the declared union M needs care strongest an agent 420 (280 code, 140 tests)

On a VM-backed host, activate registers the new box with the VM host daemon on the host, the VM host daemon allocates the box's switch and loopback addresses into its table and hands them back, and the in-VM daemon attaches the box with the handed switch address and selects none.

Covers:

  • NET-138 (the allocate-and-hand sub-requirement)

Layers:

  • vmhost:
    • crates/minvmd/src/control.rs (new): the host-side control socket the client registers a box on and reads its addresses from
    • crates/minvmd/src/box_registry.rs: a registration fills the box's row from the client's expanded spec and allocates its switch and loopback addresses from the helper's slice
    • crates/minvmd/src/lib.rs: declares the control module
    • cargo nextest run -p minvmd box_addresses_allocated_on_host_and_handed_to_daemon
  • cli:
    • crates/minimal/src/cmd/session.rs: on a VM-backed host, activate registers the new box (id, name, ingress rules, egress rules) with the VM host daemon over its control socket, receives the box's switch and loopback addresses, and passes them in the session create request
    • cargo nextest run -p minimal activate_registers_box_with_vm_host
  • daemon:
    • crates/minimald-rpc/src/lib.rs: the session create request carries the handed switch and loopback addresses
    • crates/minimald/src/net/gvproxy_network.rs: an own-address attach configures the tap with the handed address and selects none
    • cargo nextest run -p minimald own_ip_attach_uses_handed_address

Waits on:

Plan block
### T66 — Register a box on the host and hand it its addresses
  slice: S9
  kind: task
  covers: NET-138
  size: M
  est: 280 code, 140 tests
  executor: agent
  difficulty: needs care
  model: strongest
  diagnostics: the bundle's VM host daemon log names each registration with the box id and the addresses allocated; the daemon log names the handed address at attach
  observability: one info log line per registration with the box id and its two addresses; one debug line per attach naming the handed address
  layers:
    - vmhost:
      - crates/minvmd/src/control.rs (new): the host-side control socket the client registers a box on and reads its addresses from
      - crates/minvmd/src/box_registry.rs: a registration fills the box's row from the client's expanded spec and allocates its switch and loopback addresses from the helper's slice
      - crates/minvmd/src/lib.rs: declares the control module
      test: cargo nextest run -p minvmd box_addresses_allocated_on_host_and_handed_to_daemon
    - cli:
      - crates/minimal/src/cmd/session.rs: on a VM-backed host, activate registers the new box (id, name, ingress rules, egress rules) with the VM host daemon over its control socket, receives the box's switch and loopback addresses, and passes them in the session create request
      test: cargo nextest run -p minimal activate_registers_box_with_vm_host
    - daemon:
      - crates/minimald-rpc/src/lib.rs: the session create request carries the handed switch and loopback addresses
      - crates/minimald/src/net/gvproxy_network.rs: an own-address attach configures the tap with the handed address and selects none
      test: cargo nextest run -p minimald own_ip_attach_uses_handed_address
  produces:
    - crates/minvmd/src/control.rs
  consumes:
    - crates/minvmd/src/box_registry.rs
  proof: On a VM-backed host, activate registers the new box with the VM host daemon on the host, the VM host daemon allocates the box's switch and loopback addresses into its table and hands them back, and the in-VM daemon attaches the box with the handed switch address and selects none.
  depends on:
    - blocked by #1640

Activity

  1. added
    kind:taskA task the plan skill rendered; the body carries ## Task
    size:M200 to 500 net lines; one PR
    model:strongestThe strongest model available: unknown ground, or large work that needs care
    on Sep 25, 2026
  2. norrietaylor commented on Oct 1, 2026

    @norrietaylor
    MemberAuthor

    Deferral pointer: #1775 (surface own_ip_enforcement at session start and as a node attribute) is blocked by this task. When T66 flips the gate default to in-force, #1775 reads per_box from the gate mode; the dead_code expectation in crates/minvmd/src/net/egress_gate.rs moves from InForce to Announced with the flip, and unregistered_sources_dropped_when_default_in_force becomes the proof of the shipped default (see #1764, Proof).

  3. minimal-foundry commented on Oct 1, 2026

    @minimal-foundry
    Contributor

    Done. #1789 merged.

    branch agent/1711-register-a-box-on-the-host-and-hand-it-its-addre · epic #1437 · PR #1789

    Updated 2026-10-28T06:17:32.453Z.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:taskA task the plan skill rendered; the body carries ## Taskmodel:strongestThe strongest model available: unknown ground, or large work that needs caresize:M200 to 500 net lines; one PR

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0