Skip to content

feat: discover default .dot.toml configuration - #6

Merged
yslib merged 6 commits into
mainfrom
feature/default-config-discovery
Jul 29, 2026
Merged

feat: discover default .dot.toml configuration#6
yslib merged 6 commits into
mainfrom
feature/default-config-discovery

Conversation

@yslib

@yslib yslib commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • make .dot.toml the implicit manifest name and discover it from the current directory, then the platform-specific user configuration directory
  • add a typed ConfigRequest and resolve the manifest once before command dispatch
  • preserve explicit --config, deterministic no-fallback-on-read-error behavior, dangling-symlink selection, and isolation from injected platform data
  • update the CLI help and documentation, with real-binary and cross-platform test coverage

Why

dot should be usable from any directory without repeatedly passing --config, while retaining conservative and predictable configuration discovery.

User impact

  • Explicit --config continues to accept any file name and bypasses discovery.
  • Without --config, dot first checks ./.dot.toml.
  • Linux and macOS then fall back to ~/.config/dot/.dot.toml.
  • Windows falls back to %APPDATA%\dot\.dot.toml.
  • The legacy implicit ./dot.toml name is no longer discovered.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --locked --all-targets --all-features -- -D warnings
  • cargo test --locked --all-targets --all-features (290 top-level tests, 0 failures)
  • strict Clippy for x86_64-pc-windows-gnu
  • isolated explicit/local/fake-home/missing-config smoke checks
  • git diff --check main...HEAD

@yslib
yslib marked this pull request as ready for review July 29, 2026 01:19
@yslib
yslib merged commit b5ef973 into main Jul 29, 2026
7 checks passed
@yslib
yslib deleted the feature/default-config-discovery branch July 29, 2026 01:22
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