Cut 16.6.1 and bump the package version in pyproject.toml, uv.lock, and
CITATION.cff.
Patch: the agent's LLM workflow carries a far smaller tool surface,
tighter injected context, and smaller persisted configs (#138). Full
mode registers exactly four tools — read_table, pmc_article_context,
derive_config, build_and_audit — because coverage improvement moved
into deterministic supervisor code: map_coverage and
propose_config_edit are pure helpers the supervisor calls in its own
improve loop, and only the opt-in --reflexion path still spends an LLM
call on improvement. Task text now injects bounded per-column
column_digest separator statistics (first 500 data rows), so the
canonical derive → build → answer path is three steps or fewer with
zero inspection tool calls, and the agent rebuilds only on a coded
build error, at most twice. The LLM sees a compact twelve-key
build_and_audit observation (unresolved capped at 20 with a visible
+N more marker) while the supervisor keeps the full report, and the
accepted best config is compacted deterministically before persistence
(compact_config strips keys equal to their Pydantic defaults; the
accuracy-invariance test pins the identical KGX and quality_score,
and failure falls back to the exact original config). state.json now
records config_chars per article. Builds, scores, and persisted
configs remain behaviorally equivalent.
Changelog:
- Versioned the changelog as 16.6.1 and wrote the Performance entry
for the agent workflow redesign (#138). No other entries were
pending — nothing else has merged since 16.6.0.
Docs: docs/agent.md was updated by #138 itself (revised workflow,
context injection, and config persistence sections); the release needs
none beyond the changelog.
Testing:
- uv run pytest -q -> 1248 passed, 3 skipped (96% coverage)
- uv run ruff check . && uv run ruff format --check . && uv run pyright -> clean / 0 errors
- uv lock --check -> up to date
- uv run mkdocs build --strict -> clean