fix(ontology): keep the reader's error, and stop claiming macOS has no swap
Two defects, both introduced by me earlier today and both found by re-reading rather than by a test. read_memory_stats returned swap totals of zero when `vm.swapusage` could not be read. The resolver treats `swap.total == 0` as "no swap or pagefile configured", a definite statement about the machine, so an unreadable sysctl would have been reported as a confident claim that this Mac has no swap. A failed read now fails the call. That loses the RAM figures with it, which is a real cost and the smaller one — the crate's position throughout is that an absence beats a wrong reading. Doing it properly means Option fields on SwapInfo: 14 construction sites and 80 field reads across two different types of that name. Too large for this change, recorded in the comment rather than quietly left. Separately, the resolver discarded every reader error with `.ok()`, so all failures surfaced as one constant sentence with no way to tell a permission problem from a parse failure from an unimplemented platform. There is a test named `every_absence_carries_a_usable_reason`, and a constant string passes it while telling a reader nothing. The helpers now return Result<_, String> and both call sites put the reason in the note. Same shape as two other faults today: an assertion that counted rows instead of naming them, and a benchmark that printed a median instead of its samples. The information existed and was thrown away at the last step. Cross-checked against x86_64-unknown-linux-gnu and aarch64-apple-darwin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A
Adam Erickson committed
a1bf39f7a513d2c348564ec8d7b43d2cf87848d9
Parent: 32b5dea