Skip to content

Release 5.0.1

Choose a tag to compare

@thiswillbeyourgithub thiswillbeyourgithub released this 13 May 17:37

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_template parameter 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_MODEL and WDOC_DEFAULT_QUERY_EVAL_MODEL now default to openrouter/deepseek/deepseek-v4-pro and openrouter/deepseek/deepseek-v4-flash
    • Routes through OpenRouter instead of calling the DeepSeek provider directly

fix

  • b555a904: Coerce int to float for 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 missing
  • 1d07163c: Warn and skip instead of crash when whisper test hits a 502 error
  • 8380d8ad: Skip ollama embedding test when the ollama port is unreachable
  • e672e092: Better test cleanup in run_all_tests.sh

add

  • 72819fab: bump_default_models.sh helper script — dry-run by default, --apply to write; syncs model names across docs, README, SKILL, ARCHITECTURE, and docker/env.example

doc

  • 9d7802aa, ec09cf1e, 71560800, c400738f, 96f9ac23: CLAUDE.md and ARCHITECTURE.md updated with new settings documentation requirements, sphinx-apidoc command, bump_default_models.sh usage, and citation feature docs
  • 057bb75f: Added DeepWiki badge to README
  • 3f59670e: SVG updated to remove outdated default model reference"}

Commits details since the last release

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

tests/test_wdoc.py

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

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

tests/run_all_tests.sh

README.md

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

CLAUDE.md

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