E2E7 T13 — Mint every box's id in the VM host and take it only from there by minimal-foundry[bot] · Pull Request #2759 · 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 - #2759

Merged
mitodrummer merged 8 commits into
mainfrom
agent/2397-mint-every-box-s-id-in-the-vm-host-and-take-it-o
Oct 30, 2026
Merged

mitodrummer merged 8 commits into
mainfrom
agent/2397-mint-every-box-s-id-in-the-vm-host-and-take-it-o

Conversation

@minimal-foundry
@minimal-foundry minimal-foundry Bot commented Oct 30, 2026 •
Copy link
Copy Markdown
Contributor

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

Proof

A box created in the VM now carries the id that the VM host daemon (minvmd) minted. The in-VM minimald asks minvmd for the id over the guest report door with the new mint_box_id verb, and files the record under the answer. A box with a host row gets its registration's id, so the record id, the record's box_id and the host row name one id. A box with no row gets a fresh UUIDv7 from minvmd. A box id in the create request is ignored on every host. The guest log line "took the box id the VM host daemon minted" names the id that minvmd passed, and the box.create span records it as box_id.

Notes from the agent: Deferred: cargo nextest run -p minvmd vm_host_mints_box_id_before_in_vm_create (lane: vm). (Since run: it passed in CI test-kvm at f1f5d90, see Tests, and it reads minvmd's own mint record.) The file is gated on cfg(minvmd_libkrun), so I compiled a temporary ungated copy once with cargo clippy -p minvmd --test <copy> (exit 0) and deleted the copy. The test checks that the created id is a UUIDv7 and differs from the request's box id. It does not read minvmd's log line.

Files outside the layers, each needed to compile or to file under a handed id:

  • crates/minimald/src/store.rs: the store always minted its own id. I added StoreHandle::create_under(record, id), which keeps the same collision refusal and text. "Run the command again." holds for a handed id too: on a failed create the client withdraws its row, and the next run registers a new row with a new id.
  • crates/minimald/src/rpc.rs: one arm for the new verb in an exhaustive match. The native control socket refuses it like the other box verbs.
  • crates/minimal-client/src/box_registration.rs: one arm for the new reply in an exhaustive match. It is a refusal that the registration did not happen.

crates/minimald/src/env.rs needs no change. The in-box id already comes from the record (launcher with_session_id(record id)), and the record id is now the minted id.

Design facts for the next task:

  • minvmd refuses a mint that names a switch address with no box row. The guest then refuses the create with "the VM…[truncated]

Tests

line exit tail
cargo nextest run -p minimald guest_create_ignores_a_client_supplied_box_id 0 Applying loadouts: default Running task runtime-implement-test-0 in session task-runtime-implement-test-0-e38b... Compiling paths v0.0.1 (/workbench/crates/paths) Compiling ot v0.0.1 (/workbench/crates/ot) Compiling args v0.0.1 (/workbench/crates/args) Compiling client-config v0.0.1 (/wo
cargo nextest run -p minvmd vm_host_mints_box_id_befo 7589 re_in_vm_create (vm lane, CI test-kvm at f1f5d90, MINVMD_E2E=1, job) 0 PASS [ 4.590s] (20/39) minvmd::minimald_session_integration vm_host_mints_box_id_before_in_vm_create · Summary [ 292.474s] 39 tests run: 39 passed, 0 skipped

Verify

min task run agent-verify passed ([tasks.verify]).

Base

The base branch moved while the coder worked and was merged in before the tests ran. These files changed on BOTH sides since the branch point — read them first, because a rewrite from a stale reading can undo a merge without a conflict:

  • crates/minimald/src/box_actor/tests.rs
  • crates/minimald/src/net/listeners.rs

Deferred

None. The vm-lane leg ran in CI test-kvm at f1f5d90 and is in the Tests table.

Out of scope

These files are outside the task's layers:, so this PR is a draft:

  • crates/minimal-client/src/box_registration.rs
  • crates/minimald/src/rpc.rs
  • crates/minimald/src/store.rs

Closes #2397


Undrafted by the maintainer: the three edits outside the layers (crates/minimal-client/src/box_registration.rs, crates/minimald/src/rpc.rs, crates/minimald/src/store.rs) are accepted. They carry the new MintBoxId message and file a record under the VM host's id.

The in-VM daemon asks the VM host daemon for the id of each box it
creates, over the report door, with a new `mint_box_id` verb. The host
answers with the id its registration minted for the box's row, or a
fresh UUIDv7 for a box with no row. The guest files the record under
that id, and ignores any box id the create request carries. A native
host still mints in its own store (BOX-001, BOX-002).
The new VM-lane test creates a box with a box id in the request and
checks that the box comes back with a fresh UUIDv7, never the
request's id (BOX-002). The connect and create steps move into
helpers that the exec test shares.
@mitodrummer
Copy link
Copy Markdown
Member

/revise The maintainer accepted the three out-of-layer edits (crates/minimal-client/src/box_registration.rs, crates/minimald/src/rpc.rs, crates/minimald/src/store.rs); keep them, and keep within the layers plus those three files.

Fix the real-VM regression CI found in test-kvm: crates/minvmd/tests/minimald_session_integration.rs minimald_exec_over_bridge fails on this branch and passes on main. All six attempts get decode response: EOF while parsing a value at line 1 column 0 from run_session_exec (line ~200): the in-VM minimald closes the session connection without replying. The likely cause is the new create path asking minvmd for the id over the guest report door (mint_box_id) when no answer comes back in the bridge setup this test boots (no host row, or the report door is not served / not wired for this verb in that path), so the create fails or the daemon drops the connection. Trace the create in a real guest: make the VM host answer MintBoxId on every path a guest create can take (or make the guest fall back with a clear error rather than dropping the connection), and make minimald_exec_over_bridge pass. Your sandbox cannot boot a VM, so reason from the code and add an in-process test that drives the guest create against a report door that serves MintBoxId, and one where the door is absent, asserting a reply (not EOF) in both.

@minimal-foundry
Copy link
Copy Markdown
Contributor Author

That /revise is held, not dropped. A coder is already running on #2397. Your note is kept and goes into the next round here, which starts when that coder finishes.

Nothing to type again: the command gets a rocket when its round starts, or a refusal that names the reason. No round was counted for it yet.

The in-VM daemon now takes every box id from the guest report door,
which only the supervisor (minvmd run) binds. A bare minvmd boot has
no door, so every create in this harness was refused on the KVM lane.
@coderabbitai
coderabbitai Bot commented Oct 30, 2026 •
Copy link
Copy Markdown
8000 Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b774e7a0-4ed0-4def-9b57-9cab208249e0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@minimal-foundry
Copy link
Copy Markdown
Contributor Author

Round 1 of 10 on a failed check suite, pushed as d4fb58c6711e.

line exit tail
cargo nextest run -p minimald guest_create_ignores_a_client_supplied_box_id 0 Applying loadouts: default Running task runtime-implement-test-0 in session task-runtime-implement-test-0-cba9... Compiling paths v0.0.1 (/workbench/crates/paths) Compiling ot v0.0.1 (/workbench/crates/ot) Compiling args v0.0.1 (/workbench/crates/args) Compiling client-config v0.0.1 (/wo

Verify min task run agent-verify passed.

Outside the task's layers::

  • crates/minimal-client/src/box_registration.rs
  • crates/minimald/src/rpc.rs
  • crates/minimald/src/store.rs

Converted to a draft: something above needs a person before review.

A box that the in-VM daemon creates carries the id that the VM host daemon (minvmd run) minted. The VM harness minimald_session_integration now boots under that daemon, so on the KVM lane vm_host_mints_box_id_before_in_vm_create shows the box id is a fresh UUIDv7 from the VM host, not the id in the create request.

Notes from the agent: Cause of the failed test-kvm check: the CI log excerpt did not show the failed test, so I found the cause by reading the code. minimald_session_integration booted the VM with a bare minvmd boot --foreground. That path holds no box table and binds no guest report door. Since this pull request, the in-VM daemon asks that door for every box id and refuses the create when no answer comes. So every session create in that harness failed, including minimald_exec_over_bridge. Fix: the harness Guest now boots with minvmd run --detach, polls minvmd status --json until Running, and runs minvmd stop on drop. This is the same pattern as egress_allowlist_integration and the other harnesses, which already use run and so already have the door. No other harness creates a session on a bare boot. I cannot run the VM harness on this box (no /dev/kvm). I type-checked the file with RUSTFLAGS="--cfg minvmd_libkrun" cargo clippy -p minvmd --test minimald_session_integration (clean, and a deliberate type error confirmed that the cfg compiled the file). Deferred (lane: vm): cargo nextest run -p minvmd vm_host_mints_box_id_before_in_vm_create. It was not run here. Files from earlier rounds outside the layers stay as they were: crates/minimald/src/store.rs, crates/minimald/src/rpc.rs, crates/minimal-client/src/box_registration.rs. crates/minimald/src/env.rs is still unchanged.

A create whose box id minvmd did not mint returned an io::Error of
kind Other, which the CreateSession handler maps to an internal error
and answers by closing the channel. The client then read an empty
reply (EOF) with no cause, as minimald_exec_over_bridge saw on the
KVM lane. The refusal is now a typed error the handler answers with
its text, and the text names what happened.

The new in-process tests drive the create over the socket against a
report door that serves the mint and against no door, and both get a
reply. The VM harness now prints a refused create's text.
@minimal-foundry
Copy link
Copy Markdown
Contributor Author

Round 2 of 10 on a /revise note, pushed as afba3170f634.

line exit tail
cargo nextest run -p minimald guest_create_ignores_a_client_supplied_box_id 0 Applying loadouts: default Running task runtime-implement-test-0 in session task-runtime-implement-test-0-7afa... Compiling paths v0.0.1 (/workbench/crates/paths) Compiling ot v0.0.1 (/workbench/crates/ot) Compiling args v0.0.1 (/workbench/crates/args) Compiling client-config v0.0.1 (/wo

Verify min task run agent-verify passed.

Outside the task's layers::

  • crates/minimal-client/src/box_registration.rs
  • crates/minimald/src/rpc.rs
  • crates/minimald/src/store.rs

Converted to a draft: something above needs a person before review.

A box created in the VM carries the id that minvmd minted. When minvmd gives no id, the create gets a reply that says why, in place of a closed connection.

Notes from the agent: Cause of the EOF: when the mint failed, the create returned an io::Error of kind Other. serve_create_session (rpc.rs) maps that kind to ConnectionError::Internal and drops the channel with no reply. The CI log points at the harness line from e2652e7 (run_session_exec called at line 192). That version booted the VM with a bare minvmd boot, which binds no guest report door, so every mint failed. Head d4fb58c boots under minvmd run --detach, which binds the door and answers MintBoxId (control.rs). I cannot boot a VM here, so I did not check that head passes on the KVM lane. Fix: the mint refusal is now a typed error (BoxIdNotMinted, box_manager.rs). rpc.rs answers it with Errorable::Err and its text. This is in rpc.rs, one of the three out-of-layer files the maintainer accepted. New printed text: "No session was created. minvmd, which runs this VM, did not give the new session an id: ." The detail is "no box is registered at

" when minvmd refuses (control.rs, reworded from "the VM host daemon holds no box registration at ..."). It is "it did not answer ()" when no door answers. The message gives no next step, because I did not verify one against the code. New tests in box_manager/tests.rs drive CreateSession over the socket against a stand-in door that serves the mint, and against an absent door. Both assert a reply. Their names extend the test line's name, so the test line runs them. The VM harness's create_session now prints a refused create's text, not a generic error. Deferred (lane: vm): cargo nextest run -p minvmd vm_host_mints_box_id_before_in_vm_create, and minimald_exec_over_bridge. I did not run either. Known limit: the mint runs inline in the manager's mainloop. A door that accepts the connection and then stalls can hold other manager req…[truncated]

@mitodrummer
mitodrummer marked this pull request as ready for review October 30, 2026 18:43
@mitodrummer
mitodrummer requested a review from a team as a code owner October 30, 2026 18:43
@minimal-foundry
minimal-foundry Bot commented Oct 30, 2026 •
Copy link
Copy Markdown
Contributor Author

Reviewed: 1 finding, none blocking at f1f5d908c45c.

Address the comments on the diff.

Clobber: none seen in the mint path.

@minimal-arch minimal-arch Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arch-review: PASS_WITH_CONDITIONS · 1 condition · the full ruling

The change conforms to architecture.md line 499. minvmd mints every box id on a VM guest. The in-VM daemon ignores the id in the request and refuses the create when minvmd does not give an id. One proof is open. The VM test vm_host_mints_box_id_before_in_vm_create did not run. It also passes when the guest mints its own UUIDv7. Make it read minvmd's mint record, and run it in the vm lane (C1).

Ruled at afba317 against gominimal/arch@42d214dc8ac8 by claude-opus-5-5.

@minimal-foundry minimal-foundry Bot left a comment
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minimal-review — advisory review

Verdict COMMENT — 3 findings, 3 inline.

Panel: 3 of 3 personas ran (correctness, security, supply-chain).

Comment thread crates/minimald/src/store.rs Resolved
Comment thread crates/minimald/src/box_manager.rs Resolved
Comment thread crates/minimald/src/box_manager.rs Resolved
The mint verb took the switch address from the in-VM daemon's client.
A second create that named another box's address took that box's id.
The VM host daemon now refuses a second mint for one row.

The VM test now reads the supervisor's minvmd.log for the mint record,
so a box id that the in-VM store minted no longer passes it.

The create refusals now say what to do next, and the one for a missing
id no longer names minvmd or splices a transport error.
@minimal-foundry minimal-foundry Bot left a comment
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minimal-review — advisory review

Verdict COMMENT — 1 finding, 1 inline.

Panel: 3 of 3 personas ran (correctness, security, supply-chain).

8BD0
Comment thread crates/minvmd/src/control.rs Resolved
@minimal-arch minimal-arch Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arch-review: PASS_WITH_CONDITIONS · 2 conditions · the full ruling

BOX-002 conforms on this head. minvmd mints every VM box id, and the guest create fails closed without that id. The new row claim stops a guest client from taking another row's id. The VM test now reads minvmd's own log, so it proves line 499 of architecture.md. Two items are open. C1: run the deferred VM test and record its result. C2: correct the mint_box_id doc comment, which still says a mint changes nothing.

Ruled at 8969d21 against gominimal/arch@42d214dc8ac8 by claude-opus-5-5.

Comment thread crates/minimald/src/net/listeners.rs Resolved
@minimal-foundry
Copy link
Copy Markdown
Contributor Author

Round 3 of 10 on the runtime's review findings, pushed as 8969d2155cf7.

line exit tail
cargo nextest run -p minimald guest_create_ignores_a_client_supplied_box_id 0 Applying loadouts: default Running task runtime-implement-test-0 in session task-runtime-implement-test-0-770d... Compiling paths v0.0.1 (/workbench/crates/paths) Compiling args v0.0.1 (/workbench/crates/args) Compiling ot v0.0.1 (/workbench/crates/ot) Compiling client-config v0.0.1 (/wo

Verify min task run agent-verify passed.

Outside the task's layers::

  • crates/minimal-client/src/box_registration.rs
  • crates/minimald/src/rpc.rs
  • crates/minimald/src/store.rs

Converted to a draft: something above needs a person before review.

Review threads the coder judged:

  • 👍 valid — crates/minvmd/tests/minimald_session_integration.rs:353: vm_host_mints_box_id_before_in_vm_create now reads every minvmd.log* under the state dir and asserts a 'minted the box id for an in-V 10000 M create' record with box_id equal to the created id. Not run here: this box has no vm lane.
  • 👍 valid — PRRT_kwDOPdfcxM6yGhTs: The refusal says 'Run the command again.' for a handed id too. The client withdraws its row on a failed create and registers a fresh row, with a fresh id, on the next run, so a re-run does help. (not posted on the thread: not an open thread on the pull request)
  • 👍 valid — PRRT_kwDOPdfcxM6yGhTx: minvmd now gives a row's id to one in-VM create only (claim_row_box_id in control.rs). A second mint for the same switch address is refused with 'the box registered at already has a session'. guest_door_mints_the_box_id_for_an_in_vm_create pins it. (not posted on the thread: not an open thread on the pull request)
  • 👍 valid — PRRT_kwDOPdfcxM6yGhT1: The text no longer names minvmd and does not splice a transport error. A refusal reads 'No session was created. The VM gave the new session no id: . Run the command again.' No answer reads '...: it did not answer in time.' and stops. A trailing full stop in the reason is trimmed. (not posted on the thread: not an open thread on the pull request)

A box created in the VM carries the id that the VM host daemon minted. The VM test now also finds the supervisor's 'minted the box id for an in-VM create' log record with that box_id, so an id that the in-VM store minted fails it. The VM host daemon gives one row's id to one create only.

Notes from the agent: Deferred: cargo nextest run -p minvmd vm_host_mints_box_id_before_in_vm_create (lane: vm). I did not run it on this box. The C1 thread asks for it to run on this head in the vm lane. crates/minimald/src/store.rs is outside the task's layers. An earlier round of this branch changed it, and thread PRRT_kwDOPdfcxM6yGhTs points at it, so this round changed only its refusal text. The one-claim set in control.rs is a process static. A minvmd restart forgets it, but a restart also drops rows that are not reloaded. just clippy-strict was not run.

@minimal-foundry
minimal-foundry Bot marked this pull request as draft October 30, 2026 19:09
@mitodrummer
mitodrummer marked this pull request as ready for review October 30, 2026 19:10
@mitodrummer
Copy link
Copy Markdown
Member

/revise One fix for minimal-review thread PRRT_kwDOPdfcxM6yG1vt (MEDIUM) and arch C2 together. Keep within the layers plus the three accepted files.

The VM host claims a row's id on the first MintBoxId ask (claim_row_box_id / mint_box_id_reply in crates/minvmd/src/control.rs), while the guest's mint_box_id in crates/minimald/src/net/listeners.rs retries up to 5 times when no reply arrives. A lost or late reply then turns a healthy create into a refusal. Make the claim idempotent per create: the guest generates one token per create and sends it on every retry; the host records the token with the claim and answers a repeat ask carrying the same token with the same id, while an ask with a different token for an already-claimed row is still refused (keep the protection arch credited: a row's id goes to one create only). Add tests on both sides: a repeated ask with the same token gets the same id; a different token is refused.

Then rewrite the mint_box_id doc comment (listeners.rs ~line 433, arch C2) to say exactly that: a row's id goes to one create only; a retry of the same create gets the same id; another create asking for a claimed row is refused and fails closed. Touch nothing else.

The in-VM daemon now sends one token per create on every mint attempt.
The VM host records the token with the row's claim. A repeat ask with
the same token gets the same id, so a lost or late reply no longer
turns a healthy create into a refusal. An ask with another token, or
none, for a claimed row is still refused.
@minimal-arch minimal-arch Bot left a comment
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arch-review: PASS_WITH_CONDITIONS · 1 condition · the full ruling

The compare conforms to architecture.md line 499. minvmd still mints every VM box's id, and a retry of one create now gets the same row id. Another create, or an ask with no token, is still refused, so the claim fails closed. One leg is open. The VM-lane test that reads minvmd's own mint record did not run. Run it through just test-vm and record the result, as C1 says.

Ruled at f1f5d90 against gominimal/arch@42d214dc8ac8 by claude-opus-5-5.

@minimal-foundry minimal-foundry Bot left a comment
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minimal-review — advisory review

Verdict COMMENT — 1 finding, 1 inline.

Panel: 3 of 3 personas ran (correctness, security, supply-chain).

Comment thread crates/minimald/src/store.rs Resolved
@minimal-foundry
Copy link
Copy Markdown
Contributor Author

Round 4 of 10 on a /revise note, pushed as f1f5d908c45c.

line exit tail
cargo nextest run -p minimald guest_create_ignores_a_client_supplied_box_id 0 Applying loadouts: default Running task runtime-implement-test-0 in session task-runtime-implement-test-0-235d... Compiling paths v0.0.1 (/workbench/crates/paths) Compiling ot v0.0.1 (/workbench/crates/ot) Compiling args v0.0.1 (/workbench/crates/args) Compiling client-config v0.0.1 (/wo

Verify min task run agent-verify passed.

Outside the task's layers::

  • crates/minimal-client/src/box_registration.rs
  • crates/minimald/src/rpc.rs
  • crates/minimald/src/store.rs

Converted to a draft: something above needs a person before review.

Review threads the coder judged:

  • 👍 valid — PRRT_kwDOPdfcxM6yG1vt: The guest now sends one create_token on every retry of a create. claim_row_box_id answers a repeat ask with the same token with the same id, and still refuses another token or no token. Both sides have tests. (not posted on the thread: not an open thread on the pull request)
  • 👎 invalid — crates/minvmd/tests/minimald_session_integration.rs:356: The finding is correct, but no code change answers it. vm_host_mints_box_id_before_in_vm_create needs the vm lane, and this agent box cannot run it. The runner lists it as deferred, so the vm lane still owes the exit code and the tail.
  • 👍 valid — crates/minimald/src/net/listeners.rs: The doc comment no longer says changes nothing. It now says a row's id goes to one create only, a retry of the same create gets the same id, and another create that asks for a claimed row is refused and fails closed.

A box in the VM carries the VM host's minted id. A retry of the same create after a lost or late mint reply now gets that same id, and a different create that asks for a claimed row is still refused.

Notes from the agent: MintBoxIdRequest has a new optional create_token field. The guest's mint_box_id makes one UUIDv4 token per call and sends it on every attempt. claim_row_box_id in minvmd stores the token with the claim. It accepts a repeat ask only when the token is present and equal. An ask with no token for a claimed row is refused, so an older guest keeps the old fail-closed behaviour. The mint_box_id doc comment now says what the arch thread asked. Deferred: cargo nextest run -p minvmd vm_host_mints_box_id_before_in_vm_create (lane: vm). This box cannot run it, and I did not run it this round. clippy -p minimald-rpc -p minimald -p minvmd --all-targets is clean. I did not run just clippy-strict.

@minimal-foundry
minimal-foundry Bot marked this pull request as draft October 30, 2026 19:47
@mitodrummer
mitodrummer marked this pull request as ready for review October 30, 2026 19:55
@mitodrummer mitodrummer left a comment
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at f1f5d90. The request's box_id is dropped on every host. A VM guest takes its id only from minvmd, through an idempotent per-create claim that fails closed, and a native host mints in the store. The VM leg passed in CI test-kvm. Non-blocking follow-ups are in the walk ledger: the claim goes to the first asker rather than the registrant (same-user crafted request in the register-to-create gap), and the standing snapshot is taken before the claim lock in claim_row_box_id.

@mitodrummer
mitodrummer added this pull request to the merge queue Oct 30, 2026
Merged via the queue into main with commit 21506b7 Oct 30, 2026
36 checks passed
@mitodrummer
mitodrummer deleted the agent/2397-mint-every-box-s-id-in-the-vm-host-and-take-it-o branch October 30, 2026 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

1 participant

0