Skip to content

Give twelve modules' connection absence the reason that holds, which is the library and not the tree - #441

Merged
iderex merged 1 commit into
mainfrom
the-connection-absence-these-modules-give-is-the-librarys-440
Sep 18, 2026
Merged

iderex merged 1 commit into
mainfrom
the-connection-absence-these-modules-give-is-the-librarys-440

Conversation

@iderex

@iderex iderex commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

The issue this belongs to

Closes #440

What changed

Fourteen doc comments across twelve modules under src/ stop giving the absence
of 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::transport
were 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.rs named the fake server as the thing #44's condition drives
and then said this tree makes no request; 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 in this tree, and the core that would drive
it is #27.

src/server/certificate.rs said "There is no socket either", taking its subject
from 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.rs for #438.

git grep -n "ls-files '\*\.md'" origin/main -- .github/doc-paths/doc-paths.sh
origin/main:.github/doc-paths/doc-paths.sh:440:  git ls-files '*.md'

Evidence

Readings at the parent commit, a53f78a2d449d4e2a147cd6e4a0f069f2424eb99, except
where a historical commit is named.

The thirteen sentences that said it in so many words:

git grep -n -E 'othing in this tree (opens a connection|contacts a server|makes a request)' a53f78a -- src/
a53f78a:src/artwork/address.rs:35:/// measurement. Nothing in this tree contacts a server, and #104 is the route by
a53f78a:src/artwork/announced.rs:20://! WHAT IS NOT HERE IS THE FETCH. Nothing in this tree opens a connection, for
a53f78a:src/artwork/presence.rs:72://! is #27 and nothing in this tree opens a connection, so a caller receiving
a53f78a:src/playback/report.rs:47://! WHAT IS NOT HERE IS THE DELIVERY. Nothing in this tree opens a connection,
a53f78a:src/server/library.rs:23://! WHAT IS NOT HERE IS A READ. Nothing in this tree makes a request, for the
a53f78a:src/server/library.rs:329:    //! nothing in this tree makes a request.
a53f78a:src/server/recovery.rs:31://! WHAT IS NOT HERE IS THE PROBE. Nothing in this tree opens a connection, for
a53f78a:src/server/retry.rs:59://! WHAT IS NOT HERE IS THE REQUEST. Nothing in this tree opens a connection, for
a53f78a:src/server/states.rs:19://! WHAT IS NOT HERE IS THE REQUEST. Nothing in this tree opens a connection, for
a53f78a:src/server/states.rs:363:    //! the fake server at several delays; nothing in this tree makes a request
a53f78a:src/server/write_queue.rs:32://! WHAT IS NOT HERE IS THE DELIVERY. Nothing in this tree opens a connection,
a53f78a:src/session/password.rs:376:    //! fake server, and nothing in this tree opens a connection to drive one
a53f78a:src/session/quick_connect.rs:17://! WHAT IS NOT HERE IS THE POLL. Nothing in this tree opens a connection, for

The fourteenth, which says it by ellipsis:

git show a53f78a:src/server/certificate.rs | sed -n '20,23p'
//! the platform in so many words - the core validates "using the platform's own
//! trust store and the platform's own path building" and "does not reimplement
//! it" - and nothing in this tree reaches a platform. There is no socket either,
//! for the reason [`super::transport`] gives about itself. So no value of

The reason eight of them cite, which is narrower and correct:

git show a53f78a:src/server/transport.rs | sed -n '30,31p'
//! So nothing in this module reads or writes a byte, and the type parameter on
//! [`IdleConnections`] is what keeps it that way: the pool is written over
git grep -c 'gives about itself' a53f78a -- src/
a53f78a:src/artwork/announced.rs:1
a53f78a:src/server/certificate.rs:1
a53f78a:src/server/library.rs:1
a53f78a:src/server/recovery.rs:1
a53f78a:src/server/retry.rs:1
a53f78a:src/server/states.rs:1
a53f78a:src/server/write_queue.rs:1
a53f78a:src/session/quick_connect.rs:1

The tree opens connections:

