Skip to content

refactor: group managed configuration under config - #176

Merged
jiminu merged 2 commits into
mainfrom
refactor/config-layout
Aug 24, 2026
Merged

refactor: group managed configuration under config#176
jiminu merged 2 commits into
mainfrom
refactor/config-layout

Conversation

@jiminu

@jiminu jiminu commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • move managed payloads into config/shared, config/macos, and config/ubuntu
  • update installer, release, dependency automation, CI, documentation, and tests to use the new source paths
  • retain all installed user-home paths and CLI behavior

Validation

GitHub Actions CI:

  • Shell checks: Ubuntu / macOS
  • Ubuntu 24.04 installation E2E
  • macOS configuration lifecycle E2E
  • Pinned Neovim developer E2E
  • Repository test suite, including release payload/config layout coverage

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

config/shared/zsh/update-notice.zsh contains a logic bug where _selfishell_version_is_valid can incorrectly return non-zero for valid prerelease versions due to a missing final return 0.

Pull request overview

This PR refactors Selfishell’s managed configuration layout by consolidating platform and shared payloads under config/ (config/shared, config/macos, config/ubuntu), and updates the installer, tooling, CI, documentation, and tests to reference the new source paths while keeping installed home-directory paths and CLI behavior stable.

Changes:

  • Moved managed configuration payloads into config/shared, config/macos, and config/ubuntu and updated release packaging to ship the new layout.
  • Updated installer/resource declarations plus dependency automation and CI change classification to use the new config roots.
  • Updated tests and docs to reflect new configuration source paths and added release-archive assertions.
File summaries
File Description
tests/tool_status_test.bash Updates mise config-path fixtures and expectations to config/shared/mise.toml.
tests/release_bootstrap_test.bash Adds archive content assertions for the new config/ payload root.
tests/profiles_test.bash Updates mise pin source path to config/shared/mise.toml.
tests/neovim_config_test.bash Updates Neovim config discovery paths to config/shared/nvim/....
tests/managed_install_test.bash Updates managed-resource installation assertions for new config/ source paths.
tests/installers_test.bash Updates mise config path expectations to config/shared/mise.toml.
tests/history_test.bash Updates history module source path to config/shared/zsh/history.zsh.
tests/dependency_updates_test.bash Updates dependency-updater fixtures and assertions for new config locations.
tests/common_zsh_test.bash Updates test harness paths/vars to source shared Zsh modules under config/shared/zsh.
tests/ci_change_classification_test.bash Updates classification repo fixtures to treat config/shared/nvim as runtime-affecting.
tests/benchmark_test.bash Updates benchmark fixture mutation path for aliases.zsh under config/shared/zsh.
scripts/update-dependencies.sh Retargets updater staging to config/shared/{mise.toml,zsh/*.zsh}.
scripts/classify-ci-changes.sh Updates runtime-change detection to config/shared/nvim/*.
scripts/check.sh Updates lint/syntax file discovery to include config/**.zsh and platform zshrc files.
scripts/build-release.sh Packages config/ (instead of legacy roots) into release payloads.
scripts/benchmark.sh Updates benchmark wiring to use config/shared/zsh/* and new platform zshrc paths.
lib/tool_status.sh Reads approved mise versions from config/shared/mise.toml.
lib/resources.sh Updates managed resource source paths to the new config/ tree.
lib/installers.sh Updates mise invocation to use config/shared/mise.toml for installs/exec/which.
lib/commands/install.sh Updates platform zshrc sources to config/{macos,ubuntu}/zshrc.
docs/UPDATES.md Updates mise pin source-of-truth reference to config/shared/mise.toml.
docs/SECURITY.md Updates mise selector review location to config/shared/mise.toml.
docs/PROFILES.md Updates docs to reference config/shared/mise.toml for default tool versions.
config/ubuntu/zshrc Introduces Ubuntu/WSL managed zshrc sourcing shared common.zsh.
config/shared/zsh/update-notice.zsh Adds update notice + version comparison + locking implementation under shared config.
config/shared/zsh/runtime.zsh Adds shared runtime module enabling mise activation.
config/shared/zsh/interactive.zsh Adds shared interactive module (aliases, caches, plugins, prompt init).
config/shared/zsh/history.zsh Adds shared history defaults module.
config/shared/zsh/completion.zsh Adds shared completion module (compinit strategy, kubectl/aws completion, zinit integration).
config/shared/zsh/common.zsh Adds shared entrypoint wiring module ordering and shared helpers.
config/shared/zsh/aliases.zsh Adds shared alias definitions with presence checks.
config/shared/vimrc Adds managed Vim defaults under shared config.
config/shared/starship.toml Adds managed Starship configuration under shared config.
config/shared/nvim/lua/plugins/ui.lua Adds Neovim UI plugin specs under new managed config root.
config/shared/nvim/lua/plugins/lsp.lua Adds Neovim LSP/Mason plugin specs under new managed config root.
config/shared/nvim/lua/plugins/editor.lua Adds Neovim editor/plugin specs under new managed config root.
config/shared/nvim/lua/plugins/completion.lua Adds Neovim completion/cmp specs under new managed config root.
config/shared/nvim/lua/config/plugin_versions.lua Adds manifest-based plugin pin enforcement helper.
config/shared/nvim/lua/config/options.lua Adds Neovim options defaults under new managed config root.
config/shared/nvim/lua/config/lazy.lua Adds lazy.nvim bootstrap + revision enforcement under managed config.
config/shared/nvim/lua/config/languages.lua Adds default LSP server list for Mason setup.
config/shared/nvim/lua/config/keymaps.lua Adds Neovim keymaps module under managed config.
config/shared/nvim/lua/config/autocmds.lua Adds Neovim autocmds (treesitter parser install, resize, cursor restore).
config/shared/nvim/init.lua Adds managed Neovim init.lua entrypoint.
config/shared/nvim/after/lsp/lua_ls.lua Adds lua_ls LSP settings.
config/shared/mise.toml Adds shared mise tool version pins under new config root.
config/macos/zshrc Introduces macOS managed zshrc sourcing shared common.zsh + Homebrew PATH setup.
config/macos/ghostty/config.ghostty Moves Ghostty managed config under config/macos/ghostty/.
AGENTS.md Updates repository map and mise pin source-of-truth path references.
.github/workflows/dependency-updates.yml Updates tracked files list/exclusions for dependency automation to new config paths.
.github/workflows/ci.yml Updates CI’s mise version read to config/shared/mise.toml.
Review details
  • Files reviewed: 26/51 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@jiminu
jiminu marked this pull request as ready for review August 24, 2026 02:37
@jiminu
jiminu merged commit 01ccd34 into main Aug 24, 2026
7 checks passed
@jiminu
jiminu deleted the refactor/config-layout branch August 24, 2026 02:37
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.

2 participants