Skip to content

docs: fix 14 confirmed bugs from the 2026-06-12 docs audit (B1–B14)#63

Merged
lesnik512 merged 1 commit into
mainfrom
docs/fix-audit-bugs-b1-b14
Jun 12, 2026
Merged

docs: fix 14 confirmed bugs from the 2026-06-12 docs audit (B1–B14)#63
lesnik512 merged 1 commit into
mainfrom
docs/fix-audit-bugs-b1-b14

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Summary

Fixes all 14 bug-severity findings from planning/active/2026-06-12-docs-audit-findings.md — doc statements that are flatly false: snippets that raise if copied, attributes/imports/metrics that don't exist, claims the code contradicts. Each fix was re-verified against current source (post-#61 line shifts accounted for).

ID Page(s) Fix
B1/B2 relay.md OutboxBroker/OutboxRouter now pass the required outbox_table
B3 testing.md, timers.md, dlq.md broker.fake_client → bind the TestOutboxBroker harness (tb.fake_client); dlq.md prose site the audit's enumeration missed
B4 router.md OutboxRoute imported from faststream_outbox.router (not root)
B5 fastapi.md HTTP route reaches the broker via router.broker, not a broker: OutboxBroker annotation (→ 422); documents that annotation shortcuts are subscriber-only
B6 publisher.md OutboxMessage imported from annotations (context-resolved alias)
B7 subscriber.md retry-subclass override renamed get_next_attempt_atget_next_attempt_delay
B8 subscriber.md MANUAL-ack handler's msg annotated OutboxMessage
B9 add-kafka-relay.md durability claim qualified to the retry budget (10 attempts default; ~13–14 min)
B10 setup-prometheus-opentelemetry.md separate registries for middleware + recorder (shared one raises Duplicated timeseries); two scrape routes; double-counting warning
B11 observability.md DLQ-divergence alert uses faststream_outbox_terminal_total (real metric)
B12 observability.md nacked_retried / published event-catalog rows corrected to actual emission tags
B13 checklist.md over-long table name raises ValueError at build time (63 bytes), no silent truncation
B14 checklist.md, troubleshooting.md LISTEN fallback is silent for missing-driver / non-asyncpg URL; WARNING only on connect/permission failure

Scope

  • Bugs only. Inaccuracies (I1–I22) and improvements (P1–P25) from the same audit remain open triage.
  • B3 fix includes one extra site (dlq.md:182) that the audit's site list omitted but is the identical bug.

Test plan

  • just docs-build (mkdocs build --strict) passes
  • Stale-reference sweep: no broker.fake_client, get_next_attempt_at, OutboxBroker(engine=engine), or nacked_terminal_total remain in docs
  • Each source-dependent claim (router.broker, terminal metric name, silent LISTEN path, retry default, registry collision) verified against current code

🤖 Generated with Claude Code

Fixes every bug-severity finding from
planning/active/2026-06-12-docs-audit-findings.md — broken examples,
nonexistent attributes/imports/metrics, and false claims, each verified
against current source:

- B1/B2  relay.md: OutboxBroker/OutboxRouter missing required outbox_table
- B3     testing.md/timers.md/dlq.md: broker.fake_client → bind the
         TestOutboxBroker harness (dlq.md site the audit's list missed)
- B4     router.md: OutboxRoute imported from faststream_outbox.router
- B5     fastapi.md: HTTP route reaches the broker via router.broker, not a
         broker: OutboxBroker annotation (422); shortcuts are subscriber-only
- B6     publisher.md: OutboxMessage from annotations (context-resolved)
- B7     subscriber.md: retry override renamed to get_next_attempt_delay
- B8     subscriber.md: MANUAL handler msg annotated OutboxMessage
- B9     add-kafka-relay.md: durability qualified to the retry budget
- B10    setup-prometheus-opentelemetry.md: separate registries for the
         middleware + recorder (shared one raises Duplicated timeseries);
         double-counting warning
- B11    observability.md: alert uses faststream_outbox_terminal_total
- B12    observability.md: nacked_retried / published catalog rows corrected
- B13    checklist.md: long table name raises ValueError at build time (bytes)
- B14    checklist.md/troubleshooting.md: LISTEN fallback is silent for
         missing-driver / non-asyncpg URL; WARNING only on connect failure

Inaccuracies (I1–I22) and improvements (P1–P25) remain open triage.
mkdocs build --strict passes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lesnik512 lesnik512 merged commit 05c7fd9 into main Jun 12, 2026
3 checks passed
@lesnik512 lesnik512 deleted the docs/fix-audit-bugs-b1-b14 branch June 12, 2026 11:30
lesnik512 added a commit that referenced this pull request Jun 13, 2026
All findings resolved: B1–B14 (#63), I1–I22 (#64), and P1–P25 + the 4
source-side notes (#72). Move active → archived with status: shipped and
PR provenance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
lesnik512 added a commit that referenced this pull request Jun 13, 2026
…hive findings (#72)

* docs: resolve docs-audit improvements P1–P25 + 4 source-side notes

Closes the open tail of the 2026-06-12 docs audit (bugs B1–B14 shipped in
#63, inaccuracies I1–I22 in #64; this is the improvements + source-side
remainder). Every source-referenced claim was verified against the code.

Docs (P1–P25):
- index.md: sync the on-page index with mkdocs nav (tutorials,
  instrumentation seams, prometheus/otel setup, new Operations section).
- installation.md: document the `all` extra.
- how-it-works.md: self-contained DLQ snippet; retarget "Relay tutorial"
  link to the actual tutorial.
- basic.md: say to save the module as app.py.
- tutorials: schema-validation "what's next" pointer; `faststream[cli,kafka]`.
- relay.md: import OutboxMessage alias; document the unstarted-foreign-broker
  WARNING + fail-and-retry safety net; correct the _OutboxConfigError row
  fate (lease-expiry retry, not retry_strategy); fix the misplaced
  NotImplementedError comment.
- timers.md: timer_id dedups only live rows (partial index); fix the
  undefined-`order` snippet.
- subscriber.md: document multi-queue subscribers + connection budget +
  same-queue competition; MANUAL silent-return = terminal reject warning.
- publisher.md: "publisher's" not "decorator's" static headers; make the
  chained example coherent (FastAPI-context session note, no undefined
  symbols); duplicate-delivery-on-crash caveat.
- fastapi.md: document dlq_table/metrics_recorder/routers not exposed on
  OutboxRouter (no router workaround); clarify "fresh session per delivery";
  self-contained quickstart stubs.
- schema-validation.md + alembic.md: compare_server_default=False caveat
  (a green validate_schema does not prove server defaults exist).
- observability.md: `sum by (destination)` on per-queue PromQL; correct the
  `fetched` footnote (skipped when inflight full; first-queue tag only).
- checklist.md: real ExponentialRetry kwarg names (the shorthand raised
  TypeError if copied).

Source-side docstring/comment fixes (no logic change):
- testing.py: "list of _FakeRow records" not "list of dicts"; fix the
  `test_broker.fake_client.dlq_rows` accessor comment; correct the
  TestOutboxBroker docstring (future-dated rows fire immediately in sync
  mode — it contradicted the already-correct module docstring).
- publisher/usecase.py: de-duplicate the _REJECT_RELAY_MSG wording.

Verified: mkdocs build --strict clean (all links/anchors resolve); lint-ci
clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: archive the 2026-06-12 docs-audit findings (shipped)

All findings resolved: B1–B14 (#63), I1–I22 (#64), and P1–P25 + the 4
source-side notes (#72). Move active → archived with status: shipped and
PR provenance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <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