Repository navigation
v10.0.5
·
448 commits
to main
since this release
v10.0.5 — Bug fixes and doctor enhancements
Fixed
- Graph search with Anthropic summarization now works out of the box. When
graphrag.enabled: trueandsummarization.provider: anthropic,LangExtractExtractorsilently produced zero triplets per chunk because Claude model ids (claude-haiku-4-5-…, etc.) are not inlangextract's provider registry — the per-chunk WARNING that should have surfaced the failure usedlogger.warning(..., extra={"error": ...}), which the default formatter does not render. Three layers of fix inagent_brain_server/indexing/graph_extractors.py: (a) whensummarization.provideris anthropic / claude and no explicitgraphrag.langextract_{provider,model}override is configured, the extractor auto-routes toopenai/gpt-4o-miniwith a clear INFO log; (b) startup-time validation now callslangextract.providers.router.resolve(model_id)and raises aConfigurationErrornaming the YAML keys to set when the resolved model would be rejected; (c) the per-chunk WARNING now interpolates the underlying error text via%sso it shows in any default-formatted log. Also fixed two latent bugs surfaced by the new validation:_resolve_model_id's ollama default (ollama/llama3.1:8b) was always rejected by langextract — switched to the barellama3.1:8bform; andself.modelno longer inheritssummarization.modelwhen the caller passed an explicitprovider=(the cross-wiring madeLangExtractExtractor(provider="ollama")resolve to a Claude model in the wild).langextract_providerandlangextract_modelare now documented inagent-brain-plugin/skills/configuring-agent-brain/SKILL.mdanddocs/GRAPHRAG_GUIDE.md. Closes #149. agent-brain jobs <job_id>no longer crashes withTypeError: unsupported format string passed to dict.__format__when the server returns a structuredJobProgresspayload (the default since the job-queue rework —progressis a dict withpercent_complete,files_processed,files_total,chunks_created,current_file). The CLI assumed a float and usedf"{progress:.1f}%"unconditionally onjobs.py:33,34,126,129._format_progresswas rewritten to dispatch on type — extractspercent_completefrom the structured dict, falls back to akey=valuepretty-print for unknown dicts, keeps the legacy float path, and coerces unknown types tostr(...)rather than raising. The detail view (_create_job_detail_panel) now centralizes formatting through the same helper so list view and detail view never diverge. New regression suite inagent-brain-cli/tests/test_jobs_progress.pypins each input shape, including the exact failing payload from the issue. Closes #150.- Kuzu graph-store initialization now self-heals when a stale empty
kuzu_db/directory is left over from a v10.0.2 upgrade. Pre-v10.0.4 createdkuzu_db/as a directory; v10.0.4's#144fix expects either no path or a kuzu single-file database there, so the upgrade path raisedRuntimeError: Database path cannot be a directory: …/kuzu_dbon the first indexing job._initialize_kuzu_storeinagent_brain_server/storage/graph_store.pynowrmdir()s an empty stale dir before opening (only succeeds on empty dirs — safe), and raises a clearerRuntimeErrorthat names the directory + suggestsGRAPH_INDEX_PATHif the leftover is non-empty (never silently deletes user data). Two regression tests intests/integration/test_kuzu_graph_e2e.pypin both paths. Closes #151.
Added
agent-brain doctorgained the--fixflag for safe, idempotent, offline remediations: appends.agent-brain/to.gitignore(creating it if missing) and creates a stub state dir +config.jsonwhen the project is uninitialized. The doctor report re-runs after fixing so the printed table reflects the new state. Network calls, API keys, and user code are explicitly off-limits — those still require manual action. Closes part of #146.agent-brain doctornow reports the installedagent-brain-cliversion as its own check (catches broken installs at the top of the report instead of letting the user discover them later), and explains which rule selected the project root (.agent-brain/match, git top-level,.claude/marker, etc.) on monorepos. When the server is reachable, the server check additionally pulls/health/statusand surfaces a one-line indexing summary (state + chunk count). Whengraphrag.enabled: true, doctor checks thatlangextractis importable and hints at the[graphrag]extra if not. Closes #146.
Internal
resolve_project_rootinagent_brain_cli/config.pynow has a siblingresolve_project_root_with_strategy()that returns(root, strategy_label)— the strategy is a stable identifier (agent_brain_dir,git_root,pyproject, etc.) for use byagent-brain doctor. The original signature is unchanged and now delegates to the new function.- Confirmed via codebase audit that issue #147 (auto-suggest doctor on connection failures) was already implemented end-to-end in v10.0.4: all five commands (
status,query,jobs,index,reset) importdoctor_hint_messagefromagent_brain_cli.diagnosticsand print it onConnectionError, and the helper already distinguishes "no runtime.json found" from "server unreachable." Closed with evidence; no code change in this release.