Repository navigation
Closed
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:strongestThe strongest model available: unknown ground, or large work that needs careThe strongest model available: unknown ground, or large work that needs caresize:L500 to 900 net lines; one PR, and the ceiling500 to 900 net lines; one PR, and the ceiling
Description
Task
| slice | size | difficulty | model | who | estimated lines |
|---|---|---|---|---|---|
| names survive a reboot and a second VM | L | needs care | strongest | an agent | 720 (360 code, 360 tests) |
After a Linux host restarts,
<name>.min.internalresolves without runningmin finalize-installagain, and a second named VM's boxes resolve beside the default VM's on every activation.
Covers:
- NET-027
- NET-122
Layers:
- hook:
- crates/minimal/src/resolver.rs: the Linux names steps install a root-owned systemd unit that re-creates the
minzone0link and itsresolvectlsettings on every boot after systemd-resolved starts, the undo removes it, and the names verdict reads the unit's absence as a missing part of the item (L2) - crates/minimal/src/cmd/finalize_install.rs: the names item names the missing boot unit in its summary
cargo nextest run -p minimal finalize_install_names_missing_items_and_runs_the_scriptcargo nextest run -p minimal finalize_install_undo_removes_what_the_step_installscargo nextest run -p minimal finalize_install_refuses_another_users_servicecargo nextest run -p minimal linux_zone_link_restored_at_boot
- crates/minimal/src/resolver.rs: the Linux names steps install a root-owned systemd unit that re-creates the
- answerer:
- crates/minvmd/src/net/answerer.rs: a VM host daemon that finds the answerer port held waits a bounded window for the holder's interim channel and registers into it, instead of reporting the port held with no channel; exactly one node holds the port when two start together (minimal#2629)
- crates/minvmd/src/control.rs: the answerer status read reports starting until the node's first publish is acknowledged, so an activation never reads a registration in flight as a failure
cargo nextest run -p minvmd second_vm_registers_into_the_running_holdercargo nextest run -p minimald two_daemons_route_hostnames_concurrently
Waits on:
- assumes OQ1 (one host DNS user per machine, the current behaviour; host setup refuses on a host whose installed service names another user)
Plan block
### T119 — Box names keep answering across a reboot and a second VM
slice: S19
kind: task
covers: NET-027, NET-122
size: L
est: 360 code, 360 tests
executor: agent
difficulty: needs care
model: strongest
diagnostics: `min finalize-install --show` lists the boot unit as missing when it is absent, with the content "box names stop resolving after a restart until `min finalize-install` runs again", pinned by finalize_install_names_missing_items_and_runs_the_script; the minvmd log names which node holds the answerer port and which registered into it
observability: one info line when the boot unit re-applies the resolver link, in the system journal; one info line per node registration and one warn line when a node waits past its bound for the holder's channel
layers:
- hook:
- crates/minimal/src/resolver.rs: the Linux names steps install a root-owned systemd unit that re-creates the `minzone0` link and its `resolvectl` settings on every boot after systemd-resolved starts, the undo removes it, and the names verdict reads the unit's absence as a missing part of the item (L2)
- crates/minimal/src/cmd/finalize_install.rs: the names item names the missing boot unit in its summary
test: cargo nextest run -p minimal finalize_install_names_missing_items_and_runs_the_script
test: cargo nextest run -p minimal finalize_install_undo_removes_what_the_step_installs
test: cargo nextest run -p minimal finalize_install_refuses_another_users_service
test: cargo nextest run -p minimal linux_zone_link_restored_at_boot
- answerer:
- crates/minvmd/src/net/answerer.rs: a VM host daemon that finds the answerer port held waits a bounded window for the holder's interim channel and registers into it, instead of reporting the port held with no channel; exactly one node holds the port when two start together (minimal#2629)
- crates/minvmd/src/control.rs: the answerer status read reports starting until the node's first publish is acknowledged, so an activation never reads a registration in flight as a failure
test: cargo nextest run -p minvmd second_vm_registers_into_the_running_holder
test: cargo nextest run -p minimald two_daemons_route_hostnames_concurrently
produces: none
consumes: none
proof: After a Linux host restarts, `<name>.min.internal` resolves without running `min finalize-install` again, and a second named VM's boxes resolve beside the default VM's on every activation.
depends on:
- assumes OQ1 (one host DNS user per machine, the current behaviour; host setup refuses on a host whose installed service names another user)
Reacted by minimal-foundry
Metadata
Metadata
Assignees
Labels
kind:taskA task the plan skill rendered; the body carries ## TaskA task the plan skill rendered; the body carries ## Taskmodel:strongestThe strongest model available: unknown ground, or large work that needs careThe strongest model available: unknown ground, or large work that needs caresize:L500 to 900 net lines; one PR, and the ceiling500 to 900 net lines; one PR, and the ceiling
Activity
minimal-foundry commentedon Oct 28, 2026
Done. #2722 merged.
branch
agent/2700-box-names-keep-answering-across-a-reboot-and-a-s· epic #1437 · PR #272299a97919c134b052Updated 2026-10-29T01:40:28.239Z.