v0.20.0
What's changed
Single-agent architecture. This release finishes the agent-native migration
by eliminating the dual-track design: there is now exactly one LLM in the
product — the conversational session agent. Everything under runs/ is pure
deterministic compute the agent invokes as a tool or saves as an auditable
report artifact. No second "run-planner" LLM, no in-run interpretation
narrators, no planner_mode switch. The deterministic engines, DuckDB, the S3
read-only whitelist, output sanitization, and the confirm gate on data-moving
work are all kept — they are the security floor.
Removed
- The run-planner agent. Deleted
agent_runtime/tool_registry.py,
prompts.py,context_builder.py,result_parser.py, and the
agent_service.run_agent/ToolInvokermachinery.agent_service.pynow
keeps onlybuild_agent/get_model_credentialsfor the conversational
agent. - In-run interpretation narrators. Deleted
agent_runtime/analysis_agent.py(theaccess_log_analysis/
inventory_analysisnarrator +analysis/drilldown.pyaggregate tools) and
error_triage/triage_agent.py. Analysis and triage are deterministic-only;
the conversational agent narrates the sanitized result if asked. planner_mode. Dropped from the API (RunCreate/RunSummary/RunDetail,
ErrorTriageRequest), the run SSErun_startedevent, the frontend types, and
the run-detail UI.run_service.run_syncalways dispatches a run to its
deterministic executor; theruns.planner_modeSQLite column is retained
(defaulting to'deterministic') only because the schema is append-only and is
no longer read or written.- The
optimization_reportrun type (never implemented as a real executor);
an unknownrun_typeis now a clean 422.
Changed
- Runs expose only their real tool trace, findings, and summary — no canned
step "plan" event and no agent-authored prose section in reports. - Evidence import is reached through the agent, not a separate panel —
AccountProfilePanelis now a read-only profile view.
Added
read_run_result(run_id)tool — lets the agent pick up a backgrounded
survey/review/import result in a later turn (status + sanitized summary; only
runs linked to the current session) instead of re-running.
Install
Builds are unsigned / ad-hoc (no Apple notarization, no Windows Authenticode). Verify downloads against the SHA256SUMS-*.txt files.
- macOS (arm64): open the .dmg, drag to Applications. First launch shows a Gatekeeper prompt — right-click the app → Open, or run
xattr -dr com.apple.quarantine "/Applications/Storage Agent Workbench.app". It starts in a few seconds. - Linux (x64):
sudo apt install ./storage-agent-workbench-v0.20.0-linux-x64.deb - Windows (x64): run the
-setup.exe; if SmartScreen warns, choose More info → Run anyway.
Prompt-free signed builds: see docs/signing.md.