Skip to content

feat: add manifest-driven config linking#27

Merged
tsilenzio merged 5 commits into
mainfrom
feat/manifest-driven-config
Apr 13, 2026
Merged

feat: add manifest-driven config linking#27
tsilenzio merged 5 commits into
mainfrom
feat/manifest-driven-config

Conversation

@tsilenzio

Copy link
Copy Markdown
Owner

Summary

  • Add declarative manifest system for config symlink management, replacing hardcoded safe_link calls in link_base_configs() and the case-statement in apply_config_overrides()
  • Supports file linking, recursive directory linking, and @chmod permission directives
  • Includes scripts/manifest CLI for managing manifest entries (add, remove, list, chmod)
  • Bundles without a manifest file fall back to the legacy case-statement, so existing setups keep working
  • Restructure mise config from config.toml to conf.d/defaults.toml so mise use -g doesn't dirty git

Test plan

  • Verified manifest file parses correctly with file entries, directory entries, and @chmod directives
  • Verified link_base_configs() routes through apply_manifest() and produces the same symlinks as before
  • Verified apply_config_overrides() falls back to legacy logic for bundles without a manifest
  • Run just dev lint (shellcheck + zsh syntax)
  • End-to-end test on a fresh VM with ./install.sh

- Rename config.toml to conf.d/defaults.toml so mise use -g writes to
  config.toml without dirtying git
- Add python, deno, bun, dart, flutter, cargo-binstall
- Drop gradle and cmake
- Regroup into Languages and Tools sections
Declarative mapping of config files to their symlink destinations.
Not wired up yet; the apply logic comes next.
- Add apply_manifest() to parse manifest files and link files/directories
- Add _link_directory() for recursive directory linking
- Add _apply_chmod_directive() for permission directives
- Refactor link_base_configs() to use apply_manifest
- Refactor apply_config_overrides() to check for bundle manifest first,
  fall back to legacy case-statement for bundles without one
- Refactor ensure_config_dirs() to read @chmod from manifest
- Add scripts/manifest with list, add, remove, and chmod commands
- Supports --bundle flag for targeting bundle-specific manifests
- Add just manifest recipe for convenience
- Add manifest CLI, config/manifest, and bundle manifest to README
- Add manifest format examples to bundle creation guide
- Add manifest roadmap items to TODO (state tracking, templates,
  ignore patterns, attributes, externals)
- Clean up TODO title formatting
@tsilenzio
tsilenzio merged commit 68dde47 into main Apr 13, 2026
6 checks passed
@tsilenzio
tsilenzio deleted the feat/manifest-driven-config branch April 13, 2026 03:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant