Commit Graph

15 Commits

Author SHA1 Message Date
d0f8315cf1 refactor 2026-03-16 08:06:25 +02:00
78d4064853 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>
2026-03-16 06:27:31 +02:00
6e9f9c9e30 chore: remove old code replaced by rewrite
Delete old core modules (action, stow, process, system, variables),
old services (package_defs, ssh), and all tests for deleted code.

191 tests pass with the new codebase.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 05:07:57 +02:00
6ea23e02df feat: add CLI entry point, command modules, and zsh completion
- CLI with context detection, config merging, VM blocking
- Command modules: dotfiles, packages, setup, remote, dev, projects
- Zsh completion with declarative command/subcommand/flag structure

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 05:06:31 +02:00
f79154d86f feat: add all services (dotfiles, packages, bootstrap, remote, containers, projects)
- DotfilesService: package discovery, module sync, link/unlink/status
- PackageService: install/remove/list with PM and binary support
- BootstrapService: profile-based system setup orchestration
- RemoteService: SSH target resolution and connection
- ContainerService: docker container lifecycle management
- ProjectService: git repo status checking

26 service tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 05:02:31 +02:00
5f1ee18cb4 feat: add bootstrap domain (models, setup modules, planning)
- Profile, BootstrapAction, BootstrapPlan models
- Setup modules: hostname, locale, shell, ssh-keygen, runcmd
- Bootstrap planning with ordered phases and env validation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 04:56:46 +02:00
31d7583b9a feat: add all domain layers (dotfiles, packages, remote, containers)
- Dotfiles: models, module resolution, path resolution, link planning
- Packages: models, catalog parsing, resolution, install/remove planning
- Remote: target parsing, SSH command building
- Containers: image refs, mount resolution, container specs

All domain code is pure functions + frozen dataclasses. 88 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 04:54:06 +02:00
6bb41aa001 feat: rewrite core layer (errors, template, paths, platform, console, runtime, config)
Complete rewrite of all core modules with proper abstractions:
- FlowError hierarchy with PlanConflict and ExecutionError
- Pure template substitution ($VAR, ${VAR}, {{expr}})
- XDG path constants
- Frozen PlatformInfo dataclass with context detection
- Console with color/quiet/TTY support
- Runtime primitives (CommandRunner, FileSystem, GitClient, SystemRuntime)
- Config loading with target parsing and manifest merging

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 04:48:14 +02:00
c0b378c424 refactor-1 2026-03-15 21:46:50 +02:00
24d682adf1 new 2026-02-25 17:20:43 +02:00
741173f617 example 2026-02-25 15:32:23 +02:00
6cff65f288 working version 2026-02-13 12:15:46 +02:00
1217337fbb update 2026-02-13 09:57:38 +02:00
e35f9651c1 wip 2026-02-13 02:13:27 +02:00
906adb539d flow 2026-02-12 09:42:59 +02:00