docs(context): evidence and reasoning for the cell delta (improvise-5r8c)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
committed by
Edward Langley
parent
0d8fa5bca8
commit
34a0808f12
@@ -528,6 +528,10 @@ a wrong answer to no divergence at all.
|
||||
|
||||
### a_cell_data_effect_no_raw_cell_records_still_dirties_the_document
|
||||
|
||||
improvise-5r8c: the dirty flag now reads the cell delta, and `SortData` is the case no delta
|
||||
carries (the saved order moved). The first cell-delta version failed this test; the fix is
|
||||
`DataStore::reorders` in `document_shape`, and removing it fails this test alone.
|
||||
|
||||
The guard against the cure improvise-748f **proposed**, which is unsound. The ticket
|
||||
suggested raising `dirty` off `bump_changed_records`' per-record fingerprint of the
|
||||
raw cells, on the reading that `CellData` means cells. Five of the ten `CellData`
|
||||
@@ -7228,29 +7232,24 @@ group per level, where the two keyings coincide.
|
||||
`toggle_group_collapse` never removing a fold; the final assertion (no fold left
|
||||
behind once the quarter is closed again) fails.
|
||||
|
||||
### basis_tiers::a_write_that_compares_equal_by_the_float_rules_changes_nothing
|
||||
### ui::app::basis_tiers::a_write_that_compares_equal_by_the_float_rules_changes_nothing
|
||||
|
||||
improvise-5r8c. `0.0` over `-0.0`, `-0.0` over `0.0` and three NaN spellings move no record
|
||||
version and leave the document clean. It failed on the bit fingerprint (`0 -> -0` bumped the
|
||||
version to 2), the bug the ADR names. Faults: dirty set on every `CellData` effect fails it
|
||||
and two more.
|
||||
|
||||
### basis_tiers::a_write_that_differs_by_the_float_rules_still_changes_something
|
||||
### ui::app::basis_tiers::a_write_that_differs_by_the_float_rules_still_changes_something
|
||||
|
||||
`0.0` over NaN bumps the version and dirties. Fault: dirty read from the shape alone ignores
|
||||
the delta and fails this and four tests elsewhere.
|
||||
|
||||
### basis_tiers::cells_removed_by_a_later_geometry_effect_still_move_their_records
|
||||
### ui::app::basis_tiers::cells_removed_by_a_later_geometry_effect_still_move_their_records
|
||||
|
||||
`[SetCell, RemoveCategory]`: the removal comes after the last `CellData` drain. Fault: not
|
||||
reading the log at the end of the batch survived the whole suite until this test, and then
|
||||
fails it. A fault dropping the per-effect delta from the batch fails ten tests.
|
||||
|
||||
### effect::tests::a_cell_data_effect_no_raw_cell_records_still_dirties_the_document
|
||||
|
||||
Predates this step. `SortData` moves the saved order and no cell delta reports it, so the
|
||||
first cell-delta version of the dirty flag failed this test. `DataStore::reorders` fixes it,
|
||||
and removing it from `document_shape` fails this test alone.
|
||||
|
||||
### model::cell::data_store::sorting_counts_as_a_reorder_only_when_it_moves_a_cell
|
||||
|
||||
|
||||
@@ -7,9 +7,8 @@ use improvise_core::model::cell::{CellChange, CellKey, CellValue};
|
||||
use improvise_core::model::record::RecordHash;
|
||||
use zset::ZSet;
|
||||
|
||||
/// A cell value that compares by the float rules, with every NaN one value: `-0.0`
|
||||
/// equals `+0.0`. Built only by [`DeltaValue::new`], which makes both true of the
|
||||
/// inner value, so the derived-looking order below is a total order.
|
||||
/// A cell value that compares by the float rules, every NaN one value and `-0.0`
|
||||
/// equal to `+0.0`. Only [`DeltaValue::new`] builds one, so the order is total.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct DeltaValue(CellValue);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user