✨ feat: add relative paths robustet install, docs updates#15
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe PR updates TODO.md with completed task statuses and a new Phase 4 infrastructure plan, refactors WinGet package installation from manifest-based bulk install to per-package install with dual-scope fallback in bootstrap.ps1, modifies backup path storage to base-relative paths in preflight-backup.ps1, and enhances restore path remapping logic to support drive letter substitution and restore target mapping in restore-backup.ps1. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~65 minutes Possibly related PRs
Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: edc8777a1f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| relativePath = $repoFile.relativePath | ||
| source = $repoFile.source | ||
| backupPath = $destination | ||
| backupPath = Get-RelativePath -Path $destination -BasePath $sessionRoot |
There was a problem hiding this comment.
Preserve absolute repo backup paths for bootstrap restore
This change writes manifest.repoFiles[*].backupPath as a path relative to the session root, but bootstrap.ps1 still consumes that field as an absolute filesystem path in Restore-RepoFilesFromManifest (Test-Path $repoFile.backupPath then Copy-Item -Path $repoFile.backupPath). In the first-logon flow, that makes personal repo files (like apps.json / config\backup.json) fail to restore from new backups because the relative path is resolved from the wrong working directory.
Useful? React with 👍 / 👎.
| $stdoutFile = Join-Path $env:TEMP "winget-stdout-$packageId-$(Get-Random).log" | ||
| $stderrFile = Join-Path $env:TEMP "winget-stderr-$packageId-$(Get-Random).log" | ||
|
|
||
| $proc = Start-Process -FilePath "winget" -ArgumentList "install", $packageId, "--accept-package-agreements", "--accept-source-agreements", "--scope", $scope -NoNewWindow -PassThru -RedirectStandardOutput $stdoutFile -RedirectStandardError $stderrFile |
There was a problem hiding this comment.
Keep winget manifest constraints during package install
Switching from winget import of a filtered manifest to winget install <PackageIdentifier> drops manifest-level constraints (for example source selection and any pinned metadata in exported manifests). In manifests that rely on those fields, installs can come from the wrong source or wrong version, which breaks the declarative/reproducible behavior this step is intended to provide.
Useful? React with 👍 / 👎.
Summary by CodeRabbit
New Features
Bug Fixes
Documentation