diff --git a/context/code/formula-and-io.md b/context/code/formula-and-io.md index a511f3a2..dd2a0d12 100644 --- a/context/code/formula-and-io.md +++ b/context/code/formula-and-io.md @@ -424,7 +424,21 @@ and the derived `_Month`/`_Quarter` categories inherit the error. What makes it tolerable is that the wizard shows the detected format and lets the user change it — the same argument two-digit years already rested on. It is pinned by a test so that changing the answer is a decision somebody makes rather than a side -effect of reordering the table. Filed as **improvise-l8rh**. +effect of reordering the table. + +**Ruled a known limit** (improvise-l8rh, the user, 2026-09-20). Two things the +ruling rests on. Changing the default to day-first only moves which half of the +world imports silently wrong; and the honest fix is larger than the heuristic — +an ambiguous column should *surface* its ambiguity rather than resolve it, which +changes `FieldProposal`'s shape and the wizard step that displays it, the way +`Dataset::warnings` returns a decision the user should hear about as data. Worth +doing deliberately, not as a patch. + +What makes the limit reasonable to live with is that it is now *deterministic*: +`analyze_records` iterated a `HashSet` until improvise-7yx, so the ten samples +`detect_date_format` inspects were a different ten every run and a column whose +eleventh value ruled out `%m/%d/%Y` detected a different format run to run. The +ten-sample window itself is unchanged and is part of the limit. ### CSV parsing diff --git a/context/test-evidence/formula-and-io.md b/context/test-evidence/formula-and-io.md index 6d44d887..243b43f1 100644 --- a/context/test-evidence/formula-and-io.md +++ b/context/test-evidence/formula-and-io.md @@ -461,9 +461,10 @@ can override it. The same argument as the ambiguity below. nothing in the data can tell them apart. The heuristic is first-match over `DATE_FORMATS`, so the American reading wins — a European CSV imports with its days and months swapped, silently, and the derived `_Month`/`_Quarter` -categories inherit the error. Filed as **improvise-l8rh**; pinned here so that -changing the answer is a decision somebody makes rather than a side effect of -reordering the table. +categories inherit the error. **improvise-l8rh ruled this a known limit** rather +than a defect, so this test is what makes changing the answer a decision +somebody makes rather than a side effect of reordering the table. The argument +is in `context/code/formula-and-io.md`. The loop at the end is the precondition that makes this a statement about *ambiguity* rather than about one format merely fitting: the other reading has