Give twelve modules' connection absence the reason that holds, which is the library and not the tree - #441
Merged
iderex merged 1 commit intoSep 18, 2026
Conversation
…is the library and not the tree Fourteen doc comments across twelve modules under `src/` said that nothing in this tree opens a connection, makes a request or contacts a server. Each was the stated reason for something: a module holding no fetch, no read, no probe, no poll, no delivery, and a set of landed issue conditions being asked of nothing. Every one of them was false on the day it was written. `tests/fake_server/` has bound a loopback listener and `tests/fake_server/client.rs` has sent requests to it since 2026-08-28, and all twelve files arrived between 2026-08-29 and 2026-09-03, so the reasons were refuted by the tree before they were written rather than going stale afterwards. Eight of the fourteen cited `crate::server::transport` for the reason, and that module says of itself that nothing in THAT MODULE reads or writes a byte. The citation was correct and the restatement was one scope wider than the thing it cited. Each of the eight now quotes it at the scope it uses about itself. Each site now says what is checkable: the library opens no socket and makes no request. `git grep -n 'std::net\|TcpStream\|TcpListener' -- 'src/**/*.rs'` exits 1 and prints nothing, which is the statement that holds. Two of the fourteen refuted themselves inside one sentence. The test module of `src/server/states.rs` named the fake server as the thing #44's condition drives and then said this tree makes no request, and the test module of `src/session/password.rs` did the same for #30's sign-in. Both now give the reason that holds: the apparatus is here and the core that would drive it is #27. What failure it prevents: a reader deciding whether a gap in the suite is closable. A reason written as a property of the repository - no connections anywhere - reads as no apparatus and therefore no possible test. A reason written as a property of the library reads as a dependency on #27 and #29, which is what it is. The two are different gaps with different owners, and the first reading is the one that stops somebody looking. No negative disclosure is softened here. Every issue condition that was asked of nothing in these files is still asked of nothing, in the same words, and nothing claims otherwise. #53's three, #39's three, #45's three, #31's three, #44's, #30's, #47's two and #29's second remain unmet. The platform half of `src/server/certificate.rs` is a different absence and is untouched: that file still says nothing in this tree reaches a platform, and this change reads no evidence about it. What was wrong, and how it was found: a sweep of absence claims in files no check reads, run against the tree, after the same defect was repaired in `src/lifecycle/mod.rs` for #438. `.github/doc-paths/doc-paths.sh` takes `git ls-files '*.md'` as its subject, so a claim in a Rust doc comment is read by nothing here, and the next sentence of this shape lands as green as these fourteen did. No type, field, constant, assertion or test changes. The diff is doc comments. `cargo build --locked --all-targets` and `cargo test --locked` are green at this commit: ten suites, 772 passed, 0 failed. `.github/format/format.sh check`, `.github/lint/lint.sh check`, `.github/doc-paths/doc-paths.sh check` and `.github/invariants/invariants.sh check` each exit 0. `.github/shell-analysis/shell-analysis.sh` was NOT run here: `shellcheck` is not on this machine and the script says so rather than passing. No shell file is touched and the gate runs that leg. Closes #440 Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
iderex
deleted the
the-connection-absence-these-modules-give-is-the-librarys-440
branch
September 18, 2026 02:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The issue this belongs to
Closes #440
What changed
Fourteen doc comments across twelve modules under
src/stop giving the absenceof a connection, of a request or of a server contact in THIS TREE as their
reason.
Each site now says what is checkable: the library opens no socket and makes no
request. That is the statement the eight sites citing
crate::server::transportwere always entitled to, because the reason that module gives about itself is
about the module - "nothing in this module reads or writes a byte" - and the
restatement was one scope wider than the thing it cited.
Two of the fourteen refuted themselves inside one sentence. The test module of
src/server/states.rsnamed the fake server as the thing #44's condition drivesand then said this tree makes no request; the test module of
src/session/password.rsdid the same for #30's sign-in. Both now give thereason that holds: the apparatus is in this tree, and the core that would drive
it is #27.
src/server/certificate.rssaid "There is no socket either", taking its subjectfrom the clause before it, which is about this tree. That clause is now about the
library. Its platform half is a different absence, is untouched, and this change
reads no evidence about it.
Each correction records what the sentence said and that it was refuted before it
was written.
What failure it prevents
A reader deciding whether a gap in the suite is closable. A reason written as a
property of the repository - no connections anywhere - reads as no apparatus and
therefore no possible test. A reason written as a property of the library reads
as a dependency on #27 and #29, which is what it is. Those are different gaps
with different owners, and the first reading is the one that stops somebody
looking.
This has already happened rather than could: all fourteen sentences landed
refuted and have stood since dates between 2026-08-29 and 2026-09-03.
No negative disclosure is softened. #53's three conditions, #39's three, #45's
three, #31's three, #44's, #30's, #47's two and #29's second are still asked of
nothing in these files, in the same words.
How it was found: a sweep of absence claims in files no check reads, run against
the tree, after the same defect was repaired in
src/lifecycle/mod.rsfor #438.Evidence
Readings at the parent commit,
a53f78a2d449d4e2a147cd6e4a0f069f2424eb99, exceptwhere a historical commit is named.
The thirteen sentences that said it in so many words:
The fourteenth, which says it by ellipsis:
The reason eight of them cite, which is narrower and correct:
The tree opens connections:
and two integration tests in the ordinary suite drive it:
Every one of the fourteen is younger than that apparatus:
What the replacement statement rests on. Nothing under
src/names a socket atall:
exits 1 and prints nothing, which is
grepselecting nothing rather than anerror.
The diff:
No claim of this shape is left under
src/:The runs at this commit:
cargo build --locked --all-targetsfinishes without error at this commit, andcargo clippy --locked --all-targets -- -D warningsexits 0. Ten result lines,all reading
ok; a run that collected nothing would print a result line too,which is what
.github/test/test.shrefuses on the gate, and that leg was notrun here.
What a guard here refuses, and the proof it bites
No guard is added or edited. No type, field, constant, assertion or test changes.
The diff is doc comments.
What this does not cover
server for Prefetch and cancel across a wall of two hundred tiles #53's, Implement the library query surface a client needs to show a first screen #39's, Implement the absent-server behaviour and the way back #45's, Sign in with Quick Connect #31's, Implement the slow-server behaviour, reporting progressively rather than at the end #44's, Sign in with a username and a password #30's, Queue what a person did while the server was gone, and reconcile it on return #47's or Decide and implement certificate validation, including the self-signed server #29's conditions.
Those need a core that connects, they belong to Build the HTTP transport, with timeouts, connection reuse and cancellation #27 and Decide and implement certificate validation, including the self-signed server #29, and no assertion
is added.
That is a judgement about each issue's own design and is not taken here. What
is fixed is the reason given, not the verdict about the gap.
written into a Rust doc comment.
.github/doc-paths/doc-paths.shreadsgit ls-files '*.md', and widening it is not asked for here, so this classstays found by hand.
into pixels, about fetching out of a store, about emitting an event and about
reaching a platform are a different subject, each needs its own reading of the
tree, and none of them is touched.
docs/decisions/. Several decision records carry sentences of this shape.A landed record's prose that has gone false because the tree moved is the rule
question 0001 says no check reads a decision record and pastes five workflow files, and a check over docs/decisions/ has run since 2026-09-02 #380 is open on, and nothing here goes near it.
.github/shell-analysis/shell-analysis.shwas NOT run.shellcheckis noton this machine and the script refuses rather than passing. No shell file is
touched by this change and the gate runs that leg.
was run here. Those run on the gate.
Who has read it
Nobody other than the author. There is no second reader on this board tonight,
and the evidence above stands in place of one rather than the question being left
open.