fix(vault): no empty path in Failed, no silently dropped models
Two faults found by re-reading the module, not by any test. `VaultStatus::Failed` carried `PathBuf::new()` when `VaultConfig::new()` failed — an empty path, which is the exact defect `NotInstalled` was added to remove. It had simply survived in a different arm, so a caller asking where simon looked got "". It now reports the directory the `installed()` probe found, which is the honest answer to that question. A model the vault lists with no versions was skipped with a comment saying that inventing a 0-byte entry would be worse. True, and dropping it silently reports a vault with fewer models than it has, which is the answer this crate says must never be given. They are now named in `VaultReport::versionless`, counted in neither total because nothing about their size was read, and printed by `simon ai models` — a field nothing prints is a field that was dropped with extra steps. Verified against the real vault on this machine: three models, versionless empty, JSON carries the field rather than omitting it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A
Adam Erickson committed
919736876486daec1eac0bb6d72cf7b129f21437
Parent: 4e45c00