Review round 1: green CI, the SortData hole reopened, the paging regression removed
Four findings from the adversarial review of #78. Two blocked; all four are
real and one of them was a straight error on my part.
1. CI WAS RED AND I NEVER RAN THE CHECKS. Nine comment runs over the
two-line cap, all mine, all introduced this PR; both checks exit 0 at
8a559b2 and run in under a second. Behind it `--check-evidence` also
failed, with two orphan pairs that are the direct product of my own
renames: the consolidation renamed two tests and left their evidence
naming the old names. All thirteen fixed. The renamed entries are
rewritten rather than relabelled — each now records what the rename was
FOR, which is the thing a relabel would have thrown away.
3. MY SortData CONCLUSION WAS WRONG, and the mechanism I removed was
needed. I reported "could not build a fixture where SortData reorders".
It reorders trivially. The cause was not the reviewer's guess (already
sorted insertion) but better: ToggleRecordsMode pushes effect::SortData
as its FIRST effect, so a records-mode fixture built by pressing R has
an already-sorted store BY CONSTRUCTION and cannot demonstrate anything
order-sensitive. My store was fine all along.
The `layout.records` coords hash is restored, and
`sorting_the_store_in_records_mode_invalidates_the_cursor` pins it with
a fixture that sets the axes directly. It asserts the row COUNT and the
LABELS are both unchanged, so it is the sharp case rather than a shape
change wearing its name. Removing the hash again fails that test and
NOTHING ELSE IN THE WORKSPACE.
The process error is the part worth keeping: I concluded "cannot
reproduce" from ONE fixture without varying it, then filed that
conclusion as a finding. "I could not reproduce it" and "it does not
reproduce" are different claims and I filed the second having earned
only the first.
4. THE page_selections COMPONENT IS DELETED. With prune_empty off a page
flip renumbers nothing and the cursor was still sent home — PR #76's own
ruling is that this is worse than the hole improvise-7kvw names. My
comment defended it with a basis argument for a cursor decision, which
is how it got written. `paging_with_nothing_pruned_invalidates_no_cursor`
is the negative arm that was missing; restoring the three lines fails it
and nothing else, and the positive arm passes either way because
`with_frozen_records` already applies pruning — which is exactly why the
negative arm had to exist.
ALSO: context/code/command.md gains "Two observations, not one". My ni6k
reasoning lived only in a commit message, which design-principles.md §6
explicitly forbids — "a reason recorded only there is a reason nothing can
ever find wrong". `view_frame`'s doc pointed at a section that did not
exist; now it resolves. The stale "since improvise-9mo9 they call
reset_cursor" sentence is corrected: no effect calls it any more.
Finding 2 (the #77 merge conflict over AxisEntry::GroupEnd) is NOT in this
commit — #77 lands first and I merge main afterwards, handling the variant
deliberately rather than letting it fall into a `=> {}` that would make a
frame change invisible to the cursor.
Filed, not fixed: improvise-5ubs (a cyclic-successor all() can omit a
variant while its doc says it cannot — the reviewer's meta-finding, that a
consolidation owes a test its surviving derivation is TOTAL) and
improvise-9v0j (view_frame vs view_shape separated by example, not by
property). improvise-gfvj closed with the correction.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FC2jVn8Au7E9JPkw6bwXXH
This commit is contained in:
@@ -25,9 +25,8 @@ fn through_a_document(text: &str) -> Option<CellValue> {
|
||||
reloaded.model.get_cell(&key).cloned()
|
||||
}
|
||||
|
||||
/// The three outcomes, and the reason the check is worth having: a `Text`
|
||||
/// classification that the writer let read back as a number would make
|
||||
/// `typed` a third answer wearing the badge of the first.
|
||||
/// A `Text` the writer let read back as a number would make `typed` a third
|
||||
/// answer wearing the badge of the first.
|
||||
#[test]
|
||||
fn what_typed_calls_text_does_not_read_back_as_a_number() {
|
||||
for text in ["pending", "N/A", "42abc", "1,200", "SUM", "-", "1.2.3"] {
|
||||
|
||||
Reference in New Issue
Block a user