Symbols are graded differently from values, and four record kinds were left unparsed
sym and section are read now.
orbistoun probe reports which symbols resolved separately
from what functions returned, because they are not the same kind
of fact.
A return value depends on arguments, on state, and on the part.
Existence does not: a name that resolves resolves, so a
present from a stand-in still establishes that the name is
spelled correctly and lives in that library - even where nothing it
returns there can be trusted for the target. Grading both the
same way would either throw away a usable fact or promote an unusable
one, so SymbolFact is a separate type and only
Finding is demoted by part.
Surprises
Four documented record kinds appear in no real output at
all. call, responsive,
measure and progress are in the format's own
table and are absent from every captured exchange and from the example
report. Writing parsers for them would be transcribing a document rather
than reading evidence, which is what every other table in this project
is built to avoid - so they are deliberately unparsed, and a test pins
that an unrecognised kind is kept verbatim rather than dropped. Nothing
is lost by waiting, and the gap is recorded as a choice rather than left
looking like an oversight.
That also retires an idea from the previous entry: filling
arity and returns from call
records is not available, because there are no call
records.
presence is read as an exact word.
Anything that is not present is not a claim that it is - a
target answering something this version has never seen is saying
something it does not understand, and reading an unrecognised answer as
present would invent the single fact the record was consulted for.
The gate grew a check for the mistake I kept making.
no line-continued string literals now fails a file that
adds one, against a ceiling that can only shrink - because
cargo fmt collapses them and bakes the source indentation
into the rendered text. That is exactly the padded output this session
produced four times. The one unlisted offender is
orbistoun-cli/src/main.rs, from lines this thread did not
write, and it is left rather than added to the ceiling: putting somebody
else's new offence on a shrinking list would grant the permission the
check exists to withhold.
Splitting cmd_probe uncovered a doc comment I
had cut in half earlier. Relocating that function had anchored
on the last /// line of cmd_shaders's
doc block rather than its first, so half of one comment sat above the
wrong function for several edits. Restored. The same anchoring mistake
as the buffer_memory split this morning, which makes it a
pattern rather than an accident: prose anchors repeat, and the fix is to
anchor on the fn line.