Releases
v0.4.9
Compare
Sorry, something went wrong.
No results found
Changelog
4659a75 Add --skip=validate to goreleaser release args
3bdc84e Add .env, *.log, and Claude local settings to .gitignore
b5642fd Add CLAUDE.md with branch naming conventions
355c870 Add CLI colorization via fatih/color
4f25a41 Add README, deferred task list, and update CLAUDE.md
9858464 Add WIP design spec and package manager doc to .claude/docs/
69b0189 Add auto patch release workflow on main push
8972eb2 Add composability parity design goal to suite spec
f102b1b Add docs/ directory and note it in CLAUDE.md
5ccaa7e Add dotd env list/get/set and env.SaveEnvFileToPath
8af68b3 Add dotp spec: @require/@request , installed()/installable(), packages.yaml
e96c8e6 Add implementation plan: 5 phases from repo bootstrap to orchestrator
eb6ab3a Add package manager fragmentation to problem statement
7d76174 Add per-tool GoReleaser release infrastructure
c5ec171 Add script source order problem to intro
c6d6dc5 Add spec review doc, project settings, and deferred design tasks
dc103a0 Add specv2: dotr suite architecture design
951b6dc Add structural spec: monorepo layout, internal packages, FileSet, I/O boundary
bd3ef00 Add token efficiency guidelines to CLAUDE.md
3c9397c Apply spec review resolutions across all spec files
0a2d157 Clarify work/personal coexistence bullet
159f186 Clean up TODO: close repo rename item, keep dotp spec open
b755261 Color cobra help output: bold headers, cyan commands and flags
4d1d3ad Defer CI/PR template setup to TODO
ffedaec Document release process in CLAUDE.md; fix README install URL
90d6adc Document trunk-based branching strategy and naming conventions
424032e Downgrade go.mod to Go 1.24 to fix lint CI
455f59b Expand conventional solutions: add numbered prefix example
561b74a Fix GoReleaser semver: set GORELEASER_CURRENT_TAG to VERSION
a796c9b Fix all golangci-lint v2 errors
b6f97f8 Fix golangci-lint version: use v2.11.4 (supports go 1.25)
04632fd Fix lint: use golangci-lint v2, accept go 1.25 toolchain bump
d4ce53e Fix missing VERSION env var in auto-release goreleaser invocation
f8b6dcf Fix missing color in dotd apply verbose/dry-run output
d1b4a54 Fix per-tool GitHub release naming to prevent tag collision
a45492f Fix remaining errcheck: defer close and error-path Remove
2445b67 Fix standalone mode: dotl and dotp use unconditional walk
262ce0d Guard against duplicate release creation in auto-release
bfae630 Implement @retain-prefix: skip dot- transformation on last path component
d1dd231 Mark phases 1-3 complete in TODO
9ca75e9 Merge branch 'feature/claude-phase-1-foundation' into feature/claude-phase-3-walk-fileset-v2
7c7e707 Merge pull request #1 from rocne/feature/claude-phase-5-cmds
8e79b56 Merge pull request #10 from rocne/feature/claude-goreleaser-release-names
fc15c77 Merge pull request #100 from rocne/feature/claude-json-output
e1a2ef6 Merge pull request #101 from rocne/feature/claude-setup-noninteractive-quiet
d4ce89c Merge pull request #102 from rocne/feature/claude-ux-polish
7d7dda1 Merge pull request #103 from rocne/feature/claude-flag-visibility-readme
5b5db77 Merge pull request #104 from rocne/feature/claude-env-show-exit-codes
691e8d4 Merge pull request #105 from rocne/feature/claude-code-quality-cleanup
901b247 Merge pull request #106 from rocne/feature/claude-untrack-working-docs
5b01d58 Merge pull request #107 from rocne/feature/claude-docs-truth-pass
a26c6eb Merge pull request #108 from rocne/feature/claude-init-noninteractive
f594f32 Merge pull request #109 from rocne/feature/claude-output-polish
7bd6002 Merge pull request #11 from rocne/feature/claude-goreleaser-gh-publish
ae944d8 Merge pull request #110 from rocne/feature/claude-first-run-guardrails
5d629c9 Merge pull request #111 from rocne/feature/claude-safety-consistency
73adb81 Merge pull request #112 from rocne/feature/claude-stale-names
82dc2ac Merge pull request #113 from rocne/feature/claude-predicate-correctness
1a74505 Merge pull request #114 from rocne/feature/claude-output-channels
a15d712 Merge pull request #115 from rocne/feature/claude-internal-hygiene
693b6bd Merge pull request #116 from rocne/feature/claude-cmd-dedup
4ac0837 Merge pull request #12 from rocne/feature/claude-release-docs
84edb84 Merge pull request #13 from rocne/feature/claude-cli-color
a43394b Merge pull request #14 from rocne/feature/claude-fix-auto-release
e4c7004 Merge pull request #15 from rocne/feature/claude-dotd-color-apply
d01c302 Merge pull request #16 from rocne/feature/claude-pr-workflow-policy
45e4cef Merge pull request #17 from rocne/feature/claude-packages-yaml-scaffold
69f5af8 Merge pull request #18 from rocne/feature/claude-install-script
989a379 Merge pull request #19 from rocne/feature/claude-install-script
8ed2162 Merge pull request #2 from rocne/feature/claude-files-flag
4ddf19b Merge pull request #20 from rocne/feature/claude-audit-ecosystem
e95ca82 Merge pull request #21 from rocne/feature/claude-audit-fixes
b7c95de Merge pull request #22 from rocne/feature/claude-import-annotations
3005904 Merge pull request #23 from rocne/feature/claude-readme-annotations
1f60b56 Merge pull request #25 from rocne/feature/claude-docs-site
212e525 Merge pull request #26 from rocne/feature/claude-integration-tests
6963c8d Merge pull request #27 from rocne/feature/claude-integration-tests
093f17d Merge pull request #29 from rocne/feature/claude-docs-refresh
916f10f Merge pull request #3 from rocne/feature/claude-readme-v2
111edcf Merge pull request #30 from rocne/feature/claude-remove-old-toolnames
6d2cd9a Merge pull request #31 from rocne/feature/claude-remove-old-toolnames
ab5b810 Merge pull request #32 from rocne/feature/claude-naming-audit
94ffc5f Merge pull request #33 from rocne/feature/claude-naming-audit
1ee312a Merge pull request #34 from rocne/feature/claude-session-cleanup
3e818f1 Merge pull request #35 from rocne/feature/claude-env-diff-completions-tests
58608f5 Merge pull request #36 from rocne/feature/claude-public-release-cleanup
e8763a4 Merge pull request #37 from rocne/feature/claude-public-release-spec-cleanup
8372766 Merge pull request #38 from rocne/feature/claude-readme-walk-fix
0c983ae Merge pull request #39 from rocne/feature/claude-shellrc-rename
89571ed Merge pull request #4 from rocne/feature/claude-readme-intro
0e1484a Merge pull request #40 from rocne/feature/claude-files-list-cmd
296e749 Merge pull request #41 from rocne/feature/claude-cleanup-pass
4f3043b Merge pull request #42 from rocne/feature/claude-ux-improvements
c03fb88 Merge pull request #43 from rocne/feature/claude-package-manifests
9515650 Merge pull request #44 from rocne/feature/claude-compose-targets
f97099e Merge pull request #45 from rocne/feature/claude-help-fixes
44f9e91 Merge pull request #46 from rocne/feature/claude-path-resolver
e17e220 Merge pull request #47 from rocne/feature/claude-logging
15aca49 Merge pull request #48 from rocne/feature/claude-output-migration
b4902a3 Merge pull request #49 from rocne/feature/claude-homebrew-tap
89d5879 Merge pull request #5 from rocne/feature/claude-readme-conventional
b312954 Merge pull request #50 from rocne/feature/claude-cleanup-help-flags
32121be Merge pull request #51 from rocne/feature/claude-rename-brew-formula
8cb8bb9 Merge pull request #52 from rocne/feature/claude-env-help
dbb9233 Merge pull request #53 from rocne/feature/claude-bundle
9a175fc Merge pull request #54 from rocne/feature/claude-compose
b83606b Merge pull request #55 from rocne/feature/claude-v2-planning
8909bb9 Merge pull request #56 from rocne/feature/claude-v2-impl
4f1ecb9 Merge pull request #57 from rocne/feature/claude-v2-env-config
342cf52 Merge pull request #58 from rocne/feature/claude-v2-pipeline
deb936e Merge pull request #59 from rocne/feature/claude-v2-cli-init
48705b5 Merge pull request #6 from rocne/feature/claude-readme-work-personal
24328da Merge pull request #60 from rocne/feature/claude-review-fixes
1ff6b12 Merge pull request #61 from rocne/feature/claude-action-system
9027b4b Merge pull request #62 from rocne/feature/claude-cli-completeness
863f940 Merge pull request #63 from rocne/feature/claude-adopt
54569d0 Merge pull request #64 from rocne/feature/claude-audit-fixes
db0b457 Merge pull request #65 from rocne/feature/claude-init-rc-canonical
caee6ac Merge pull request #66 from rocne/feature/claude-cli-command-groups
34f372e Merge pull request #67 from rocne/feature/claude-init-walk-fixes
9c2bfd5 Merge pull request #68 from rocne/feature/claude-lifecycle-commands
835ac7f Merge pull request #69 from rocne/feature/claude-xdg-canonical-paths
1d63a67 Merge pull request #7 from rocne/feature/claude-hyphen-tags
cb51cfc Merge pull request #71 from rocne/feature/claude-philosophy-audit
f39b8ba Merge pull request #72 from rocne/feature/claude-output-audit
f58b0f2 Merge pull request #73 from rocne/feature/claude-ui-print-helpers
170767f Merge pull request #75 from rocne/feature/claude-audit-pass4-5
91b682b Merge pull request #76 from rocne/feature/claude-install-curl-only
b6fffde Merge pull request #77 from rocne/feature/claude-e2e-docker-tests
b54fa47 Merge pull request #78 from rocne/feature/claude-e2e-failure-notification
b3d6a3e Merge pull request #8 from rocne/feature/claude-goreleaser-tag-fix
cc99a53 Merge pull request #80 from rocne/feature/claude-e2e-test-expansion
9342cfe Merge pull request #81 from rocne/feature/claude-test-audit-fixes
18015d8 Merge pull request #82 from rocne/feature/claude-docs-fixes
e086ad5 Merge pull request #83 from rocne/feature/claude-config-convention
2125a51 Merge pull request #84 from rocne/feature/claude-setup-wizard-fix
34cf959 Merge pull request #85 from rocne/feature/claude-config-link-root-fix
1867ebc Merge pull request #86 from rocne/feature/claude-initgen-homedir-cleanup
a1dec54 Merge pull request #87 from rocne/feature/claude-e2e-drop-download-blocks
ebf253f Merge pull request #88 from rocne/feature/claude-tty-missing-key-prompt
d4f0e1f Merge pull request #89 from rocne/feature/claude-codebase-audit
fb6c2c8 Merge pull request #9 from rocne/feature/claude-goreleaser-skip-validate
62de3ae Merge pull request #90 from rocne/feature/claude-e2e-coverage
29cdc80 Merge pull request #91 from rocne/feature/claude-docs-clarity
51ae19d Merge pull request #92 from rocne/feature/claude-annotate-wizard
6ea0501 Merge pull request #93 from rocne/feature/claude-prompt-io-consolidation
edf4d17 Merge pull request #94 from rocne/feature/claude-fix-devnull-close
1522e5f Merge pull request #95 from rocne/feature/claude-audit-dedup
2b5ee69 Merge pull request #96 from rocne/feature/claude-ux-help-improvements
ca313f9 Merge pull request #97 from rocne/feature/claude-ux-help-improvements
511f5d4 Merge pull request #98 from rocne/feature/claude-error-format-unification
4f68692 Merge pull request #99 from rocne/feature/claude-help-text-and-arg-errors
1331c84 Move docs to .claude/docs/ for Claude reference material
5dada15 Overhaul README: philosophy, how it works, full annotation docs
5e9e704 Phase 0: repo bootstrap
5b9e570 Phase 1: internal/annotation and internal/predicate
67fb52f Phase 2: internal/dotryaml, internal/env, cmd/dote
2512cb3 Phase 3: internal/walk and internal/fileset
c903803 Phase 4: dag, initgen, linker, packages
9926a6b Phase 5: cmd/dotd, cmd/dotl, cmd/dotp, cmd/dotr
3b7f5c0 Refactor cmds to newRootCmd() and add cmd-layer tests
6a94d37 Refactor dote to newRootCmd() and add cmd-layer tests
36159b2 Reframe intro: problem statement, comparison table, value prop
6222ae6 Rename --dotfiles to --files with -f shorthand
cc325a3 Rework README: tool sections replace overview table
2907b9c Rework release: goreleaser builds, gh publishes
da03408 Rewrite README for dotr suite
a3de3a9 Sharpen script order bullet: call out numbered prefix hack
aad26bb Split SPEC.md into spec/ directory with index and subsection files
b81e447 Switch release tags from slash to hyphen format
ff7721d Tighten intro bullets into table; add setup + color TODOs
6168bc9 Update CLAUDE.md: living doc note, commit/push cadence, validation steps
2414718 Update go.mod to Go 1.26, tidy deps
6d19ed1 Upgrade to golangci-lint-action@v7 for golangci-lint v2 support
e4a97f5 Wire link_root cascade from .dotr.yaml into linker
dbdff2c chore(docs): move working docs to git history; add HISTORY.md
1824a09 chore(e2e): remove binary.sh, install.sh, combined.sh (superseded)
1410b3e chore(todo): add go-public and GitHub Pages tasks
7aee479 ci(release): add e2e job — runs after release, matrix over distro
3e8b06b ci(release): open GitHub issue when e2e tests fail
3baa754 ci: add pre-release e2e job to CI
66c7874 ci: trigger CI
6334bea ci: trigger CI after base branch update
a6b451a ci: trigger CI run
fc789fb docs(audit): add full codebase audit report
d422504 docs(claude): strengthen pre-push PR check instruction
2d9bd9d docs(cmd): correct config edit help filename (AUDIT-036)
7ac4b4d docs(cmd): document env diff intentional design — compares file vs shell, not final resolved env
a7f324f docs(getting-started): remove gh auth requirement from install instructions
0fae1f3 docs(install): add curl one-liner usage to script header
9dd460a docs(plan): add dotd adopt implementation plan
4a7290c docs(plan): fix adopt plan — imports, suppression lines, expected output, go mod tidy, shellrc test
51e2d18 docs(plan): second-pass review fixes — stale import note, filepath literals, bin test original-removal check
c44a9cb docs(readme): add @disable/@no-source/@source annotations, dotr adopt, fix .dot-dagger.yaml schema
4d185ca docs(readme): add Development section with test and docs serve commands
7a0af2a docs(readme): add install.sh one-liner, fix stale priority docs
96826b5 docs(readme): audit for clarity, ordering, and terminology
e22510b docs(readme): fix fileset stage — walks whole repo, not just 3 dirs
03b27f1 docs(readme): update install section — requires only curl
d9ffebd docs(setup): improve packages.yaml scaffold with full example
16b0555 docs(spec): add actions.md, update compose/dag/index for v2 action system
b1c937c docs(spec): add dotd adopt v2 design spec
c7da628 docs(spec): align spec with actual code and design
668a2d4 docs(spec): deep accuracy pass — align with actual implementation
bbc1e31 docs(spec): e2e coverage design for all command gaps
ecfb6be docs(spec): fix adopt spec — flags table, test placement, symlink notation
68e5d83 docs(spec): fix setup default path and init stdin in e2e design
7414c13 docs(spec): fix seven issues in e2e coverage design
44f3606 docs(spec): mark dotd adopt as implemented in cli.md
e0efafd docs(spec): revise e2e coverage design after self-review
d79d984 docs(spec): update cli, architecture, and index to match implementation
b171759 docs(spec): update cli.md to match v2 implementation; unhide package/compose/dag commands
f77c050 feat(adopter): add Infer with convention-based destination inference
cd4b4c3 feat(adopter): implement Adopt — copy, remove, symlink via pipeline.Act
c940c7a feat(annotation): add AnnotationType interface and InputKind
25a0409 feat(annotation): add Registry and concrete AnnotationType implementations
584ef3c feat(annotation): add Write function with atomic rewrite and insertion-point logic
d5bfb5f feat(annotation): rewrite scanner for v2 @key (args) syntax
82e1b20 feat(cli): add dotd env/config subcommands, hidden get-os/get-hostname, help --all
d03a826 feat(cli): add dotd init, dotd list, dotd bundle (v2 pipeline)
34bc848 feat(cli): wire dotd apply/check to v2 pipeline, delete superseded v1 packages
ed969d4 feat(cli): wire dotd apply/check to v2 pipeline, delete superseded v1 packages
15728e0 feat(cmd): add dotd env diff command
a54380f feat(cmd): add dotd package list command
f85430c feat(cmd): add filterWithPrompt with TTY-aware missing key prompting
5224e95 feat(cmd): implement dotd adopt — inference, prompt, copy, symlink
9b1cbe1 feat(cmd/dotd): add annotate wizard command
eea30ee feat(cmd/dotd): add promptMenu helper using huh.Select
ee4485e feat(cmd/dotd): register annotate command and add non-TTY integration test
84563aa feat(config): add config.yaml loader with Get/Set
d9e162e feat(config): make config.yaml path overridable via --config/DOTD_CONFIG_FILE (AUDIT-002)
b6480ce feat(dagger): add .dagger file parser with v2 node schema
5253734 feat(dagger): add ConventionConfig for configurable convention dir names
dd0ec85 feat(dotd): add completion subcommand, env diff, and expand unit tests
e1fae0c feat(dotr): add dotr setup interactive onboarding command
79d4866 feat(dotr): add env/dag/link/package as subcommands
9723e78 feat(e2e): add apply.sh exerciser (no download step)
8b58d48 feat(e2e): add procurer scripts (release and local)
9e33503 feat(e2e): add run-e2e-local.sh pre-release runner
8fa6ec8 feat(e2e): update Dockerfiles for procurer/exerciser split
4232a20 feat(ecosystem): single canonical name and default path functions
23a4862 feat(ecosystem): tool name constants + rename config file to .dot-dagger.yaml
9bc3282 feat(env): rewrite for v2 — flat yaml, shell interpolation, DOTD_* vars
81d2be4 feat(init): add -n/--non-interactive; print setup -n values
0eee667 feat(install): add tool, version, os, arch args to install.sh
6d8c9f9 feat(node): add logical name derivation
3b8b567 feat(packages): move priority to packages.yaml, add per-package prefer
8d24ba9 feat(pipeline): add CollectMissingKeys via AST key scan
5eba904 feat(pipeline): add ValidateNodes for action sequencing validation
3bf0f9d feat(pipeline): add act stage (link, source, no-source)
bbe088d feat(pipeline): add filter stage
fc0c36d feat(pipeline): add init.sh generation
4a47824 feat(pipeline): add normalizeActionAnnotations for canonical action form
1843df5 feat(pipeline): add order stage (Kahn + alpha tie-break) and After field on RawNode
259edbd feat(pipeline): add walk stage with RawNode types and cascade logic
c820510 feat(pipeline): normalize action annotations before mergeActions
8b382b6 feat(pipeline): wire ValidateNodes between Walk and Filter
8612cb5 feat(setup): add --non-interactive flag; clarify --quiet scope
05cba2d feat(setup): detect installed package managers and pre-fill packages.yaml
63a0488 feat(ui): add OKf/Skipf/Headerf helpers and shared promptConfirm; migrate all call sites
05c2b36 feat(ui): add Warnf/Errf/Tipf print helpers; migrate call sites
dcc6ba5 feat(ux): overhaul setup and init wizards
49d659a feat: UX improvements across CLI surface
edd98a3 feat: add --debug flag; extract resolveLogLevel
21f7014 feat: add --json output to every data command
22b3a43 feat: add @disable/@no-source/@source annotations and dotr import command
3b3f5d8 feat: add @when syntax reference to description and validate error hint
e7eb28b feat: add RemoveSourceLine to internal/setup/shell
5ee8c86 feat: add dotd bundle command
12f590e feat: add dotd concepts reference command
369e2c2 feat: add dotd env path subcommand
f7c44ce feat: add dotd files list command
a422792 feat: add dotd setup command — interactive config wizard
b75d2ae feat: add dotd teardown command
c553076 feat: add dotd unapply command
e166d8d feat: add dotd-packages.yaml package manifests
fc46477 feat: add install.sh to download and install latest dotr
014c54b feat: add shell expression hint to env set --help
315db37 feat: add structured logging via charmbracelet/log
8179764 feat: annotate shell expressions in env show output
44d6088 feat: centralize path resolution with DOTD_* env vars and env.yaml fields
eb5ee9f feat: complete BasicNode wiring, @disable , link/compose fixes, nosync warning
4b39e10 feat: exit 2 on usage errors; uniform env show text format
1b5344f feat: first-run guardrails — refuse cwd fallback, warn on no-op apply
bcaa552 feat: group dotd commands into Core, Configuration, and Advanced sections
34066be feat: implement §21 compose targets
7edc399 feat: integration-test compose stage end-to-end
7b3c177 feat: migrate all output to structured log levels with stdout/stderr split
906141a feat: polish CLI UX — dry-run prefix, color, alias, concepts group
7e32709 feat: prepend bin dir to PATH in generated init.sh
30e6622 feat: print @when syntax block as preamble in annotate wizard
3d627c4 feat: publish Homebrew tap formula on release
ddee412 feat: rename scripts/ → shellrc/, make convention dirs configurable
6d7fdbb feat: render Long help blocks and add Long+Examples to every subcommand
a8e66d9 feat: render error and hint on separate lines via Hinter interface
9ffbd3f feat: scope persistent path flags to relevant subcommands; document completion
dfa95ba feat: wire dotd init RC file check, fix canonical resolution violations
c7a6435 fix(annotate): check f.Close error to satisfy errcheck lint
36b9736 fix(annotation): migrate all packages to v2 annotation API
b5870d6 fix(cmd): consistent prompt defaults + safe non-TTY behavior (AUDIT-035)
3a6b8db fix(cmd): diagnostics to stderr per log contract (AUDIT-034)
b19fa65 fix(cmd): polish TTY prompt — OR limitation docs, abort handling, Go 1.22 cleanup
ba3cc6d fix(cmd): prompt abort returns error, main owns exit (AUDIT-022)
a6e408c fix(cmd): unapply exits non-zero on partial failure, errors to stderr (AUDIT-033)
9dcf5cb fix(cmd): validate nodes uniformly across commands (AUDIT-029)
e201928 fix(config): resolve linkRoot $HOME default in resolvePaths (AUDIT-001)
a6b362b fix(critical): fix C-1 through C-5 from v2 code review
4f6aec1 fix(docs): purge stale conf/ from help text, ToolD in env template
da38e0e fix(e2e): add .dagger files to fixture — required for link/source defaults
426ba47 fix(e2e): add concepts.sh to Dockerfiles
df23e42 fix(e2e): add required flags to dotd --debug list in concepts.sh
9e7998a fix(e2e): drop DEBU grep; --debug exit-0 is sufficient
225294e fix(e2e): guard DOTD_VERSION after API resolution
f2790bd fix(ecosystem): roll own XDG helpers, move init.sh to XDG_DATA_HOME
c6b0ceb fix(env): add missing env API functions and fix CLI commands
09c34bc fix(install): add checksum verification and --dry-run flag
02a3300 fix(install): replace gh CLI with curl for public repo
26702fa fix(install): update tag format from dotd-vX.Y.Z to vX.Y.Z
1aea2e6 fix(lint): check f.Close error in test; drop explicit io.Reader type annotation
ba3e402 fix(lint): remove ineffectual label assignment in setup.go
0c3829e fix(lint): resolve ineffassign, staticcheck, and unused function issues
dd15a5c fix(lint): use fmt.Fprintf in bundle.go; remove dead setup.go
48a71c0 fix(output): route all output through cmd.Out/Err and apply ui color helpers
2d62461 fix(pipeline): allow link with no dest when link_root set; skip fragment validation
f2f1131 fix(pipeline): unify conflict detection + dedup Act blocks (AUDIT-014, AUDIT-015)
b987baa fix(pipeline): when-precedence, parser-backed validation, registry wiring
5a7bd0d fix(pipeline): wire compose/link/bin support so all integration tests pass
a4206b7 fix(predicate): wire installed()/installable() into evaluator (AUDIT-026)
a774519 fix(prompts): move byteReader into newHuhForm; simplify test and e2e inputs
727d26f fix(prompts): route huh output to stderr; trim promptSelect result; doc adopt gap
d864d51 fix(test): check os.Unsetenv/Setenv error returns to satisfy errcheck
cd150ad fix(testdata): update fixtures to v2 annotation syntax
e5641e0 fix(walk): skip ecosystem config file when building nodes
1f3ccb1 fix: AND/OR in WhenType description summary line
d3e70b8 fix: audit CLI help messages and check exit behavior
854a2b0 fix: config/ links to ~/.config by default; separate home from config dir
90e776f fix: flat env.yaml fixture and lint errcheck in main.go
68c0f37 fix: p0 audit — eliminate all canonical resolution violations
34c2cf3 fix: remove redundant flags, fix misleading package hint, simplify files cmd
88f973d fix: rename Homebrew formula from dotd to dot-dagger
c81621d fix: route all default paths through ecosystem; fish config respects XDG
4a43690 fix: route config/env DefaultPath through ecosystem XDG interface
7be10f8 fix: silence usage output on command errors
105bbee fix: skip .git in walk, normalize relative paths in init, improve wizard prompts
2ed1217 fix: teardown dry-run, adopt non-TTY guard, compose check exit
e0327a0 fix: update @after refs in test fixtures to use shellrc. prefix
47c50d6 fix: update setup wizard link root description to reference config/ and ~/.config
83059d7 fix: wire logger to cmd.ErrOrStderr() so tests capture output; fix --verbose → --log-level debug
006798c polish: pluralized counts, cleaner walk error, sync-risk comments
a293601 refactor(adopt): remove direct huh usage, use promptBool
4ad4692 refactor(annotate): remove direct huh usage, route all I/O through prompts helpers; remove isTTYStdin bridge
1862674 refactor(audit): enforce canonical constants and ui helper discipline
6d1abcf refactor(cmd): adopt uses isTTYStdin helper (AUDIT-018)
8a09fa7 refactor(cmd): consolidate prompt primitives in prompts.go (AUDIT-023)
e429cc3 refactor(cmd): extract runPipeline to deduplicate apply/check pipeline setup
69c0de3 refactor(cmd): extract walkOrdered read-path helper (AUDIT-016)
56621ee refactor(cmd): finish env.yaml literal replacement in filter_prompt (AUDIT-009)
374c1cf refactor(cmd): replace pipeline.Filter callsites with filterWithPrompt
6aa53b5 refactor(cmd): setup/init read resolved cfg.configPath (AUDIT-003)
c0714a2 refactor(cmd): shared pipeline preamble, unified arg/flag/banner helpers
97818f0 refactor(cmd/dotd): three code-quality cleanups
895bfe9 refactor(dotr): rename import command to adopt
f86a79a refactor(e2e): drop download blocks from exerciser scripts
7f3fe2c refactor(e2e): rewrite run-e2e.sh for procurer/exerciser pattern
e08b624 refactor(env): single DOTD_ prefix constant (AUDIT-010)
b476b6a refactor(filter_prompt): remove huh, use promptInputs, fix os.Stderr
eadd403 refactor(internal): one atomic writer, shared constants, dead code out
facfc27 refactor(json): compose list --json returns array of objects
8258c9d refactor(output): one channel policy, styled errors, drop dead Warn mode
d249d1b refactor(packages): generate install script instead of exec subprocess
d5ebef5 refactor(packages): named {package} token + catalog guard (AUDIT-005)
1b45ab9 refactor(packages): single source for reserved keys (AUDIT-007)
1ff616c refactor(pipeline): factory for single-file RawNode (AUDIT-024)
6008f8a refactor(pipeline): inline composeGenName, share tilde expansion (AUDIT-020, AUDIT-021, AUDIT-030)
b89ecbe refactor(pipeline): single HasCompose predicate (AUDIT-019)
715e8e3 refactor(pipeline): unify dir/file .dagger action parsing (AUDIT-013)
1b2818b refactor(prompts): add canonical huh helpers with cobra I/O routing
e9d0ac0 refactor(setup): single scaffold path, wire/remove source-line writer (AUDIT-027, AUDIT-028)
d75a894 refactor: apply code review fixes across codebase
b218c63 refactor: centralize .dagger key vocabulary + tag guard test (AUDIT-006)
755231c refactor: collapse suite into single dotd binary
b5480ca refactor: consolidate duplicated patterns into single-owner helpers
62fa6fe refactor: decouple HomeDir from link-root; drop portable-path from initgen
02c8737 refactor: eliminate magic strings and duplicated code throughout
644f44a refactor: extract promptPath to eliminate 4 identical path-prompting blocks
61e3549 refactor: named file-mode constants (AUDIT-011)
3a06b0e refactor: reference env.yaml name from one constant in hints (AUDIT-009)
85e0686 refactor: relocate generic fileExists helper to fileutil (AUDIT-025)
d851d61 refactor: remove all former sub-tool name references
77f868b refactor: remove/implement dead exports (AUDIT-031)
638fa95 refactor: rename .dot-dagger.yaml to .dotd.yaml, simplify CI/CD tags
b0ca74d refactor: rename conv dir conf/ → config/, link to ~/.config by default
bb570d6 refactor: resolve all open audit items (A-03, A-04, A-06–A-08, A-10–A-11)
abed01f refactor: share paren-splitter between annotation and pipeline (AUDIT-017)
5b6d20b refactor: shared POSIX shebang constant (AUDIT-012)
8557d0c refactor: single packages.yaml filename constant (AUDIT-004)
1b7a06a refactor: single source for convention dir names (AUDIT-008)
197035c refactor: strip dotd init to scaffold-only, add config.yaml precondition
037368b style(cmd): consistent error prefixes (AUDIT-032)
769e8e7 test(annotate): replace non-TTY error test with 4 wizard integration tests
dc6ed5e test(cmd): assert check detects drift, not just summary (AUDIT-061)
9e86bfa test(cmd): conflict test hard-fails instead of self-skipping (AUDIT-060)
d6bca04 test(cmd): cover adopt command path (AUDIT-043)
3e99a98 test(cmd): cover bundle transitive deps + env quoting (AUDIT-044)
17dfb80 test(cmd): cover config commands + edit path (AUDIT-057)
da71960 test(cmd): cover get-os/get-hostname canonical detectors (AUDIT-058)
acf1f66 test(cmd): cover init scaffolding + idempotency (AUDIT-056)
91983f3 test(cmd): cover interactive missing-key prompt (AUDIT-041)
964be73 test(cmd): cover real env.yaml expansion path (AUDIT-068)
8c32d08 test(cmd): cover unapply --all and flag shadow (AUDIT-059)
a757309 test(compose): add end-to-end coverage, remove stale skips (AUDIT-037)
43163e4 test(compose): strengthen coverage from review (AUDIT-037)
7d3d815 test(config): finish AUDIT-066 — config_test.go was missed in f80fa2d
68dda30 test(config): strengthen linkRoot coverage from review (AUDIT-001)
f80fa2d test(config,env): cover Save errors + KnownFields strictness (AUDIT-066)
6f63c9c test(e2e): add Ubuntu Dockerfile for e2e tests
6c93c07 test(e2e): add adopt, bundle, dag-check, package-check shell e2e tests
a3a9fe8 test(e2e): add annotate Docker e2e tests
4aae647 test(e2e): add bin and nested symlink tests
8d0abc4 test(e2e): add binary test script
494a10b test(e2e): add check and list tests
8192d63 test(e2e): add combined test script
538b87a test(e2e): add compose.sh and macos-apply.sh shell e2e tests
5013d28 test(e2e): add config-cmds.sh and env-cmds.sh shell e2e tests
f72c079 test(e2e): add context and dag-order tests
33e012a test(e2e): add coverage for env show annotation, env path, concepts, --debug
f425765 test(e2e): add disable, packages, and conflict tests
26bcd3f test(e2e): add dry-run and idempotency tests
27885df test(e2e): add host-side e2e runner script
26b33cd test(e2e): add installer test script
5bf5c8c test(e2e): add minimal fixture for e2e tests
8909b21 test(e2e): add set -e to conflict.sh bootstrap section
6a1de05 test(e2e): add setup, teardown-confirm, teardown-cancel, init shell e2e tests
1fb0302 test(e2e): add unapply.sh and unapply-cancel.sh shell e2e tests
c9875c7 test(e2e): default suite builds from source to gate HEAD (AUDIT-062)
dec1f57 test(e2e): expand fixture — add bin/, nested conf/, predicate variants, packages
088fd8f test(e2e): expect compose check non-zero, adopt --yes
6141c9d test(e2e): extend binary and combined assertions for richer fixture
b60b483 test(e2e): fix dotd path consistency in context.sh
0aed6b2 test(e2e): fix list.sh — add missing mkdir
b1c487f test(e2e): fix tests that passed without asserting correctness
b949e46 test(e2e): wire 11 new test scripts into Dockerfile and run-e2e.sh
b6aef0a test(e2e): wire adopt/bundle/dag-check/package-check into Dockerfiles and runners (Batch 5)
5c1800b test(e2e): wire compose and macos-apply tests into Dockerfiles and runners (Batch 2)
8223db3 test(e2e): wire config-cmds and env-cmds tests into Dockerfiles and runners (Batch 4)
b76f52f test(e2e): wire setup/init/teardown tests into Dockerfiles and runners (Batch 3)
ee38da5 test(e2e): wire unapply tests into Dockerfiles and runners (Batch 1)
3393369 test(e2e/fixture): add dot-extras.sh.d compose target for Batch 2 tests
117e976 test(ecosystem): add unit tests for ResolvePath and Default* functions
ff6c682 test(ecosystem): cover default paths + ResolvePath contracts (AUDIT-046, AUDIT-064)
b2572da test(env): cover triple-override + input immutability (AUDIT-065)
9cfee54 test(fileutil): cover SaveYAML atomicity + cleanup (AUDIT-039)
a9ee63e test(integration): add TestAdoptShellScript_Integration and TestBundleOutput_Integration
660c68e test(integration): add TestConfigCmdsLifecycle and TestEnvCmdsLifecycle
e120c34 test(integration): add TestSetupThenTeardown and TestInitAfterSetup
634b895 test(integration): add TestUnapplyAfterApply and TestUnapplyCancel with runWithStdin harness
1528e8e test(integration): add package management tests
8e6f232 test(integration): update PackageRequireHardFail for generate command
d320eff test(package): cover check/generate command glue, remove stale skips (AUDIT-042)
ee84870 test(pipeline): assert disabled-node reporting (AUDIT-054)
5978ace test(pipeline): cover .dagger files: dict handling (AUDIT-049)
8633958 test(pipeline): cover Order self/unknown-ref handling (AUDIT-051)
cc1058f test(pipeline): cover createSymlink force/no-clobber paths (AUDIT-048)
f394ffb test(pipeline): cover deriveLinkDest dot-/nosync- rewriting (AUDIT-038)
704a568 test(pipeline): cover deterministic tie-break ordering (AUDIT-050)
0b0a5c8 test(pipeline): cover two-explicit-link merge handoff (AUDIT-055)
192e4b3 test(pipeline): cover ~bin destination expansion (AUDIT-047)
5687657 test(predicate): cover Keys/And/OR key collection (AUDIT-045, AUDIT-053)
a25e38e test(predicate): cover NewEvaluator + nil-registry path (AUDIT-052)
a10826d test(predicate): cover Register panic + MissingKeyError (AUDIT-063)
e9701ac test(prompts): close /dev/null inline, no defer wrapper needed
cf9d2ee test(setup): add unit tests for Scaffold
91e60c0 test(setup): cover shell RC detection + source-line round-trip (AUDIT-040)
2dc0dff test(ui,log): add baseline coverage (AUDIT-067)
You can’t perform that action at this time.