Why
The indexer only knows three libraries (react, fastapi, vue). Each new library is a self-contained registry entry, making this a great repeatable contribution. Flask is a natural next pick: the Pallets docs live in the same repo as the source, so version tags resolve cleanly - the same story as FastAPI.
What to do
- In
sidecar/src/docchat_sidecar/indexer.py, add a _FLASK_DOC_PATHS tuple of the most useful Markdown doc paths from pallets/flask, then register a _LibraryConfig entry in _LIBRARY_CONFIG with an appropriate ref_for (version tag vs. main).
- Confirm the fetched files chunk cleanly (frontmatter/import stripping is already handled for MDX; adjust if Flask's docs need different noise-stripping).
Acceptance criteria
- The library resolves through
_urls_for and indexes without error against a mocked fetch (extend sidecar/tests/test_indexer.py).
- Ideally add 2-4 Q/A pairs for the new library to
evals/corpus.json.
Pointers
indexer.py: _LibraryConfig, the _LIBRARY_CONFIG registry, and the _*_DOC_PATHS tuples.
The same recipe applies to Django (#12), Express, Svelte, Pydantic, etc. - each is independently pickable.
Why
The indexer only knows three libraries (
react,fastapi,vue). Each new library is a self-contained registry entry, making this a great repeatable contribution. Flask is a natural next pick: the Pallets docs live in the same repo as the source, so version tags resolve cleanly - the same story as FastAPI.What to do
sidecar/src/docchat_sidecar/indexer.py, add a_FLASK_DOC_PATHStuple of the most useful Markdown doc paths frompallets/flask, then register a_LibraryConfigentry in_LIBRARY_CONFIGwith an appropriateref_for(version tag vs.main).Acceptance criteria
_urls_forand indexes without error against a mocked fetch (extendsidecar/tests/test_indexer.py).evals/corpus.json.Pointers
indexer.py:_LibraryConfig, the_LIBRARY_CONFIGregistry, and the_*_DOC_PATHStuples.