@@ -34,29 +34,6 @@ Freely check the `--help` output of various `restic` commands as you work, so
we can be absolutely certain we're writing a good, up-to-date wrapper. Any time
our code differs from restic proper, PLEASE FLAG IT TO ME!
-## Current Architecture & Data Flow--Suggest updating this if implementation changes.--```text-main.go- └── cmd.Execute()- └── rootCmd.RunE- ├── extractOwnFlags() # --dry-run, --config- ├── parseArgs() # Split into preset, command,- │ # passthrough- ├── runMenu() # BubbleTea if no command- ├── config.Resolve() # Merge TOML sections + CLI overrides- │ ├── DiscoverFiles() # Find config files- │ ├── loadFiles() # Parse and merge TOML- │ ├── buildSectionOrder() # Determine merge precedence- │ ├── interpolate() # Resolve ${section.key} refs- │ └── assemble() # Build ResolvedConfig- ├── config.IsDryRun()- ├── restic.DryRun() # Print what would execute- └── restic.Run() # syscall.Exec to restic-```-
## Config System
### Section Merge Order
@@ -95,7 +72,7 @@ Values can reference other sections: `cache-dir = "${vars.cache-root}/cache"`
Presets with `@` are split: `home@cloud` → applies `[@cloud]`, `[home@]`,
then `[home@cloud]`
-See `example/config.toml` for comprehensive examples.
+See `examples/keld/config.toml` for comprehensive examples.
## Code Patterns & Conventions
@@ -155,4 +132,4 @@ Using v2 API (not v1). Key differences:
1. Make changes
2. `mise run check` - full validation
-3. Test manually: `./keld --dry-run <preset> <command>`
+3. Test manually: `keld --show-command --preset <preset> <command>`