Commit Graph

23 Commits

Author SHA1 Message Date
bc420114bf docs: update README for new architecture
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 05:08:32 +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
327201a0ed chore: add .worktrees/ to gitignore
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 04:41:52 +02:00
df8a19d6cc Fix all plan review issues, save implementation plan
Plan fixes:
- detect_platform raises FlowError not RuntimeError
- TargetConfig lives in core/config.py only (remote domain imports it)
- plan_link handles source changes (remove_link + create_link)
- resolve_package_targets skips local files when mount_path is root
- LinkedState.from_dict guards on version mismatch
- Added missing test for parse_module_ref with absent ref
- Task 12 now has full tests and serialization format
- Task 13 uses spec signatures as truth, old code as reference
- Task 15 includes describe() examples and tests
- Task 24 has detailed test cases for ProjectService
- Note that conflicts.py is intentionally merged into planning.py
- Spec Section 12 example fixed to include filesystem_check arg

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 04:39:11 +02:00
457fbc669c Add CLAUDE.md, remove old docs, track code review
- Add CLAUDE.md with development standards
- Remove docs/architecture.md and docs/flows.md (obsoleted by redesign spec)
- Track docs/code-review.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 04:27:57 +02:00
93929c67d4 Fix all issues from spec review
- Add TargetConfig model to remote domain with normalization rules
- Add SetupModuleDef model to bootstrap domain
- Fix domain purity: Package carries pre-walked file lists, parse_module_ref
  takes parsed dict not file path, discover_packages moved to service layer
- Clarify conflict detection: cross-package collisions (pure) vs filesystem
  conflicts (injected callback in plan_link)
- Add dry_run to init, repos_pull, repos_push, stop, remove, respawn
- Document interactive commands (edit, attach, exec) as dry_run exceptions
- Document ProjectService as read-only (no dry_run needed)
- Fix ContainerState -> ContainerInfo naming consistency
- Add post-install and allow-sudo fields to config YAML example
- Document core/paths.py constants including MODULES_DIR
- Add target config normalization rules
- Clarify validate_env as eager precondition check, not a plan action
- Clarify setup show as effectively setup run --dry-run

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 04:18:51 +02:00
5222acc233 Add architecture redesign spec for flow CLI rewrite
Full rewrite spec covering: 4-layer architecture (core/domain/services/commands),
plan-then-execute pattern, correct module path resolution, unified package domain
shared by bootstrap, context-aware command surface, and setup modules abstraction.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 04:12:59 +02:00
c0b378c424 refactor-1 2026-03-15 21:46:50 +02:00
24d682adf1 new 2026-02-25 17:20:43 +02:00
5896b43221 make isntall 2026-02-25 15:56:54 +02:00
d4e1f094a2 make isntall 2026-02-25 15:55:27 +02:00
1565ba8c02 make isntall 2026-02-25 15:49:40 +02:00
ad9dfde233 agents 2026-02-25 15:33:27 +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