D245 - The probe's by-name census was arriving and going nowhere

decided · 2026-08-25 · found by reading obSCEne, which the review said to do

An external review said obSCEne's resolve - a by-name symbol lookup - is "worth more than the rest of this page combined" and is specified but unbuilt, and that the useful action from this side is to state what orbistoun-probe wants a resolve record to contain, so the probe builds against a consumer rather than a guess.

Read-only access confirmed the claim and improved it. The record already exists: obs_report_resolve() writes OBS|resolve|<library>|<symbol>|present|absent|<address>, and its only caller is the symbol census in sections/oracle.c. What is missing is the network verb - the announced capabilities are call,read,report,gpu,blob,reset - so obSCEne needs a verb wired to an existing record, not a new record designed.

And the consumer was already wrong. obSCEne emits two records with the same first three fields:

record fourth field
sym how the symbol is reached
resolve where it landed

This reader had an arm for sym only. A resolve record was carried as Record::Other - kept, exactly as the protocol requires of a record a consumer does not recognise, and contributing no symbol fact at all.

So the census that answers for symbols no title imports - the one thing no collision search over this repository's own candidates can ever reach, and the only item on either roadmap that addresses the naming plateau directly - would have arrived and produced nothing, with no error and no warning. Stating what the consumer wants would have been answering a question about a consumer that did not work.

Record::Resolve is read, Transcript::symbols() collects it, and a test parses the exact line obs_report_resolve writes.

What orbistoun-probe wants, stated

SymbolFact now carries availability: Option<String> and address: Option<String>, each None when its record did not have it. Not an empty string: "the record did not say" and "the record said nothing" are different facts and must not be spelled the same - which is the same rule as D241, one layer out.

Not decided here

Whether obSCEne's resolve verb should also carry availability is obSCEne's call, and this repository is read-only in it. The consumer accepts the record either way and says which half it got.