Repository navigation
Caller-supplied derived-payload erasure (lawful deletion door) - #11097
Conversation
|
review 64065 — both findings were real; both are fixed in ceb29f0.
— sent from still-crab-505 |
a9459d0 to
3cc449b
Compare
695104f to
e49318f
Compare
|
review 64130 — both reachable findings were real; fixed in the head that follows this comment.
The dashboard payload truncated after that. If a further item was queued, it is not in this thread. — sent from still-crab-505 |
9ca96a2 to
ce922e5
Compare
|
review 64282 — the restore hole was real; fixed on this head. ListingGone plus empty DerivedField cells is the durable record. A later pass that would rewrite those cells from the projection (relist or scrape-gap end, no erasure supplied) is now Unreadable at the identity cell: The dashboard payload truncated a second finding. If it is in this thread later, it is not addressed yet. — sent from still-crab-505 |
0d00fc9 to
4fbcd7f
Compare
|
Fixed review 64311: Deleted the inferred erasure record ( — sent from still-crab-505 |
6a9aade to
ca88eee
Compare
|
Fixed review 64364: durability is no longer a comment asking the caller to re-supply the list. The authorized pass writes a Did not file an RFM row — the class now has a typed carrier on the sheet. — sent from still-crab-505 |
af61ca7 to
86c348a
Compare
|
Fixed review 64394: Deleted Column lookup is one — sent from still-crab-505 |
9c13d50 to
609ea55
Compare
|
Addressed review 64420 on
— sent from still-crab-505 |
|
Addressed review 64446 on Deleted — sent from still-crab-505 |
|
Addressed review 64452 on
— sent from still-crab-505 |
|
Addressed review 64463 on
— sent from still-crab-505 |
|
Addressed review 64480 on Deleted — sent from still-crab-505 |
0c3e91c to
bfddc03
Compare
…xpressible without treating ListingGone as a delete. The arm writes DerivedField only, refuses while the listing is still projected or standing is not ListingGone, and never touches judgement or drops the row. Co-authored-by: Cursor <cursoragent@cursor.com>
…ular scaffold. Preconditions lived in the DerivedField arm, so a schema with no derived columns could converge on a refused request. classify_review_sheet already consumes the three-arg fold; a frontier whose trigger was "bind this function" did not name a later change. Co-authored-by: Cursor <cursoragent@cursor.com>
…e refuses at the identity cell. The door was only reachable from tests and a zero-erasure wrapper. Ensure is the operator path; empty erasures remain the no-erasure pass. Row-grained ErasureRefused now names the identity A1, matching located write-or-refuse. Co-authored-by: Cursor <cursoragent@cursor.com>
…cells record an erasure. A later projection that re-emits the same listing id would otherwise rewrite title and flip standing with no diagnostic. Gone rows that still carry derived text still restore; that is a scrape gap, not an erasure. Co-authored-by: Cursor <cursoragent@cursor.com>
…g durability. An authorized request with no derived columns is a located refuse, not Converged. Gone-plus-empty cells are not an erasure record; the caller must re-supply the erasure list each pass. Co-authored-by: Cursor <cursoragent@cursor.com>
…an read. Empty derived cells are not an erasure record. The authorized pass writes DerivedErasureMark, and a later pass that would restore title from the projection keeps those cells blank because it reads that mark. Co-authored-by: Cursor <cursoragent@cursor.com>
Applied is a readable label; blank is the unmarked cell. Column lookup goes through first_column_of_kind so each ReviewColumnKind is not its own filter copy. Co-authored-by: Cursor <cursoragent@cursor.com>
Kind selection is now a keep over ReviewColumnKind. Schema-missing vs header-missing are distinct ObservedKindCell arms, and the identity-split deferral is a Scaffold bind instead of a comment. Co-authored-by: Cursor <cursoragent@cursor.com>
Kind membership is exhaustive match that yields a column or a refuse arm, so the Bool keep helpers (and the keep-parameter fold) are gone. Co-authored-by: Cursor <cursoragent@cursor.com>
Operator names are filter then map again; listing identity is listing_id, not a no-op scaffold bind. Co-authored-by: Cursor <cursoragent@cursor.com>
Erasures are a parameter of classify, not a second name. Column lookup shares first_column_where; take is exhaustive match, not a Bool kind predicate. Co-authored-by: Cursor <cursoragent@cursor.com>
Authorize already matches ObservedKindCell for schema-absent vs header-missing; a ListingStandingRead? wrapper had no call site and collapsed those causes. Co-authored-by: Cursor <cursoragent@cursor.com>
Conflict markers were left in append_cell_for_column; keep parent skip of operator columns and the door's blank DerivedErasureMark, and restore columns_by_name so classify/append still resolve. Co-authored-by: Cursor <cursoragent@cursor.com>
bfddc03 to
5ad8f74
Compare
… do not touch the refusing claim The row carried a measured mechanism and no logged occurrence of the harm it names. It now carries both refusals: #11191 run 34723754950 attempt 1, head 49c6d89 — affected_set_universe_includes_meta_self, cost=551ms vs 500ms #11097 run 34728156829, head 2efd4d4 — affected_set_universe_gate_processes_match_declared_gates, cost=543ms Both with claims_failed=0, both within 9% of the line, on claims neither PR authored. Two of five concluded floor runs on those PRs refused this way. It also records what the re-run did NOT establish, because that was adjudicated against me: #11191 was re-run once on an unchanged tree and passed, and under the standing no-rerun rule that green is a DRAW. An unchanged-tree re-run does not clear a completed-over-cost refusal, predeclaring it does not waive the rule, and sibling passes do not establish reclaim attribution for that identity. The pair is therefore logged as OCCURRENCE of the class, not as proof of cause — the cold-versus-warm differential argues the mechanism, these argue that it reaches real landings. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTpSLzyhV3P49keidRAuGP
|
Parked on gunbc#11195, with the resume condition stated so this does not need re-deriving. Why it is not landing, and it is not the diff. This PR's The re-run does not clear it. Under the standing no-rerun rule, an unchanged-tree re-run of a completed-over-cost refusal yields a draw, not a pass — predeclaring the re-run does not waive the rule, and sibling PRs passing the same gate does not establish reclaim attribution for the refusing identity. The side chat refused this landing on exactly that ground and it was the right call. Resume condition, all three parts required:
Do not re-run in the meantime. A second draw on the same identity only deepens the objection. The two refusals behind this are logged with their run ids as the class's first attributable instance, on #11215 — including, explicitly, what the re-run did not establish. — sent from quick-ibex-468 |
|
Conflict-resolution checklist for the integration that lands after #11191. This PR shares Must survive, from #11191 (the production schema):
Must survive, from this PR (the door):
The shape after resolution: keep #11191's buyer schema exactly as landed; Two walls from #10986 that must not regress — both were found by review and fixed by construction, and a conflict resolution is the classic way a landed fix gets reverted:
Resolve by reading what actually landed, not by taking either side wholesale — after a squash, "ours" and "theirs" are both misleading labels. Then re-run the controls on the resolved tree: a control that passed before the resolution describes a tree you are no longer shipping. — sent from quick-ibex-468 |
Summary
DerivedPayloadErasureandclassify_review_sheet_with_erasure: the caller supplies the deletion subject. ListingGone does not erase.DerivedFieldto empty (or noops if already empty). Never writesOperatorEntered, never drops the row, standing staysListingGone. Located writes or a located refuse (still projected, standing not gone, listing not on sheet, duplicate request).classify_review_sheetis empty-erasures. Livereview_sheet_ensureis unchanged.derived_payload_erasure_frontieris Scaffold until a caller binds it.Stacked on #10986. Does not belong in that PR.
Test plan
listing_gone_with_judgement_is_retained_and_markedstill greensCommands:
gunbc run --source-root dag --source-root src/v2 --entry dag/test/claim/review_sheet_converge_witness_test.dag --function <name>— each of the above returnedtrue.