Skip to content

Say what the logger hears and that queue drops are silent, in the Javadoc - #21

Merged
dmccoystephenson merged 2 commits into
mainfrom
feature/logger-javadoc-drift
Oct 19, 2026
Merged

dmccoystephenson merged 2 commits into
mainfrom
feature/logger-javadoc-drift

Conversation

@dmccoystephenson

Copy link
Copy Markdown
Member

Stage A documentation accuracy sweep. Javadoc-only; no code, wire format or opt-out contract is changed.

Summary

  • Builder.logger Javadoc said "Where dropped reports are mentioned". A report dropped because the queue is full goes through DiscardPolicy and is never logged, which the README "Bounded" row has stated since Say that queue drops are silent and how the tags block skips lines #20. The logger is also handed more than drops: build() logs a server-wide config or install ID file that could not be read or written. The Javadoc now lists what is logged ([trace]-prefixed, at FINE) and states that queue drops are not.
  • The class Javadoc "It is bounded" bullet now says the drop happens without a log line, even at FINE, matching the same README row.

The rest of the sweep (README example, "What report promises", "Opting out", "Getting it", "The wire format", "Building", the class and method Javadoc, pom.xml, the build.yml comment) was checked against TraceClient.java and no other drift was found. The four version strings still agree at 0.6.1.

Test plan

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

Deferred issues

No tracking issue: the drift was found during triage.

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

dmccoystephenson and others added 2 commits October 19, 2026 03:40
…adoc

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>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dmccoystephenson

Copy link
Copy Markdown
Member Author

Self-review rubric (head 6aaeff9):

  • Scope: PASS. One file, TraceClient.java, and only Javadoc: the class "It is bounded" bullet and Builder.logger. No code lines changed.
  • Tests-new: PASS (not applicable). No new public member was added.
  • Tests-fix: PASS (not applicable). This is a documentation fix, not a behaviour change, so there is nothing to revert-and-run.
  • Sibling structure: PASS. No new files were added.
  • Sibling renames: PASS. Nothing was renamed.
  • Docs: PASS. Every claim was checked against the log(...) call sites. send() logs "trace server answered" for any status other than 201 and "could not deliver" for IOException | RuntimeException. resolveInstallId logs an in-memory server-id when the file was unreadable or could not be written. loadOrCreateInstallId logs a read or write failure on the install ID file. readServerWideConfig logs a read failure. DiscardPolicy has no log site, which matches the README "Bounded" row.
  • Issue resolution: PASS (not applicable). No Closes #N. The drift was found in a Stage A sweep.
  • CI: PASS. Run 39231900452 on head SHA 6aaeff9: build (8), build (17) and build (21) all succeeded. Locally, mvn -B verify on Java 21 ran 78 tests with 0 failures.

Repo-specific:

  • No dependencies: PASS. pom.xml is unchanged, and every import is java.*.
  • Single file: PASS. git ls-files src/main lists only TraceClient.java.
  • Java 8: PASS. build (8) is green, and maven.compiler.release is still 8.
  • Never throws / non-blocking / bounded: PASS. No executable code was touched.
  • Environment seam: PASS. System::getenv appears only in the environment initializer.
  • Version agreement: PASS. No version string changed (0.6.1 in all four places).
  • Opt-out contract: PASS. No REASON_*, ENV_*, precedence or README "Opting out" change.

Judgment note: src/main/java/software/stephenson/trace/TraceClient.java:961 — the Builder.logger Javadoc now lists the kinds of message it receives. Any future log(...) call site will need this list updated. A broader wording ("problems ... such as") was considered. It was rejected because the point of the fix is to state precisely that queue drops are not logged.

Do-not-auto-merge path check: only TraceClient.java Javadoc changed. The wire format, REASON_*/ENV_*, precedence, QUEUE_CAPACITY, timeouts, SERVER_WIDE_CONFIG_CONTENT and version strings are untouched, so no protected path matches.

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


drafted by Claude on behalf of Daniel Stephenson

@dmccoystephenson
dmccoystephenson merged commit cde8148 into main Oct 19, 2026
3 checks passed
@dmccoystephenson
dmccoystephenson deleted the feature/logger-javadoc-drift branch October 19, 2026 09:42
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