Repository navigation
Check code samples, unfired events, Flows and the pipecat CLI against the source - #1506
Merged
Merged
Conversation
… the source
scripts/check-reference.py now also:
- checks Python samples on every page (except the migration guides) for
keywords a pipecat constructor doesn't take, required arguments left
out, deprecated arguments, methods called on objects that don't have
them, and event names a class never registers
- reports events a page documents that nothing fires, and no longer
asks pages to document those
- covers api-reference/pipecat-flows (quoted and Required[] annotations
are unwrapped)
- compares api-reference/cli/{init,eval} with pipecat's Typer commands:
flags, short forms, defaults, deprecations, missing commands
- reads defaults a base __init__ fills in when a setting is unset
The workflow runs on any .mdx change, since samples live on every page,
and no longer refers to the nightly run.
- deprecated constructor arguments (model=, voice=, voice_id=, image_size=) moved to settings=Service.Settings(...) - settings frames use delta= instead of settings= or bare keywords - VAD moved from transport params to LLMUserAggregatorParams on the VAD, Exotel, Genesys and guide pages; removed options dropped - required arguments added (FastAPIWebsocketTransport websocket, RimeHttpTTSService session, replaced by Cartesia as pipecat's eval helpers use) - the deprecated eval run flags marked deprecated
markbackman
force-pushed
the
docs/checker-extensions
branch
from
October 15, 2026 02:03
65cf93c to
ee90c54
Compare
Contributor
|
🔍 Mintlify preview for this branch: https://daily-docs-checker-extensions.mintlify.site |
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.
Summary
The read-through behind #1505 found that most high-impact errors on reference pages are things
check-referencecouldn't see. About half of them are mechanical, so the checker now catches them:_call_event_handler("<name>")reachable in the class or its bases (unfired-event). Pages are no longer asked to document such events. Across all 293 reference pages it reports exactly the five never-fired events Fix what a read-through of the most-edited server reference pages found #1505 removes, and no false positives.pipecat/migration/(which shows the old API on purpose), community pages included, since their samples still call pipecat classes. For calls to pipecat classes: keywords the constructor doesn't take, required arguments left out, deprecated arguments, methods the object doesn't have, event names the class never registers (sample-*). Classes are resolved from the page's imports, or by name when exactly one pipecat class has it.api-reference/pipecat-flows), with quoted andRequired[...]annotations unwrapped.api-reference/cli/init.mdx,eval.mdx) against the Typer commands insrc/pipecat/cli: flags and short forms, defaults, deprecations, commands without a section (cli-*).__init__fills in when a setting is unset (if not is_given(self._settings.x): self._settings.x = ...), which removes five ignore entries.The second commit fixes what the new checks found on 36 pages: deprecated
model=/voice=/voice_id=arguments moved tosettings=Service.Settings(...), settings frames usingdelta=, VAD moved from transport params toLLMUserAggregatorParams(Fire VAD, TEN VAD, guides), arguments that don't exist (Exotel, Genesys, Cartesiaspeed, Deepgramvad_events), missing required arguments, and the two deprecatedeval runflags marked.The workflow runs on any
.mdxchange, since samples are on every page, and its comment no longer mentions the removed nightly run.What to review
TransportParamswithout importing it is still checked asTransportParams. It caught the Speechmatics and VAD samples, and produced no false positives here.CartesiaHttpTTSServiceinstead ofRimeHttpTTSService(Rime requires anaiohttp_sessiona factory has nowhere to own; pipecat's eval helpers use Cartesia);pipecat-flows/types.mdxdrops theRESET_WITH_SUMMARYexample; the Exotel guide sample losesaccount_sid/api_key/api_token, which the serializer doesn't take; the Fire VAD and TEN VAD samples no longer build a transport.Testing
python3 scripts/check-reference.py --pipecat <pipecat main>: 0 findings on 535 pages; three "Before" halves of migration samples are recorded in the ignore listeval.mdx: each reportednode scripts/check-imports.mjs,node scripts/docs-meta-lint.mjs,npx mint broken-links --check-anchors --check-redirects: clean🤖 Generated with Claude Code