Give the reason 0105's queue answers are unwritten that survives the queue - #413
Merged
Merged
Conversation
…queue Closes #412 The `What is not here` section of the cache envelope said nothing in this tree holds a queue, and gave that as the reason none of 0105's three answers for a queue entry is written there. `src/server/write_queue.rs` holds the queue and says so in its own words. The sentence was written on 2026-08-28 and the queue landed on 2026-08-30, in a change under `src/server/` that had no reason to open a section in the cache. The conclusion is unchanged and only the reason moves. What actually holds all three is that nothing puts a queue entry in an envelope at all: the queue lives in memory for as long as the value does, its durability is unbuilt and no drain runs, so there is no stored entry for one of these checks to refuse and no drain for one of them to continue past. That reason survives the arrival the old one did not. What was wrong: an absence used as a reason after the thing had arrived. How it was found: by reading this paragraph against the module it says does not exist, which opens by saying it holds the queue a drain would walk. Every changed line is a documentation comment. No type, constant, function, test or behaviour moves, none of 0105's three answers is written, and #47 is still where they belong. Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
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 #412
What changed
The
What is not heresection ofsrc/cache/envelope.rssaid nothing in thistree holds a queue, and gave that as the reason none of 0105's three answers for
a queue entry is written there. It no longer says it. The paragraph names
crate::server::write_queueas what holds the queue, gives the reason that isactually load-bearing, and says what it claimed before and how that was found.
The conclusion does not move: none of the three is written here and #47 is still
where they belong. Only the reason changes, from an absence that has been filled
to one that has not.
Every changed line is a documentation comment. No type, constant, function, test
or behaviour moves, and none of 0105's three answers is written.
What failure it prevents
A reason that stopped being true while the sentence it supports stayed right.
That is the shape that survives longest, because nothing about the conclusion
looks wrong, and it costs whoever acts on it: the paragraph as it stood told the
next person that a queue has to exist before 0105's answers can be written, and
one does - with the standing drop counter that 0105's first answer says its
report counts into already in it.
The replacement is chosen so that it cannot fail the same way. "Nothing holds a
queue" ends the day a queue lands. "Nothing puts a queue entry in an envelope"
ends the day the queue is stored, which is the same day the three answers become
writable, so the reason and the conclusion now expire together.
This is a correction and the failure has already happened. What was wrong: an
absence used as a reason after the thing had arrived. How it was found: by
reading the paragraph against the module it says does not exist, which opens by
saying it holds the queue a drain would walk.
Evidence
Read at
675a1979138b8c40b97b56ca225fc39421ea7d7e, which is the base of thisbranch. The head being pushed is
d105a3c.The sentence as it stood.
What holds the queue, in its own words.
Two days apart, and nothing has opened the paragraph since.
The reason that replaces it, out of the same module.
What the old reason cost, if somebody had acted on it. 0105's first answer
reaches for a counter the queue already keeps:
What ran here
cargo build --locked --all-targetsfinishes without error on this branch, andthe suite is green:
Ten result lines, and not one of them reports a failure.
The verdicts the gate reads are the runs this pull request triggers rather than
these.
The intra-doc link this change adds resolves, and the check that would say so
does not run in this gate.
cargo docfails on this tree for an ambiguous linkin
src/artwork/budget.rsthat this branch does not touch, so the run cannot bequoted as a pass. It fails identically with this change stashed, and it names no
diagnostic for either file this paragraph mentions. That is a comparison of two
runs rather than a green verdict, and no leg of this gate runs
cargo docatall, so nothing here would have caught a broken link either way.
What this does not cover
docs/decisions/0047-the-write-queue.md, which carries the same claim -"None of this has happened here, because there is no queue in this tree" - and
is a landed record. Whether a landed record's prose that has gone false
because the tree moved may be corrected in place is the decision 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 waits
on, so that line is left exactly as it stands.
src/artwork/budget.rs, and the fact thatno leg here runs
cargo doc. Both are outside this issue's scope and neitheris opened by this change.
where they belong.
What is not hereparagraphof the envelope against the module it names. That is a sweep of one paragraph
rather than of
src/cache/.evidence above stands in place of one.