v0.9.4
Reconcile now asks agami the way a person does, and says plainly what happened.
run_golden_eval.py --via mcp serves the cold client agami's own MCP tools, so a row's answer comes from the surface a person uses rather than from a client with one pasted schema. The first query that does not run ends the question, because that failure is the finding, and the run writes agami's result itself, through execute_sql's guard, from the server's own record of the statement (#363).
A statement a person hands to reconcile now reaches the database only through that same guard: Phase 1.5 runs in check_statement.py instead of on a command-line tier, every execution and refusal is written down, and a crash reports its type without the database's own words (#374).
On the report: a card shows what agami answered, which a run read from a dashboard screenshot did not (#381); a row whose query never ran says so instead of reading an empty file as a result (#368); equal columns pair by name first and a column that mostly repeats one value no longer pairs with a different column like it (#369); and a table that matched only through one repeated value is marked unverified rather than kept (#375).
See CHANGELOG.md for the full list.