Repository navigation
v0.1.21 — analysis-tool visibility
UX-driven release on top of v0.1.20. Drops the hasData-based dynamic filter on the analysis-tool set so the LLM can plan multi-step "load → query → analyse → report" workflows up front.
What changed
Analysis tools are now exposed to the LLM every round, regardless of whether the active session has data loaded. Previously query-sql, describe-data, list-tables, query-preview, suggest-analysis, quick-summary, analyze-data, promote-finding were hidden until a successful load-data, which forced the LLM into round-by-round discovery and broke up-front planning.
The original rationale ("keep tool count low for local LLMs") was for the early gemma2 / gemma3 era; the standard local model (gemma-4-26b-a4b, MoE) and current gpt-oss / qwen3 generation handle 30+ tools without selection-accuracy regression.
Visible result for users:
- Asking "monthly sales totals" without attaching data → the model now proposes
load-data(asking for the file path) instead of declining with "I don't have a SQL tool" - Asking "load
/Users/.../sales.csvand tell me the top product" → the model can plan the load + query in one response instead of two round-trips
Escape hatch
New config flag tools.hide_analysis_tools_until_data_loaded (default false) restores the pre-v0.1.21 behaviour for users on weaker local backends. Power-user knob, config-only — not exposed in the Settings UI. To use it, edit ~/Library/Application Support/shell-agent-v2/config.json:
{
"tools": {
"hide_analysis_tools_until_data_loaded": true
}
}Other touch-ups
load-data's tool description now advertises the downstream pipeline so the LLM doesn't have to guess what becomes available after a successful load.- Settings → Tools list now shows all analysis tools by default (consistent with the dispatcher's view) so per-tool MITL toggles are reachable without first loading data.
Documentation
- Design rationale + implementation: docs/en/agent-tool-visibility.md (日本語)
- CHANGELOG