feat(recipes): seed the index with caddy - #139
Merged
Merged
Conversation
The index shipped with an empty [recipes] table, so add_recipe, update_recipe and remove_recipe had no name to resolve and no coverage past their argument guards. Add the caddy entry and cover the three tools' core paths: index-name resolution, the bundled-name collision, ref repinning, and the in-use removal refusal with its force path. A name that repeats a bundled recipe is unreachable from add_recipe, which passes no force, so index.toml and the sharing guide both state the rule. core.Update set agent_access without recomputing allow_exec, so a VM raised to exec reported allow_exec false to every wire reader while exec itself worked. Create already derives one from the other. Signed-off-by: NovusEdge <novusedge0@gmail.com>
|
Warning Review limit reachedNext included review available in 24 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (9)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Signed-off-by: NovusEdge <novusedge0@gmail.com>
NovusEdge
marked this pull request as ready for review
September 12, 2026 22:39
Restore and DeleteSnapshot passed the tag straight to qemu, which answered an unknown one in its own prose. That reached a caller as the internal code, which reads as a fault in stoat rather than a typo. Both check the tag against the VM's snapshots first and name the tags it does have, since a wrong tag is usually a typo of a right one. Signed-off-by: NovusEdge <novusedge0@gmail.com>
Signed-off-by: NovusEdge <novusedge0@gmail.com>
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.
Why
index.tomlshipped with an empty[recipes]table. No index name resolved, soadd_recipe,update_recipeandremove_recipehad no coverage past their argument guards, and the project-workflow guide had to tell readers the index was empty.What
index.tomlgains acaddyentry pointing atNovusEdge/stoat-recipe-caddy.internal/corecover the three tools' core paths: index-name resolution, the bundled-name collision, ref repinning, and the in-use removal refusal with its force path.docs/recipes/sharing.mddocuments how to publish an entry.docs/guides/project-workflow.mdno longer says the index is empty.core.Updatenow keepsallow_execin step withagent_access.The allow_exec bug
core.UpdatesetAgentAccesswithout recomputingAllowExec.stoat update <vm> --agent-access execleftvm.tomlwithagent_access = "exec"andallow_exec = false, breaking the invariant stated atinternal/core/core.go:293. Enforcement readsAgentAccess, so exec worked; the stale value reached readers of the legacyallow_execfield, which every MCP VM payload still carries. Found by raising a test VM to exec and readingvm_statusback.The bundled-name rule
CheckCollisionrefuses an index name that repeats a bundled recipe, andadd_recipepasses no force. An entry namedtailscale,docker,xfce,devtools,build-deps,pkg-tools,python-devorservice-toolsis therefore unreachable from an agent. Bothindex.tomland the sharing guide state it.Testing
The recipe ran on a real Ubuntu 24.04 cloud VM: package installed from noble universe,
caddy.serviceenabled and active, generated Caddyfile in place,curl localhost:8080returning 200 with the expected body, both outputs recorded, healthok, and all of it intact across a stop/start.add,update,updatewith no name, andrmwere driven through the CLI against a local index repo before the Go tests were written.Draft until the recipe repository is public
The entry's
sourcedoes not resolve yet. Merging beforeNovusEdge/stoat-recipe-caddyexists would makestoat recipe searchlist a name thatstoat recipe addcannot install.