spin v0.0.1-alpha
Pre-release
Pre-release
spin v0.0.1-alpha
Released 2026-07-15T23:44:27Z.
Changelog
- 86a6c40 .planning update
- 317fc70 Add task install target for local development
- 6f79af6 Add terminal-aware table rendering with auto-truncation
- 7468efd Block scaffolding when template requires a newer spin version
- 9cb0a95 Build test binary once and reuse across all integration tests
- a5255b1 Create govulncheck.yml
- d33c731 Fix broken symlinks for relative local paths and validate templates at pin time
- ea3845e Flatten CLI error messages to zero-level and document the convention
- 76b36c6 Improve terminal table display with column separators and ~ path shorthand
- cdfd371 Prevent git clone tests from hanging for 2 minutes
- 7cf071f Remove version field from spin.toml and wire min_spin_version to all load paths
- 6101677 Wire git describe output into spin version at build time
- ccc8380 added better docs to use with docus (i may remove it later)
- 9885709 another fix on goreleaser >:
- 2c336bb bump
- 1975303 charm: promote bubbletea/v2 to a direct dependency
- 8c82071 chore(02): gofumpt formatting + Phase 2 closeout
- ebc6090 chore(04-01): promote charm.land/lipgloss/v2 to direct dep
- 0d372bf chore(04-05): strip generated-by markers from 26 .tmpl files per D-12
- 343a1c4 chore(deps): add charm.land/log/v2 for structured logging
- 95b6fe4 chore(deps): bump charm.land/lipgloss/v2 from 2.0.3 to 2.0.5
- 6c4e402 chore(deps): bump golang.org/x/text from 0.24.0 to 0.40.0
- 1e8d8d2 chore: add project config
- 86cca5c chore: add trailing newline to internal/version/doc.go
- e67b0e4 chore: merge Plan 02-05 worktree (template restructure + walker substitution)
- 73ff988 chore: merge executor worktree (worktree-agent-a0bb80fd652e968c2)
- 7e36846 chore: merge executor worktree (worktree-agent-aa49889d557bf80a1)
- 8cfd101 chore: merge quick task 260604-7jt worktree (drop glow + modifiers)
- 2b95acb chore: remaining infrastructure and utility changes
- 9adbbf3 chore: remove unused dogfood workflow and v1-leak grep script
- b7b6013 chore: remove unused taskfile targets and scripts
- 811692f chore: switch license from MIT to Apache 2.0
- 24df007 chore: update Go toolchain to 1.26.5
- 39f8136 chore: update linter to v2 format, add Taskfile fmt task, fix goreleaser install path
- c215d8e ci(04-06): add dogfood + base CI workflows and dependabot
- 674be8b ci(04-06): add dogfood smoke-test script
- 3ffe957 ci: update workflows to Go 1.26.5, add fmt/tidy/staticcheck/install checks
- 6bd5cf2 docs(01): add code review report
- 04c7759 docs(01): add phase verification report
- 058c4d2 docs(01): create phase 1 plan — scaffolder foundation + core TUI stack
- bad2dd5 docs(01): track wave 1+2 plan completion
- 0672353 docs(01-01): complete walking skeleton plan summary
- ae0b574 docs(01-02): complete plan 02 summary
- 445e5d9 docs(01-03): complete template engine + full TUI scaffold plan
- 83ab252 docs(01-04): complete CI grep suite + integration test + repo polish plan
- 1d2a377 docs(02): add code review report
- 108af1c docs(02): research + 4 plans + plan-check report (CLI variant + wrappers + libs + external templates)
- 34aa270 docs(02): update VERIFICATION status to verified (WR-010 fixed)
- 4b702e6 docs(02-01): add plan summary (foundation refactor)
- eca3a14 docs(02-02): add plan summary (post-executor recovery)
- 285cee1 docs(02-03): add plan summary (post-quota recovery)
- 561cd64 docs(02-04): add plan summary
- 9d392d6 docs(02-05): plan + summary + verification addendum; update 03-04 for new layout
- c16b099 docs(03): UI design contract
- 4c58289 docs(03): add code review report
- b2a4c24 docs(03): add phase verification report
- 5877940 docs(03): create phase plan
- f9f2ced docs(03): research phase 3 — interactive prompts + AGENTS.md
- 40ab4a7 docs(03-01): add plan summary
- b053507 docs(03-02): add plan summary
- 7446d3b docs(03-03): complete gum shell-out backend plan
- 5900aaa docs(03-04): complete AGENTS.md + --ai flag plan
- ea2d981 docs(04): capture phase context
- b88d849 docs(04): create phase 4 plan — 6 plans in 4 waves (post-scaffold health + dogfooding)
- 42dde6d docs(04): create phase plan
- 7e5e8d8 docs(04): mark phase 4 complete in STATE + ROADMAP
- 7ca150c docs(04-01): complete spin doctor plan
- b076488 docs(04-02): complete spin lint plan
- db6ee5f docs(04-03): complete spin update engine plan
- 7b56d05 docs(04-04): complete plan summary
- 6a2b56e docs(04-05): complete plan summary
- 5d9267a docs(04-06): complete CI dogfood plan summary
- cce1905 docs(05): add CONTEXT.md from conversation
- 31eb1be docs(05): add code review report
- bd03b34 docs(05): add loader.go to plan 04 task 3 files (cloner field)
- 935a161 docs(05): complete phase execution
- 7ac97c3 docs(05): create phase 5 plan (4 plans, 2 waves)
- 26e8773 docs(05): create phase plan
- e5c6853 docs(05): evolve PROJECT.md after phase completion
- 55c7439 docs(05): revise plans per plan-checker feedback
- b71ed9f docs(05-02): complete ecosystem dispatch + template loader plan
- 10bbf9a docs(05-02): update STATE.md and ROADMAP.md after plan 05-02
- 0de7ac0 docs(05-03): complete registry client hardening plan summary
- c39fc55 docs(05-04): complete runner integration plan summary
- 0234035 docs(260604-7jt): pre-dispatch plan for remove glow + modifiers
- 26ea3b3 docs(quick-260604-7jt): remove glow library + modifiers flag from spin
- 436ef67 docs(research): synthesize v2.x local-registry research
- d759fa8 docs(state): record phase 04 context session
- 7361cf3 docs: create roadmap (4 phases)
- c64acc6 docs: create v2.x local-registry roadmap (3 phases)
- 954f57f docs: define v1 requirements
- c67e93b docs: define v2.x local-registry requirements
- 42c4ced docs: initialize project
- 83db6b7 docs: minor CONTRIBUTING.md update
- 311abf3 docs: research charmbracelet v2 ecosystem for spin
- 91c255c docs: rewrite README to be minimal and human-readable
- 1862871 docs: start milestone v2.x local-registry
- 03479c9 docs: update README, remove CLAUDE.md and PRD.md, add AGENTS.md and spin-registry.md
- 2d0bedc feat(01-01): scaffold engine with Project struct, embed walker, and render pipeline
- 83c02af feat(01-01): spin binary scaffold (go.mod + main.go + cmd/root.go + cmd/new.go)
- 5b779a1 feat(01-01): walking skeleton end-to-end smoke test
- bf3ef3b feat(01-01): walking skeleton templates (_base + variant_tui + lib/bubbletea)
- 86ccb74 feat(01-02): VerifyBuild smoke test + GitInit (env-guarded)
- b823e89 feat(01-02): expand Project struct + ResolveFlags for full flag binding
- cad2eee feat(01-02): validate project name regex + dir conflict + --force
- 77cecc0 feat(01-02): wire fang version + flag-error suggestions (SCAF-07, FLAG-18)
- 624c234 feat(01-03): full TUI variant + lib overlays + Phase 2/3/4 stubs
- 16cd4fa feat(01-03): refactor template engine to overlay composition
- 7fd46bf feat(01-03): ship .air.toml, Taskfile.yml, LICENSE templates, expanded README
- 8be935f feat(01-04): CI grep suite for v1 charmbracelet API leaks
- 3a3eec2 feat(01-04): TOOL-05 integration test — full scaffold + build + test + grep
- 6359aac feat(01-04): spin repo polish — README, .gitignore, .golangci.yml, LICENSE
- 66bf45f feat(02): add 5 wrapper cobra subcommands (run, build, test, vet, fmt)
- 4652591 feat(02): add 7 lib overlays (huh, glamour, wish, log, harmonica, glow, viper)
- 0dc05ce feat(02): add CloneTemplateRepo for --template-repo
- c4c1738 feat(02): add ExternalDir + KeepTemplateCache to Project
- de04d9b feat(02): add check-air-bin.sh + check-taskfile-setup.sh + wire into grep-v1-leaks
- fcf4025 feat(02): add internal/wrap package with ToolSpec + RunWithFallback
- fd8f6c2 feat(02): add templateFS interface + currentFS for external template override
- f20af52 feat(02): add wrap.Build producing bin/ with CGO_ENABLED=0
- 91eeee5 feat(02): add wrap.Run with air/ go run fallback
- 0f297dc feat(02): add wrap.Test with prism Go-1.24+ detector
- 54f8ace feat(02): add wrap.Vet and wrap.Fmt (gofumpt → goimports → gofmt chain)
- 3ee4929 feat(02): bump all 11 charmbracelet pins to latest stable
- 0f194f5 feat(02): extend air include_ext to watch md and mod files
- 97a8633 feat(02): extend go.mod and README with 9 new lib require entries + glow note
- c9832e2 feat(02): refactor walker to currentFS + add 7 FuncMap helpers for Phase 2 libs
- 9e8d2c5 feat(02): ship variant_all template (TUI + CLI combo with tui and hello subcommands + viper wiring)
- d5507ba feat(02): ship variant_cli template (cobra root + fang + hello subcommand + viper wiring)
- 0efa836 feat(02): simplify go directive to 1.25.0 for all generated projects
- 064ef06 feat(02): wire --template-repo and --keep-template-cache flags
- 97479c6 feat(02): wire 6 new lib overlays into variant_tui main.go via hasX blocks
- 8432139 feat(02-05): All variant restructured layout (combines TUI + CLI)
- 163d1d4 feat(02-05): CLI variant restructured layout (cmd/name + internal/cmd + internal/ui + internal/config)
- 91a8baa feat(02-05): TUI variant restructured layout (cmd/name + internal/app + internal/ui)
- cbf9414 feat(02-05): drop obsolete lib/* overlays; keep only lib/glow
- 9184ef8 feat(02-05): walker substitutes name -> p.Name in output path
- f86aeda feat(03-01): add internal/prompt skeleton with Canceled error + Fill stub
- 6a41b1d feat(03-01): implement three-layer TTY + CI guard in IsInteractive
- 8601b8d feat(03-01): map *prompt.Canceled to exit code 130 in main.go
- 595c3ff feat(03-01): wire --no-interactive/--yes/--batch; relax Args; add prompt.Fill chokepoint
- 3c857c9 feat(03-02): add Library catalog (13 charm libs) + LibsForType
- 39194c6 feat(03-02): add Project.AllLibs() — union of p.Libs and per-lib bools
- aa18a53 feat(03-02): implement huh v2 form layer — 8 ask* functions + fillWithHuh
- 1a4e8d8 feat(03-02): wire Fill to dispatch to fillWithHuh + nil-guard
- 982d2d6 feat(03-03): add resolveBackend() and wire Fill to dispatch to gum-or-huh
- 8037dc9 feat(03-03): implement gum shell-out backend
- 87d7187 feat(03-04): add --agents alias for --ai flag
- cc33a7a feat(03-04): add charmLibInfo, allLibs FuncMap helpers + ai overlay key
- b483b22 feat(03-04): add lib/ai/AGENTS.md.tmpl template
- 5c867e8 feat(04-01): add human + JSON renderers and Run() exit-code tests
- 133f659 feat(04-01): add internal/doctor package with 4 universal checks + orchestrator
- ef07af7 feat(04-01): wire
spin doctorcobra subcommand with 4 flags - 5a1f6e0 feat(04-02): add wrap.Lint — golangci-lint detect + passthrough + install hint
- b5d93b9 feat(04-02): wire
spin lintcobra subcommand with argv passthrough - eb3c989 feat(04-03): add internal/update apply layer — go get + tidy + CGO=0 build
- 1da0da7 feat(04-03): add internal/update parse layer — go.mod reader
- 6209722 feat(04-03): add internal/update resolve layer — proxy version picker
- bc5f04e feat(04-04): huh v2 form for
spin updatewith non-TTY table fallback - 397259a feat(04-04): wire
spin updatecobra subcommand with --all flag - 84ada31 feat(05-01): add rust ecosystem package skeleton (flags, struct, detector, validate)
- 157ab0d feat(05-01): implement Render, PostScaffold, and Tasks for rust
- 30a4428 feat(05-01): register rust ecosystem and add
spin new rustcobra subcommand - 549ec71 feat(05-02): external template loader upgrade + v2 dispatch end-to-end
- 1d1fe82 feat(05-02): one-time deprecation notice + ecosystem dispatch in cmd/new
- c20a4ef feat(05-03): harden registry client + add 11 unit tests
- e9a2c29 feat(05-03): wire cmd/add (clone-or-pin) and cmd/list (show local path)
- 5445602 feat(05-04): inject ecosystem tasks into runner source chain
- 09e40eb feat(05-04): wire --json for list/explain, add Task.Env, add runner tests
- 6e48f61 feat(cmd): add hook flags, trust prompt, context-aware loader, fix tryAutoPin
- 7e00949 feat(cmd): add interactive TUI for spin new
- 68ce6fd feat(params): sort params alphabetically and add textarea placeholder
- 6b023d7 feat(registry): Phase 6 manager + spin registry CLI + registries.json
- f16cbc7 feat(registry): Phase 7 index reader + resolver + rewire search/add
- a54c14a feat(registry): Phase 8 delete HTTP client + docs
- 537811a feat(search): include pinned templates in spin search results
- cdcfd90 feat(template): add [[include]] rules, _pre/ hooks, multi-file hook dirs, has/not_has/one_of helpers
- 5fbc649 feat(template): support ** globs, remove redundant os.Stat, pin-aware shorthand
- 2fe4f03 feat: create internal/spec and internal/log packages
- 1cba7a9 fix on release workflow
- 797aa5d fix(01): CR-001 --tui implies --bubbletea in ResolveFlags
- df6158c fix(01): CR-002 validate --license against a whitelist (mit, apache-2.0, none)
- 15c2284 fix(01): WR-001 rename forward-compat lib//README.md.tmpl to LIBS.md.tmpl
- 6802338 fix(01): WR-002 move log.SetDefault out of init() into New() / InitLogger
- 0662308 fix(01): WR-003 drop duplicate Project.Validate() call from scaffold.New()
- 4a99a22 fix(01): WR-004 widen isUnknownFlagErr to catch "unknown switch" + bare flag
- 8d8e1a0 fix(02): CR-001 wish template fix (initial + signal-aware Shutdown)
- 09bf13f fix(02): CR-004 CR-005 add -- separator, leading-dash guard, and clone timeout
- 605a55a fix(02): WR-001 use golang.org/x/mod/semver.Compare for version check
- 5164e6d fix(02): WR-002 use errors.Is(err, io.EOF)
- a930de6 fix(02): WR-005 WR-006 replace chdirTo with t.Chdir, drop time import
- a57d509 fix(02): WR-007 drop _ = errors.Is hack and unused import
- e52f89b fix(02): WR-008 delete indexOf, use strings.Index
- 1094cf6 fix(02): WR-010 reject explicit empty --template-repo
- 8cf36e1 fix(02): refine v1-leak grep to per-module deny-list (allow harmonica + glow)
- 9585618 fix(02): reject template output paths that escape the project root
- 6c4a792 fix(02): remove --cli/--all Phase 2 rejection now that templates exist
- 45d84c7 fix(02): walker overlays for active bool flags (--viper, --cobra, etc.)
- d76baa4 fix(02): walker root prefix + missing-file wording; accept file:// template repo
- d8c2b1b fix(02-05): drop v1 tea.WithAltScreen + merge all-variant styles struct
- 7cc09c1 fix(02-05): hoist time import in update.go.tmpl out of bubbletea OR-block
- 124697a fix(blockers): B1-B6 from pre-push audit
- 233b808 fix(install): fix API failure handling, add go install fallback
- 08e9b48 fix(nice-to-have): N3, N4 from pre-push audit
- bd7265b fix(params): capitalize non-number validation message
- 79b9525 fix(registry): remove GitHub shorthand expansion from Client.Add()
- b9e7bd5 fix(registry): stamp PinnedAt inside Add(), remove unused ctx from writers
- 7c5daac fix(should-fix): S7, S8 from pre-push audit
- ee436d0 fix(template): expand ~ home prefix in Detect
- 5c9edf3 fixing the temporary domain to the correct one.
- e779f1a formatting
- 0b67ebb formatting.
- 8ed8fbf github workflow enhancements and goreleaser
- 97a10bf merge(04-01): spin doctor — 4 universal checks, --format/--strict/--deep/--fix
- a128a9d merge(04-02): spin lint — golangci-lint wrapper with argv passthrough
- 4dfba0a merge(04-03): spin update engine — parse/resolve/apply
- caf0e2e merge(04-04): spin update form + cobra subcommand
- 760198f merge(04-06): CI dogfood — workflow + reusable script
- a8baff5 pivot(v2): external templates only
- f27f348 refactor(02-05): split bool->name map; filter overlayOrder by surviving overlays
- 5995f3f refactor(03): aggressive comment diet — 67% fewer comment lines
- 8250f52 refactor(03): apply all 13 code-review findings inline
- 0b90bba refactor(params): add SetDefault() to Param interface, simplify SetDefaults
- 985862d refactor(params): add Value.Kind discriminator, fix zero-value bug, remove dead code
- 3234b1e refactor(quick-260604-7jt): drop --glow and --modifiers source code
- 2630bca refactor(quick-260604-7jt): drop readme subcommand, lib/glow/ overlay, and glow-related test fixtures
- 8e2b2eb refactor(registry): use internal/spec and internal/log, clean up error messages
- 351ff5a refactor(templates): drop "DO NOT EDIT" from generated headers
- 9c83fd9 refactor: aggressive comment diet — 12 files, 628 lines of comments removed
- 11c217b refactor: remove %w error chaining that produced colon-heavy messages
- 8d40c2b refactor: strip plan-anchor comments from source + tests
- c940e32 release: remove homebrew tap, trim changelog filters
- bf7556a remove outdated plans files to make better new ones
- 8ccd390 staticcheck (ST1005) error fix <:
- a2618a9 stdlib modernize.
- f2ff0fa test(02): add tests for templateFS, CloneTemplateRepo, and new flag binding
- 3905efe test(02): integration tests for 5 wrapper subcommands
- a278437 test(02): unit tests for all 5 wrappers + 2 new grep scripts
- 58274c7 test(02): update tests for new pins, 1.25.0 always, and traversal guard
- 6580bc3 test(02-05): adjust existing tests for new layout
- 1f55bc2 test(02-05): integration tests for restructured layout + walker substitution
- 42bd3bd test(03-03): gum arg construction + fillWithGum writeback + cancel tests
- c9d1c89 test(03-04): unit + integration tests for AGENTS.md and --ai
- 00e870a test(04-05): assert no AUTOGENERATED markers per D-12 strip
- 64d0e8e test(05-02): registry unit tests + verify defaultRegistry is single source of truth
- d3d984d test(05-04): add unit tests for params and template loader
- 6e39cdc test: add comprehensive tests and benchmarks for core paths
Install
go install github.com/N1xev/spin@v0.0.1-alpha
Or download a binary below.