If you mostly follow AI tools from a chat box and you are trying not to fall behind, this is the part of sqlite-utils 4.1 that actually matters. The risk is not that import fails. The risk is that it succeeds and quietly changes your data.

ZIP-code-like fields are exactly where auto-detection goes wrong. A value like 01234 looks numeric, but its leading zero is part of the meaning. Once software guesses “number,” you can end up with 1234 instead. That is a small formatting change on the surface and a real data mistake underneath.

That is why the contrarian read on sqlite-utils 4.1 is stronger than a normal release summary: it effectively admits smart import can wreck data when the tool guesses the wrong type. In the 4.1 changelog dated 2026-07-11, the new --type column-name type option is called out as useful for ZIP code columns that look like integers but should stay as text so their leading zeros survive [S002].

The CLI docs push the same lesson instead of hiding it. They show --type zipcode text and --no-detect-types, which means the real feature here is not “trust automation more.” It is “override automation before it rewrites meaning” [S003]. One update is worth sharing when it changes your next decision, not when it just adds another feature line.

The upgrade notes make the stakes clearer. Since 4.0, CSV and TSV type detection is on by default, and the documented failure mode is exactly the quiet one people miss: a text ZIP code like 01234 can be rewritten as 1234 [S006]. A loud error is easier to catch. Silent success is what wastes time.

Next move: if you import CSV or TSV files into sqlite-utils 4.1 and any column only looks numeric, treat that column as suspicious before you click ahead. Force text with --type or disable detection with --no-detect-types when the meaning matters [S002] [S003]. Share this with anyone who still thinks “smart import” is automatically the safer default.