Skip to content

Say that queue drops are silent and how the tags block skips lines - #20

Merged
dmccoystephenson merged 1 commit into
mainfrom
feature/readme-silent-queue-drops-and-tag-block-rules
Oct 18, 2026
Merged

dmccoystephenson merged 1 commit into
mainfrom
feature/readme-silent-queue-drops-and-tag-block-rules

Conversation

@dmccoystephenson

@dmccoystephenson dmccoystephenson commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Stage A documentation accuracy sweep. Every README section, the class and method Javadoc, the pom.xml description and version, and the build.yml matrix comment were checked against TraceClient.java. Two gaps were found, both in the README:

  • "What report promises" → Bounded. The row sits directly under "Drops are logged at FINE if you gave a logger". A report dropped by a full queue goes through ThreadPoolExecutor.DiscardPolicy and is never logged, at any level. The row now says so. queue_isBoundedAndDropsRatherThanGrows now attaches a RecordingHandler and asserts that no record is logged across the flood. Every delivered report gets a 201, so any record would have to come from a drop.
  • "Server-wide tags". The first bullet now also says that a line indented differently from the block's first entry is skipped, and that an enabled: line inside the block is a tag, not the switch. Both behaviours were already stated in parseServerWideConfig's Javadoc and pinned by serverWideTags_blockEndsAtTheNextUnindentedLineOrEndOfFile and serverWideTags_aHashIsACommentOnlyAfterWhitespace.

No production code changed. The "Opting out" and "Keys" sections were left untouched.

No tracking issue: both gaps were found during the sweep.

Test plan

  • mvn -B verify locally (Java 21): Tests run: 78, Failures: 0, Errors: 0, Skipped: 0
  • CI matrix build (8), build (17), build (21) green on the PR head

Deferred issues

This PR description was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).

🤖 Generated with Claude Code


drafted by Claude on behalf of Daniel Stephenson

The "Bounded" row sat under "Drops are logged at FINE", but a report
dropped by a full queue goes through DiscardPolicy and is never logged.
The row now says so, and the flood test attaches a logger and checks
nothing is logged.

The server-wide tags bullets now also say that a line indented
differently from the block's first entry is skipped, and that an
enabled: line inside the block is a tag rather than the switch. Both
were already in parseServerWideConfig's Javadoc and its tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dmccoystephenson

Copy link
Copy Markdown
Member Author

Self-review rubric (anchor: CI run 39114275033 on the PR head, build (8), build (17) and build (21) all pass):

  • Scope: PASS. Only README.md (two passages) and one existing test are touched, and both serve the two documented gaps. No formatting churn.
  • Tests-new: PASS (n/a). No new public members.
  • Tests-fix: PASS (characterization, verified empirically). No production fix is in scope. To show the new assertion can fail, DiscardPolicy was temporarily replaced locally with (r, e) -> log("dropped"). queue_isBoundedAndDropsRatherThanGrows then failed with a full queue drops without logging, but logged: 511. Once TraceClient.java was restored, it passes.
  • Sibling structure: PASS. No new files. The test reuses the RecordingHandler and uniquely named Logger pattern from report_doesNotThrowWhenNothingIsListening.
  • Sibling renames: PASS (n/a). Nothing renamed. The test name was kept because the skill's flake list refers to it by name.
  • Docs: PASS.
    • The "Bounded" row now matches the DiscardPolicy in the constructor.
    • The tags bullet now matches the entryIndent check in parseServerWideConfig and the enabled:-inside-the-block case in serverWideTags_blockEndsAtTheNextUnindentedLineOrEndOfFile.
    • The class Javadoc ("new reports are dropped rather than accumulated") does not contradict either change.
    • The version strings agree in all four places (0.6.1).
  • Issue resolution: PASS (n/a). No Closes reference, and closingIssuesReferences is empty. The quoted closing keyword in the first draft of the body was reworded, so A quoted enabled: "false" in the server-wide config does not turn reporting off #15 is not closed again on merge.
  • CI: PASS. All three matrix legs are green.

Repo-specific:

  • No dependencies / Single file / Java 8 / Environment seam / Opt-out contract: PASS. src/main is unchanged, pom.xml is untouched, and build (8) is green.
  • Never throws / Non-blocking & bounded: PASS (n/a). There are no production changes.

Observations:

  • README.md:139: "Drops are logged at FINE" still reads as covering every drop when the row is read on its own. The "Bounded" row now gives the exception explicitly. Rewording the row was not considered necessary.
  • The do-not-auto-merge paths were checked: no .github/workflows, pom.xml, version strings, wire format, or README "Opting out"/"Keys" sections are touched.

This review was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).


drafted by Claude on behalf of Daniel Stephenson

@dmccoystephenson
dmccoystephenson merged commit 5d00476 into main Oct 18, 2026
3 checks passed
@dmccoystephenson
dmccoystephenson deleted the feature/readme-silent-queue-drops-and-tag-block-rules branch October 18, 2026 09:11
dmccoystephenson added a commit that referenced this pull request Oct 19, 2026
…adoc (#21)

* Say what the logger hears and that queue drops are silent, in the Javadoc

Builder.logger said "Where dropped reports are mentioned", but a report
dropped by the full queue goes through DiscardPolicy and is never
logged, as the README's "Bounded" row has said since #20. The logger
also hears more than drops: build() logs a server-wide config or install
ID file it could not read or write. The Javadoc now lists what is logged
and what is not.

The class Javadoc's "It is bounded" bullet now says the drop is silent,
matching the same README row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Rewrap the bounded bullet in the class Javadoc

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
dmccoystephenson added a commit that referenced this pull request Oct 20, 2026
…ged (#22) (#23)

The drops-are-silent assertion from #20 required zero log lines, so one
loopback send failing on the Java 8 runner turned main red after #21.
Now only "could not deliver" lines are allowed, and far fewer of them
than there were drops. A client that logged each drop still fails it,
and the failure message prints the lines instead of only their count.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant