SIGN IN SIGN UP

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