Repository navigation
Conversation
…ning - Add `restore <backup>` command to restore SQLite from .bak backup files - Add `prune-backups --keep N` command to remove old backups, keep N most recent - Add `--dry-run` flag to `sync` command for preview without writing - Add 50-session desktop cap warning to `status` command - Full i18n support (EN/ZH_HANS) for all new features - Auto-list available backups when no path argument given to restore - Backup directory auto-discovery alongside SQLite file
Break the 3324-line main.rs into separate modules by domain: - types.rs: shared structs, enums, type aliases - locale.rs: all i18n functions (Locale enum, help text, labels) - config.rs: config file reading, path resolution, shared constants - sqlite.rs: SQLite operations (inspect, reconcile, sync helpers) - rollout.rs: rollout metadata file patching and progress tracking - backup.rs: backup/restore/prune and reconcile orchestration - watch.rs: file watcher daemon (run_watch) - status.rs: display/print functions and status collection main.rs is now a thin ~1000-line entry point containing only: CLI structs, main(), parse_cli(), validate_provider_override(), localized_command(), install_service(), uninstall_service(), and tests. All 22 tests pass (19 pass, 3 pre-existing Windows failures identical to baseline).
- Fix TOML path escaping: replace Windows backslashes with forward slashes when writing paths into TOML config files in tests - Make builds_install_next_steps platform-agnostic: don't assert macOS-specific launchctl output on non-macOS - Normalize path separators in comparison for Windows compatibility
- default_codex_home() now falls back through HOME → USERPROFILE → HOMEDRIVE+HOMEPATH, working in Windows cmd/powershell - Removed macOS-specific CLI aliases (install-launchd, uninstall-launchd, print-plist) - Renamed locale functions from launchd/plist prefix to platform-neutral service_* / config_path_* names - Same home dir fix applied to service.rs private default_codex_home()
|
Thanks for doing the module split. I like the overall direction: moving config/sqlite/rollout/backup/status/watch/service/locale/types out of the giant However, this PR should not be merged in its current form. Since #7 and its follow-up have now landed on Blocking items:
Current This branch still contains the older Windows
Please rebase onto current
This PR is titled That makes this difficult to review because behavior changes and file movement are mixed together. Please either:
Current
This branch removes Please keep the existing aliases. If you want to add
After rebasing onto current cargo fmt
cargo test |
No description provided.