git grep -n 'TcpStream::connect\|TcpListener::bind' a53f78a -- tests/ src/
a53f78a:tests/fake_server/client.rs:84:        TcpStream::connect(server.address()).expect("a connection to the fake server");
a53f78a:tests/fake_server/mod.rs:147:        let listener = TcpListener::bind(("127.0.0.1", 0))
a53f78a:tests/fake_server/mod.rs:214:        if let Ok(waker) = TcpStream::connect(self.address) {

and two integration tests in the ordinary suite drive it:

git grep -ln 'fake_server' a53f78a -- tests/
a53f78a:tests/every_hostile_answer_becomes_a_named_kind.rs
a53f78a:tests/the_fake_server_answers_every_capability.rs

Every one of the fourteen is younger than that apparatus:

git log a53f78a --format='%h %ad %s' --date=short --diff-filter=A -- tests/fake_server/mod.rs tests/fake_server/client.rs
b6db24d 2026-08-28 Build the one point a failure becomes a kind, and refuse a second one (#228)
e76657e 2026-08-28 Serve 0010's whole surface from a loopback fake, and let a test move the clock (#227)
for f in src/artwork/address.rs src/artwork/announced.rs src/artwork/presence.rs src/playback/report.rs src/server/certificate.rs src/server/library.rs src/server/recovery.rs src/server/retry.rs src/server/states.rs src/server/write_queue.rs src/session/password.rs src/session/quick_connect.rs; do git log a53f78a --format="  %ad $f" --date=short --diff-filter=A -- $f; done
  2026-08-29 src/artwork/address.rs
  2026-08-30 src/artwork/announced.rs
  2026-08-30 src/artwork/presence.rs
  2026-09-03 src/playback/report.rs
  2026-08-30 src/server/certificate.rs
  2026-08-31 src/server/library.rs
  2026-08-30 src/server/recovery.rs
  2026-08-31 src/server/retry.rs
  2026-08-31 src/server/states.rs
  2026-08-30 src/server/write_queue.rs
  2026-08-31 src/session/password.rs
  2026-08-30 src/session/quick_connect.rs

What the replacement statement rests on. Nothing under src/ names a socket at
all:

git grep -n 'std::net\|TcpStream\|TcpListener' a53f78a -- 'src/**/*.rs'

exits 1 and prints nothing, which is grep selecting nothing rather than an
error.

The diff:

git diff --stat origin/main...HEAD
 src/artwork/address.rs       | 12 ++++++++++--
 src/artwork/announced.rs     | 14 +++++++++++---
 src/artwork/presence.rs      | 10 +++++++++-
 src/playback/report.rs       | 19 +++++++++++++------
 src/server/certificate.rs    | 17 +++++++++++++----
 src/server/library.rs        | 29 +++++++++++++++++++++++------
 src/server/recovery.rs       | 21 +++++++++++++++------
 src/server/retry.rs          | 15 +++++++++++----
 src/server/states.rs         | 31 +++++++++++++++++++++++--------
 src/server/write_queue.rs    | 18 +++++++++++++-----
 src/session/password.rs      | 10 ++++++++--
 src/session/quick_connect.rs | 20 ++++++++++++++------
 12 files changed, 163 insertions(+), 53 deletions(-)

No claim of this shape is left under src/:

git grep -n -E 'othing in this tree (opens a connection|contacts a server|makes a request)' -- src/ ; echo "exit=$?"
exit=1

The runs at this commit:

cargo test --locked 2>&1 | grep -c '^test result: ok'
10
bash .github/format/format.sh check >/dev/null ; echo "exit=$?"
exit=0
bash .github/lint/lint.sh check >/dev/null ; echo "exit=$?"
exit=0
bash .github/doc-paths/doc-paths.sh check >/dev/null ; echo "exit=$?"
exit=0
bash .github/invariants/invariants.sh check >/dev/null ; echo "exit=$?"
exit=0

cargo build --locked --all-targets finishes without error at this commit, and
cargo clippy --locked --all-targets -- -D warnings exits 0. Ten result lines,
all reading ok; a run that collected nothing would print a result line too,
which is what .github/test/test.sh refuses on the gate, and that leg was not
run 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

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.

…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
iderex merged commit 3686642 into main Sep 18, 2026
28 checks passed
@iderex
iderex deleted the the-connection-absence-these-modules-give-is-the-librarys-440 branch September 18, 2026 02:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant