Commit Graph
6 Commits
Author SHA1 Message Date
JujuforceandClaude Opus 4.8 cd02c09ad0 fix: skip NTFS DOS (8.3) short-name entries when extracting
When a file or directory has a separate 8.3 short name, it appears in the NTFS
directory index twice: once under its Win32 long name and once under the Dos
short name. The extractor iterated all index entries, so every such item was
written a second time under its mangled NAME~1.EXT alias — and short-named
directories had their entire subtree re-extracted.

Skip index entries in the Dos namespace (the file is still extracted via its
Win32 entry). Add unit tests for the skip decision.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 14:03:30 +02:00
jujuforce 2ef6c992f9 fix: resolve VHD chains via parent/own GUIDs 2026-04-20 20:44:56 +02:00
JujuforceandClaude Opus 4.6 068badad7e feat: name output folder after the input .app file
Output directory is now derived from the input .app path (without
extension) instead of the intermediate VHD filename.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:40:18 +01:00
JujuforceandClaude Opus 4.6 2121b43699 feat: pure Rust VHD merge, remove PowerShell dependency
Replace Set-VHD + Merge-VHD PowerShell cmdlets with a pure Rust
MergedVhdReader that overlays delta blocks on the base VHD using
the sector bitmap to decide which sectors come from which disk.
No actual merge to disk needed — reads directly from both files.

- No admin privileges or UAC prompts required
- No Hyper-V or PowerShell dependency
- Cross-platform (works on Windows and Unix)
- Remove #[cfg(windows)] from merge/extract path

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:40:18 +01:00
JujuforceandClaude Opus 4.6 65b070adbd refactor: clean up code, use constants, separate concerns
- Move VHD parsing and NTFS extraction to src/vhd.rs
- Replace all hardcoded magic values with named constants
- Extract shared progress bar style to constant
- Simplify main.rs merge/resolve logic with helper functions
- Condense formatting without changing behavior

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:40:18 +01:00
JujuforceandClaude Opus 4.6 f612c44f19 feat: pure Rust VHD extraction, no admin/Hyper-V needed
Replace PowerShell-based VHD mounting (Set-VHD/Mount-VHD/Copy-Item)
with a pure Rust implementation. New src/vhd.rs module:
- VhdReader<R> parses fixed and dynamic VHD formats
- Handles MBR partition tables and NTFS offset detection
- Dynamic VHD support with BAT (Block Allocation Table) parsing
- Recursive NTFS directory extraction with timestamp preservation
- No elevation, no Hyper-V, works cross-platform

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:40:18 +01:00