Repository navigation
Conversation
Four independent reviews (Haiku, Sonnet, Sol, Terra) of v0.14.0; each fix
has a test that fails before it.
- fakeserver Store: a POST naming a generated group panicked in the
connection goroutine and ended the test process; it now gets 441
before anything is filed.
- fakeserver Store: POST looked up its override a second time, so
OverrideTimes was used twice per POST and a refused POST (Times 1) then
read the client's next commands as an article; it now decides on the
reply written.
- fakeserver Store: the AUTHINFO value is the rest of the line byte for
byte, not re-joined from fields ("p q" never matched, "p\tq" matched
"p q").
- fakeserver Peer: the verb is split at any space or tab and the argument
trimmed ("check\t<id>" was 500, "CHECK <id>" kept a space in the id).
- nntp-fakeserver raw "inflate": internal/inflate instead of
compress/flate, which held a Z_PARTIAL_FLUSH command back.
- conformance: with Options.User, a missing Needs capability no longer
skips the check before its ready() logged in and read CAPABILITIES
again.
- conformance: farNumber stays above high when high is 2^31-1 or more.
- conformance: checkOverLine no longer slices the OVERVIEW.FMT name by its
lower-cased length (a panic for names like U+023A).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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.
Fixes for 8 findings of four independent reviews of v0.14.0 (Haiku 5.5, Sonnet 5.5, Sol, Terra), each checked against the code. Each fix has a test that fails on v0.14.0 and passes here. The 64 KiB line cap (all four reviewers' hardening finding) is a separate PR.
Store.AddArticle) and ended the whole test processStore.firstGenerated)TestStorePostGeneratedGroupoverride()a second time;OverrideTimeswas used twice per POST, and with Times 1 a refused POST then read the client's next commands as an articlec.last), as IHAVE in PeerHandler doesTestStorePostOverrideTimesThen: "inflate"usedcompress/flate, which holds a Z_PARTIAL_FLUSH command back until more input comesinternal/inflatethrough a pipe, closed when the handler returnsTestRawInflatePartialFlushOptions.User, a server that lists READER only after AUTHINFO had its reader checks skipped beforeready()could log inNeedsskip waits whenUseris set; every check withNeedscallsready(), which logs in, rereads CAPABILITIES and testsNeedsTestRunNeedsAfterLoginfarNumbercapped at 2^31-1 even when the group's high is at or above it, so the 423 probes could name an existing articleTestParseHelpersstrings.Fields("p q" never matched, "p\tq" matched "p q")cutWord)TestStoreAuthPasswordVerbatimcheckOverLinesliced the OVERVIEW.FMT name by its lower-cased length; a name that grows when lower-cased (U+023A) panicked (recovered as a "panic:" Fail)TestCheckOverLineFoldingNamecutWord, argument trimmed (AUTHINFO values kept verbatim)TestPeerVerbSplitNot changed (checked, by the real-vs-noise bar): Peer with User and no Pass accepts any PASS (documented "no password"), generators running under
Store.mu(only with 100k-article OVERs), nntp-conformance's documented no-verify STARTTLS without-ca, mailrec argv with a newline.gofmt,go vet ./...andgo test ./... -race -count=1pass.🤖 Generated with Claude Code