8000 T13 — Mint every box's id in the VM host and take it only from there · Issue #2397 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

T13 — Mint every box's id in the VM host and take it only from there #2397

Closed

Description

@mitodrummer

Task

slice size difficulty model who estimated lines
Names follow the id M unknown ground strongest an agent 560 (320 code, 240 tests)

A box in the VM carries the VM host's minted id.

Covers:

  • BOX-002

Layers:

  • vm-host:
    • crates/minvmd/src/control.rs: passes the minted id
    • crates/minvmd/tests/minimald_session_integration.rs: tests
    • cargo nextest run -p minvmd vm_host_mints_box_id_before_in_vm_create (deferred: vm)
  • guest:
    • crates/minimald/src/box_manager.rs: id only from VM host
    • crates/minimald/src/box_manager/tests.rs: tests
    • crates/minimald/src/env.rs: in-box id from record
    • crates/minimald/src/net/listeners.rs: carry the minted id over the guest↔host report channel
    • crates/minimald-rpc/src/lib.rs: the message or reply field that carries the id
    • crates/minimald/src/box_actor/tests.rs: fixtures (own_ip_handed_session_req) hand the id over the VM host's channel, not config.box_id
    • cargo nextest run -p minimald guest_create_ignores_a_client_supplied_box_id

Widened by the maintainer (2026-10-30): the first run found no channel for the in-VM daemon to receive the id the VM host mints. The guest's report channel (net/listeners.rs) and the wire types (minimald-rpc) are now in the guest layer, so the id can travel host→guest at create without the client relaying it.

Split by the maintainer (2026-10-30): the second run found the client relay in create.rs and dash/rpc.rs, and the whole fix needed 11 layer files, above the 10-file cap. The client layer moved to its own task, which waits on this one; the box_actor test fixtures joined the guest layer. Until it lands the client still sends an id, which the guest now ignores.

Waits on:

Plan block
### T13 — Mint every box's id in the VM host and take it only from there
  slice: S3
  kind: task
  covers: BOX-002
  size: M
  est: 320 code, 240 tests
  executor: agent
  difficulty: unknown ground
  model: strongest
  diagnostics: guest's daemon log names passed id
  observability: guest's create span carries minted id
  layers:
    - vm-host:
      - crates/minvmd/src/control.rs: passes the minted id
      - crates/minvmd/tests/minimald_session_integration.rs: tests
      test (deferred: vm): cargo nextest run -p minvmd vm_host_mints_box_id_before_in_vm_create
    - guest:
      - crates/minimald/src/box_manager.rs: id only from VM host
      - crates/minimald/src/box_manager/tests.rs: tests
      - crates/minimald/src/env.rs: in-box id from record
      - crates/minimald/src/net/listeners.rs: carry the minted id over the guest<->host report channel
      - crates/minimald-rpc/src/lib.rs: the message or reply field that carries the id
      - crates/minimald/src/box_actor/tests.rs: fixtures hand the id over the VM host's channel
      test: cargo nextest run -p minimald guest_create_ignores_a_client_supplied_box_id
  produces: none
  consumes: none
  proof: A box in the VM carries the VM host's minted id.
  depends on:
    - blocked by #2394

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 Oct 19, 2026
  2. mitodrummer commented on Oct 21, 2026

    @mitodrummer
    MemberAuthor

    T45 (#2485) makes BoxId the one type for both ids, but on a VM guest the in-VM store still mints Record::id inside the VM. Its docs name this issue as the owner of that interim. The interim ends when DiskLoader::create keys a record by the handed config.box_id instead of minting one. Two follow-ups from the arch review of #2485 belong here too: give the box_actor test fixtures distinct ids in place of the shared [0x42; 16], and give the duplicate-id refusal its own message rather than "A session with that name already exists".

  3. minimal-foundry commented on Oct 30, 2026

    @minimal-foundry
    Contributor

    Done. #2759 merged.

    branch agent/2397-mint-every-box-s-id-in-the-vm-host-and-take-it-o · epic #2236 · PR #2759

    round outcome job
    1 pushed f340a1f0
    2 pushed 827a0596
    3 pushed d3123203
    4 pushed 905280e8

    Updated 2026-10-30T20:47:37.908Z.

  4. added
    needs-humanAn agent handed off; a human must act, then clear this label. Set by defer and handoffs.
    on Oct 30, 2026
  5. removed
    needs-humanAn agent handed off; a human must act, then clear this label. Set by defer and handoffs.
    on Oct 30, 2026
  6. added
    needs-humanAn agent handed off; a human must act, then clear this label. Set by defer and handoffs.
    on Oct 30, 2026
  7. removed
    needs-humanAn agent handed off; a human must act, then clear this label. Set by defer and handoffs.
    on Oct 30, 2026
  8. mitodrummer commented on Oct 30, 2026

    @mitodrummer
    MemberAuthor

    /dispatch

  9. added
    needs-humanAn agent handed off; a human must act, then clear this label. Set by defer and handoffs.
    on Oct 30, 2026
  10. removed
    needs-humanAn agent handed off; a human must act, then clear this label. Set by defer and handoffs.
    on Oct 30, 2026
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