v0.1.3: spill dead band + error-contract alignment
spill dead band + error-contract alignment
Closes the 51-~600-row dead band in faostat_query_observations where mid-size results silently dropped rows, and aligns each tool's advertised error-contract reasons with what the handlers and SQL gate actually emit.
Fixed:
- faostat_query_observations no longer drops rows for results of 51-~600. The not-spilled previewRows (the complete set under the char budget) is returned inline instead of re-capping at limit with a misleading 'enable DataCanvas' notice. (#1)
- faostat_commodity_profile no longer advises enabling an already-on canvas when the merged set fits inline. (#1)
Changed:
- Removed dead errors[] entries: unknown_domain + empty_result (query_observations), no_match (resolve_codes). (#2)
- faostat_dataframe_query remaps every SQL-validity gate reason (from SQL_GATE_REASONS) to a stable invalid_sql; missing_table and system_catalog_access keep their own reasons. Declared set is now canvas_disabled, missing_table, system_catalog_access, invalid_sql. (#2)
Dependencies:
- better-sqlite3 ^12.10.1 -> ^12.11.1
- node-cron ^4.2.1 -> ^4.4.1
62 tests pass; bun run devcheck clean.