docs(spec-ssh-host-key-in-beacon): feat(minvmd): include SSH host public key in the ready beacon - #579
Conversation
Light spec for #467: extend the minvmd ready-beacon wire format from one line (READY\n) to two lines (READY\n<openssh-pubkey>\n) so minvmd can pre-populate known_hosts on the host before the first SSH connect. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughAdds a spec for extending the READY beacon so ChangesSSH host key beacon spec
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related issues
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/specs/06-spec-ssh-host-key-in-beacon/06-spec-ssh-host-key-in-beacon.md`:
- Around line 43-45: The SSH host-key beacon flow needs an inverse compatibility
guarantee in the guest-side spec: if the host only waits for READY and does not
consume the second line, the guest must treat a failed second-line write as
best-effort and continue booting. Update the spec wording around the beacon
handshake to explicitly cover this additive-protocol case, alongside the
existing malformed-or-missing key behavior, so the guest-side write path never
turns compatibility into a boot failure.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 2ba7ba92-3d0c-49fd-a671-ad2661b7d82a
📒 Files selected for processing (1)
docs/specs/06-spec-ssh-host-key-in-beacon/06-spec-ssh-host-key-in-beacon.md
This comment has been minimized.
This comment has been minimized.
|
/revise address code rabbit concerns |
… R-IDs Move function names, file paths, and Rust API calls out of requirement bodies; each R-ID now states the observable behavior only. The specific implementation details (emit_ready_marker signature, from_openssh call, learn_known_hosts_path invocation, create_dir_all, tracing::warn!) are preserved in the Design Considerations section where they belong. Addresses the gate 2 (implementation leakage) warnings from sdd-validate and the CodeRabbit review noting that R-IDs contained code-level detail.
sdd-validate findings — spec boundaryResolved boundary: Spec (file added: Gate 1 — Acceptance criteria testable ✅All R-IDs (R1.1, R1.2, R2.1–R2.5) state observable outcomes. No finding. Gate 2 — No implementation leakage
|
Summary
This is the spec pull request for #467 — extending the minvmd ready-beacon protocol to carry the VM's SSH host public key, so the host can pre-populate
known_hostsbefore the first SSH connection.Demoable Units
Unit 1 — Beacon enrichment (minimald, guest side)
emit_ready_marker()emitsREADY\n<openssh-pubkey>\nemit_ready_marker()Unit 2 — Key reception and known_hosts write (minvmd, host side)
boot.rsandrun.rsread the second beacon lineproviders/local-0/known_hostsvialearn_known_hosts_pathproviders/local-0/directory hierarchy is created before the writerusshpromoted from dev-dep to production dep inminvmd/Cargo.tomlFiles in scope
crates/minimald/src/guest.rscrates/minimald/src/main.rscrates/minvmd/src/cmd/boot.rscrates/minvmd/src/cmd/run.rscrates/minvmd/Cargo.tomlNext step
Merging this spec PR returns the tracking issue #467 from
sdd:fastpath-reviewtosdd:fastpath. After the merge, comment/approveon the tracking issue to dispatch the implementation — or comment/approvenow (while this PR is open) to record the approval and let the merge dispatch automatically. Merge and approve commute (ADR 0024).Closes #578
Summary by CodeRabbit