Release 5.0.1
What's new
feat
- Summary citations (
dcdecc86,6cbf025c,e5d7840b,9d7802aa)- Per-chunk metadata (page, source) injected as XML into summarization input
- LLM prompted to add
[p.N]citations; Python fallback adds them to uncited top-level bullets - Multi-file summaries use
[p.N, filename.pdf]format with shortest disambiguating path - New
citation_url_templateparameter turns page citations into clickable markdown links (e.g.{source}#page={page})
- Query output anchor links (
8f72df69): WDOC_ID citations now render as[N](#document-N)with HTML anchors for in-page navigation
change
- Default models switched to OpenRouter/DeepSeek (
14ac41e4,be3dced3)WDOC_DEFAULT_MODELandWDOC_DEFAULT_QUERY_EVAL_MODELnow default toopenrouter/deepseek/deepseek-v4-proandopenrouter/deepseek/deepseek-v4-flash- Routes through OpenRouter instead of calling the DeepSeek provider directly
fix
b555a904: Coerceinttofloatfor CLI kwargs type checking (fixes Gradio UI sending integer values for float parameters)4015a3a9: Better removal of "deep breath" mentions in summarization prompts
test
61c8238c,0ea3d13d,b34e2e3f: Crash early at import time when required API keys (OPENROUTER_API_KEY,OPENAI_API_KEY,MISTRAL_API_KEY,WDOC_WHISPER_API_KEY) are missing1d07163c: Warn and skip instead of crash when whisper test hits a 502 error8380d8ad: Skip ollama embedding test when the ollama port is unreachablee672e092: Better test cleanup inrun_all_tests.sh
add
72819fab:bump_default_models.shhelper script — dry-run by default,--applyto write; syncs model names across docs, README, SKILL, ARCHITECTURE, anddocker/env.example
doc
9d7802aa,ec09cf1e,71560800,c400738f,96f9ac23: CLAUDE.md and ARCHITECTURE.md updated with new settings documentation requirements,sphinx-apidoccommand,bump_default_models.shusage, and citation feature docs057bb75f: Added DeepWiki badge to README3f59670e: SVG updated to remove outdated default model reference"}
Commits details since the last release
- [0c74f20] by @thiswillbeyourgithub, 10 minutes ago:
bump version 5.0.0 -> 5.0.1
bumpver.toml
docs/source/conf.py
setup.py
wdoc/wdoc.py
- [1d07163] by @thiswillbeyourgithub, 31 minutes ago:
test: warn instead of crash when whisper test hits 502 error
A 502 from the whisper endpoint means the upstream is unavailable, not
that the code under test failed. Skip the test in that case so the run
reports not-tested rather than a false negative.
tests/test_wdoc.py
- [b34e2e3] by @thiswillbeyourgithub, 51 minutes ago:
test: crash early if WDOC_WHISPER_API_KEY is not set
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
tests/test_wdoc.py
- [0ea3d13] by @thiswillbeyourgithub, 55 minutes ago:
test: also crash early if MISTRAL_API_KEY is missing for a mistral/ test model
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
tests/test_wdoc.py
- [61c8238] by @thiswillbeyourgithub, 7 hours ago:
test: crash early when required API key for a test model is missing
Check that OPENROUTER_API_KEY / OPENAI_API_KEY are defined when any of the
test models (or their default-model fallbacks) starts with 'openrouter/' or
'openai/'. Fails fast at import time with a clear message instead of
producing opaque auth errors deep in a test run.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
tests/test_wdoc.py
- [8380d8a] by @thiswillbeyourgithub, 7 hours ago:
test: skip ollama embedding test when ollama port is unreachable
Probe OLLAMA_HOST (default 127.0.0.1:11434) before test_ollama_embeddings
and skip with a clear message instead of failing when ollama is not running.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
tests/test_wdoc.py
- [ec09cf1] by @thiswillbeyourgithub, 10 hours ago:
doc: mention bump_default_models.sh in CLAUDE.md and ARCHITECTURE.md
CLAUDE.md gets a new section explaining when and how to run the helper.
ARCHITECTURE.md gets a short pointer next to the default-models table.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
ARCHITECTURE.md
CLAUDE.md
- [be3dced] by @thiswillbeyourgithub, 10 hours ago:
change: prefix default models with 'openrouter/'
deepseek/deepseek-v4-pro -> openrouter/deepseek/deepseek-v4-pro
deepseek/deepseek-v4-flash -> openrouter/deepseek/deepseek-v4-flash
Routes the defaults through OpenRouter rather than calling the deepseek
provider directly. Applied via bump_default_models.sh --apply.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
README.md
SKILL.md
docker/env.example
wdoc/docs/help.md
wdoc/utils/env.py
- [72819fa] by @thiswillbeyourgithub, 10 hours ago:
add: bump_default_models.sh helper
Bumpver-style script for changing WDOC_DEFAULT_MODEL and
WDOC_DEFAULT_QUERY_EVAL_MODEL: reads the current values from
wdoc/utils/env.py, replaces both the full id and its basename across
docs/README/SKILL/ARCHITECTURE, and re-syncs key=value lines in
docker/env.example. Dry-run by default; --apply to write; never commits.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
bump_default_models.sh
- [3f59670] by @thiswillbeyourgithub, 10 hours ago:
svg should not mention an outdated default model
Signed-off-by: thiswillbeyourgithub 26625900+thiswillbeyourgithub@users.noreply.github.com
wdoc/docs/svg/summary.svg
- [14ac41e] by @thiswillbeyourgithub, 10 hours ago:
change: switch default models to deepseek-v4-pro / deepseek-v4-flash
Update WDOC_DEFAULT_MODEL and WDOC_DEFAULT_QUERY_EVAL_MODEL defaults, and
align README, SKILL, ARCHITECTURE, and help docs to match.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com
ARCHITECTURE.md
README.md
SKILL.md
docker/env.example
wdoc/docs/help.md
wdoc/utils/env.py
- [e672e09] by @thiswillbeyourgithub, 10 hours ago:
better test cleanup
Signed-off-by: thiswillbeyourgithub 26625900+thiswillbeyourgithub@users.noreply.github.com
tests/run_all_tests.sh
- [057bb75] by @thiswillbeyourgithub, 30 hours ago:
doc: add deepwiki badge
Signed-off-by: thiswillbeyourgithub 26625900+thiswillbeyourgithub@users.noreply.github.com
README.md
- [c400738] by @thiswillbeyourgithub, 4 weeks ago:
doc: add sphinx-apidoc command to CLAUDE.md
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
CLAUDE.md
- [7156080] by @thiswillbeyourgithub, 4 weeks ago:
doc: add new settings documentation requirements to CLAUDE.md
Detail that new settings must be documented in help.md and examples.md,
explain env var re-read behavior, list misc.py variables to keep updated,
and add a guide for adding new filetype support.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
CLAUDE.md
- [b555a90] by @thiswillbeyourgithub, 4 weeks ago:
fix: coerce int to float for cli_kwargs type checking
The Gradio UI can send integer values (e.g. 0, 1) for float parameters
like doccheck_min_lang_prob, causing a type check failure. Now int
values are automatically coerced to float when float is the expected type.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
wdoc/wdoc.py
-
[1b08a1e] by @thiswillbeyourgithub, 4 weeks ago:
Merge branch 'enh_citations' into dev -
[96f9ac2] by @thiswillbeyourgithub, 4 weeks ago:
added a CLAUDE.md file
Signed-off-by: thiswillbeyourgithub 26625900+thiswillbeyourgithub@users.noreply.github.com
CLAUDE.md
- [4015a3a] by @thiswillbeyourgithub, 4 weeks ago:
fix: better remover of "deep breath" mention
Signed-off-by: thiswillbeyourgithub 26625900+thiswillbeyourgithub@users.noreply.github.com
wdoc/utils/tasks/summarize.py
- [9d7802a] by @thiswillbeyourgithub, 4 weeks ago:
doc: document citation features in help, examples, README FAQ, and add tests - Add citation_url_template docs to help.md
- Add PDF citation example to examples.md
- Add FAQ entry about source citations in README.md
- Add unit tests for source_replace anchor links and citation URL template
- Fix double-bracket bug in citation URL link generation
Developed with Claude Code.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
README.md
tests/test_wdoc.py
wdoc/docs/examples.md
wdoc/docs/help.md
wdoc/utils/tasks/summarize.py
- [e5d7840] by @thiswillbeyourgithub, 4 weeks ago:
feat: add citation_url_template parameter for clickable citation links
When set (e.g. "{source}#page={page}"), page citations like [p.42]
become markdown links p.42 in summary output.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
wdoc/utils/tasks/summarize.py
wdoc/wdoc.py
- [dcdecc8] by @thiswillbeyourgithub, 4 weeks ago:
feat: add page citations to summaries with hybrid LLM + Python fallback - Prompt instructs LLM to add [p.N] citations from chunk_metadata
- Python post-processing adds fallback citations to uncited top-level bullets
- Multi-file summaries use [p.N, filename.pdf] format
- Ambiguous filenames resolved with shortest distinguishing path
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
wdoc/utils/prompts.py
wdoc/utils/tasks/summarize.py
- [6cbf025] by @thiswillbeyourgithub, 4 weeks ago:
feat: inject per-chunk metadata (page, source) as XML into summarization input
Each chunk now includes its page number and source path as XML metadata
before the text content, giving the LLM context for citations.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
wdoc/utils/tasks/summarize.py
- [8f72df6] by @thiswillbeyourgithub, 4 weeks ago:
feat: replace WDOC_ID plain numbers with markdown anchor links in query output
Citations now render as N instead of plain numbers,
and document sections include HTML anchors for in-page navigation.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
wdoc/utils/tasks/query.py
wdoc/wdoc.py