Conversation
README.md: - Add architecture diagram showing user → fcvm → VM → container flow - Add missing musl-tools and rustup target installation steps - Use consistent ./fcvm symlink throughout all examples - Remove unnecessary sudo (only for setup, bridged, privileged) - Reorganize: one-shot example first, then long-lived service - Rename "Run a Container" to "More Options" to avoid duplication - Add success indicators (→) showing expected output - Make advanced demos use rootless mode for consistency Makefile: - Auto-detect Rust toolchain bin directory for hosts where cargo is not in PATH but ~/.rustup/toolchains/*/bin exists - Prefer stable toolchain (has musl target) over nightly - Use $(CARGO) variable throughout for consistency src/state/manager.rs: - Change state file permissions from 0600 to 0644 so non-root users can run ./fcvm ls without sudo
The state manager intentionally uses 0o644 (world-readable) permissions so non-root users can list VMs. The test was expecting 0o600. Tested: make test FILTER=state_persistence (passes)
Users may not have Rust installed. Add the standard rustup install command before the musl target setup.
🔍 Claude ReviewSEVERITY: critical Lint FailedThe Lint CI check has failed. Clippy found the following issue: [CRITICAL] Unreachable code in test_ctrlc.rs:100
Action Required: Please fix the lint error before this PR can be reviewed. You can either:
Review by Claude | Run |
State files are world-readable (0o644) so non-root users can list VMs. Storing environment variables in state creates a security risk since env vars often contain secrets (API keys, passwords, tokens). The env field was unused - env vars are passed directly to MMDS at VM start time and never read back from state. - Remove config.env field from VmConfig struct - Remove vm_state.config.env assignment in podman.rs - Update test JSON to not include env field - Add comments explaining why env is not stored
🔍 Claude ReviewThe Lint check has failed on this PR. Please fix the linting issues before I can perform a review. To fix locally, run: cargo fmt --check
cargo clippy --all-targets -- -D warningsReview by Claude | Run |
🔧 CI Auto-FixCreated fix PR: #126 The issue was an unreachable expression after the |
Follow-up to removing env field from VmConfig - tests were still referencing the deleted field.
Tests that SIGINT sent via terminal interrupt character (^C/0x03) through a PTY is properly received by fcvm's tokio signal handler and triggers clean VM shutdown. This verifies the fix from PR #108 (TTY handling) works correctly when Ctrl+C is pressed in a real terminal context. Tested: make test FILTER=ctrlc (passes in ~7s)
🔍 Claude ReviewSEVERITY: blocked Cannot ReviewLint check failed. Please fix lint issues before review can proceed. View the failing check: https://github.com/ejc3/fcvm/actions/runs/20740266514/job/59545534589 Next Steps
Review by Claude | Run |
🔍 Claude ReviewSEVERITY: none CI Check FailedThe Host check has failed. Please fix the failing test before I can review this PR. Review by Claude | Run |
🔧 CI Auto-FixCreated fix PR: #128 IssueThe FixChanged to |
🔍 Claude ReviewSEVERITY: low Findings[LOW] Makefile RUST_BIN detection could fail silently
SummaryPR adds comprehensive Ctrl+C testing via PTY terminal handling and includes several quality improvements: security fix (removing env vars from world-readable state files), usability enhancement (allowing non-root Review by Claude | Run |
Add test for Ctrl+C via PTY terminal handling
Add test for Ctrl+C via PTY terminal handling
Summary
This validates the TTY handling fix from PR #108 works in real terminal contexts.
Test