Gaming VM stack + kind: VM schema (Phase A) — #115 - #119
Merged
Conversation
/doctor flagged "mcp__claude-flow__:*" as an invalid allow rule (stray colon — a wildcard is only valid in the tool position after a literal mcp__<server>__ prefix). Corrected to "mcp__claude-flow__*". Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Scopes a re-deployable, IaC-managed Bazzite (SteamOS-style) gaming VM on desktop-01 with GPU passthrough, adopting the existing VM 1003. See docs/plans/115-gaming-vm-steamos.md. - Schema: tighten kind: VM from permissive into a strict vmSpec (requires vmid), with the novel hostPci[] passthrough def + vmDisk/vmEfiDisk/vmTpmState/ vmCdrom/vmBoot. Add the kind: VM allOf branch. - Model: mirror VmSpec (+ sub-models) in the C# Shapes; drift tripwire extended to vmSpec/hostPci/vmDisk; positive/negative validator tests. 29 tests green. - Stack: stacks/Gaming (VMID block 1000-1099) — stack.yaml + bazzite.vm.yaml (adopts 1003, adds hostpci0: 0000:09:00) + README. Scaffolded locally. The ProxmoxSharp VM write path (Phase B) that provisions this lives in a separate PR: Chrison-dev/ProxmoxSharp#14. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ProxmoxSharp#14 (VM write path) is merged to main (13fe502). Update the vendored submodule pointer to match. The hub builds against the published package, so this is source-vendoring hygiene only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts: # .claude/settings.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scopes & starts the IaC-managed Bazzite (SteamOS-style) gaming VM on desktop-01 with GPU passthrough. Resolves the schema + stack portions of #115. Plan:
docs/plans/115-gaming-vm-steamos.md.In this PR (hub-side, Phase A)
kind: VMtightened from permissive into a strictvmSpec(requiresvmid), with the novelhostPci[]passthrough def plusvmDisk/vmEfiDisk/vmTpmState/vmCdrom/vmBoot, and thekind: VMallOfbranch.VmSpecC# model; drift tripwire extended (vmSpec/hostPci/vmDisk); positive/negative validator tests. 29 engine tests green.stacks/Gaming/(VMID block 1000–1099):stack.yaml+bazzite.vm.yaml(adopts the existing VM 1003, addshostpci0: 0000:09:00) +README.md. Scaffolded locally; promoted to a submodule later.Also includes a one-line drive-by: the
/doctorpermission-rule fix (mcp__claude-flow__:*→mcp__claude-flow__*) as its own commit.Depends on (separate repo)
The ProxmoxSharp VM write path that actually provisions these shapes — Chrison-dev/ProxmoxSharp#14 (built, 25 tests green, live-verified). The hub consumes ProxmoxSharp as a published package, so this PR is independent; the
vendor/ProxmoxSharpsubmodule pointer should be bumped once #14 merges and a preview package publishes.Not in this PR
kind: VMprovisioning wiring into the hub converge engine (uses ProxmoxSharp#14) — a follow-up.+ hostpci0to the live 1003 (Phase C) — deliberately deferred, mutating.🤖 Generated with Claude Code