fix: address all code review issues
1. _merge_config: track explicit fields instead of comparing to defaults 2. plan_install: let asset resolution errors propagate (fail loudly) 3. _install_binary/_install_appimage: use argv lists instead of shell strings 4. _find_module: narrow exception to OSError/YAMLError, raise ConfigError 5. _install_binary: use pkg.extract_dir to scope binary search 6. plan_install: raise FlowError when pkg type needs PM but none found 7. Frozen dataclasses: change mutable list fields to tuples throughout 8. Remove dead stream_shell method and unused Console import 9. Guard os.getuid() with hasattr for cross-platform safety 10. _parse_targets: raise ConfigError on malformed entries 11. Bootstrap modules: use shlex.quote on all interpolated values Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,7 @@ class TestParseProfile:
|
||||
profile = parse_profile("minimal", {})
|
||||
assert profile.os == "linux"
|
||||
assert profile.hostname is None
|
||||
assert profile.packages == []
|
||||
assert profile.packages == ()
|
||||
|
||||
def test_ssh_keys(self):
|
||||
raw = {"ssh-keys": [{"path": "~/.ssh/id_ed25519", "type": "ed25519"}]}
|
||||
|
||||
Reference in New Issue
Block a user