5 Commits
Author SHA1 Message Date
huntedbytheirs bd26e7f428 feat(upgrade): add -Syu upgrade for tofu-installed recipe packages
- src/tofu/commands/upgrade.d: full 7-step upgrade pipeline
  - Fetches index, lists installed state, compares versions
  - Shows upgrade plan with confirmation prompt
  - REUSES installCommand per outdated package (force=true, noconfirm=true)
  - Continue-on-failure for multi-package upgrades
  - Binary-only packages excluded (pool=binary → skip)
  - 6 unittests: no-installed, all-uptodate, outdated-upgraded,
    removed-from-index, multi-with-failure, confirmation-denied
- src/main.d: wire upgrade stub → upgradeCommand(pa, cfg)
- Evidence: dub test (23/23 pass) + dub build clean
2026-08-08 18:43:21 -04:00
huntedbytheirs 4d8af8f13d feat(install): add -S install with --dry-run and --noconfirm flags
Create full install pipeline (plan task 21):
- src/tofu/recipeparse.d: light .recipe Lua parser (parseRecipeFile)
- src/tofu/commands/install.d: installCommand with delegate seams
- 8 unit tests covering: happy path, not-found, dep cycle, build
  failure, install failure, --dry-run, --noconfirm, user abort
- All 21 modules pass dub test, dub build passes
- Evidence: .omo/evidence/task-21-tofu-core.log
2026-08-08 18:38:22 -04:00
huntedbytheirs 854e7155f9 fix(errors): add actionable error messages for all 16 failure paths 2026-08-08 18:21:17 -04:00
huntedbytheirs ba411e9fc4 feat(resolve): add version-constraint-aware dep resolution with binary fallback 2026-08-08 17:53:45 -04:00
huntedbytheirs 348f0e3bac feat(types): add core data structures
PackageIndex, Recipe, DepConstraint, BuildPlan, BuildResult, CacheManifest, BinaryCheckResult structs. Pool/BuildSystem/DepOp/Source enums. DepConstraint.parse() ported from ZETA vercmp.lua. TypesException for parsing errors. All @safe, all strings default to empty string.
2026-08-08 17:17:20 -04:00