feat: single-file YAML bundle format, library group import support - #13
Merged
Conversation
Adds a self-contained loadout-config/v1 YAML export/import format alongside the existing directory/tar.gz bundle — small enough to paste into a gist or doc. bundle import auto-detects the input shape by content (gzip magic bytes vs YAML apiVersion), so no new CLI verb is needed. The web UI gets a matching "single YAML file" export option and a "paste YAML" import tab alongside the existing file upload. Along the way, fixes a real gap in the core import path: library groups (library/groups.yaml) were never wired into PlanImport/Apply for any bundle format, since groups postdate the original profiles/library import support. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
StructLint — All checks passed267 rules validated against
|
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.
Summary
--flatbundle export format (loadout-config/v1): one self-contained YAML document, small enough to paste into a gist/doc —bundle importauto-detects it (and dir/tar.gz) by content, no new CLI verb./export(copyable + downloadable) and a "paste YAML" import tab on the dashboard's bundle import panel, alongside the existing archive upload.library/groups.yamlwas never wired intoPlanImport/Applyfor any bundle format (groups postdate the original profiles/library import support) — now new/conflicting groups are diffed and merged like profiles are, across all three bundle shapes.This is PR 4 of 4 in the library-groups/export/flat-YAML sequence (
#9,#10,#11,#12merged earlier). Once this merges andmainis verified green, next step is deleting the v1.4.0 release and cutting a fresh one covering all four PRs.Test plan
go build ./...,go vet ./...,gofumpt -l .,go test -race ./...,make ciall greenmake test-integrationgreen, including a newTestBundleFlow_FlatYAMLmirroring the existing tar.gz round-trip testnpx vitest run,npx tsc --noEmitgreen inweb/make build-web, refreshedinternal/web/distcommitted/export(copy button works), pasted it into a fresh store's dashboard import panel, reviewed the plan, applied, confirmed the skill/library entry/group all landed correctly in the destination store's files🤖 Generated with Claude Code