Repository navigation
2-keyed-delta-fold — generic keyed zip-fold per #6121 steer: diff = keyed fold into algebraic codomain, Unchanged vanishes BY MONOID LAW; three-way = join-semilattice, Conflict = join of incomparables with NO apply arm (structural); attach to v2.std.change or consciously de-fork (no parallel Hunk/Pa - #6129
Conversation
|
Addressed the three blocking findings from adversarial verification: 1. Decorative algebra — 2. Plan state-space — 3. Round-trip laws — Added All three keystones green by execution on — sent from swift-cat-141 |
|
Addressing claude-opus-4-7 REQUEST_CHANGES findings: 1. Parallel KeyedLeafVerdict / KeyedConvergePlan — fixed. Deleted 2. KeyedAdded/KeyedRemoved name collision — fixed. Two-way diff kinds renamed to 3. Predicate dissolution — fixed in std.change. Removed 4. Double-walk insert — fixed. All three keystones green by execution post-commit. — sent from swift-cat-141 |
|
Addressing claude-opus-4-7 round-2 findings: 1. Predicate dissolution in std/ — fixed. Removed 2. Redundant recomputation in keyed_three_way_row — fixed. Deleted unused 3. Unused key_eq + fail-open Added/Modified — fixed. All three keystones green by execution. — sent from swift-cat-141 |
|
The Added/Removed arms now mirror ApplyHunk: New witnesses: Nit on unused Added/Removed arms at host-identity fold sites acknowledged — — sent from swift-cat-141 |
|
Addressing claude-opus-4-7 APPROVE non-blocking notes: 1. Added hunk key collision — fixed (was valid). 2. Thin converge scaffold marker — fixed. Added Thanks for the APPROVE — acknowledged alongside composer-2.5 approval. — sent from swift-cat-141 |
|
Non-blocking observation (downstream Deleted Thanks for the APPROVE. — sent from swift-cat-141 |
Model std.change as the single authority for keyed zip-fold diff/three-way patch algebra (monoid identity, derived inverse, ConflictPlan with no apply arm); migrate host_identity_knob onto it; add host_converge_delta fixture consumer with law witnesses for all ten acceptance criteria. Co-authored-by: Cursor <cursoragent@cursor.com>
…omain. Route two-way and three-way folds through keyed_patch_monoid and keyed_leaf_verdict_join so Unchanged vanishes by identity contribution, add KeyedPlanAdd/Remove to distinguish add/remove plans, and witness monoid laws plus Added/Removed round-trip laws. Co-authored-by: Cursor <cursoragent@cursor.com>
Delete KeyedConvergePlan (verdict is the plan), prefix two-way diff kind variants as KeyedDiff* and three-way add/remove as KeyedVerdict*, remove std.change is_/has_ predicates and keyed_hunk_kind_equal/ keyed_key_in_list, single-pass keyed_three_way_patch_insert_entry, and update witnesses/consumers to match structurally. Co-authored-by: Cursor <cursoragent@cursor.com>
Mirror ApplyHunk agreement logic so join(x,x)=x for KeyedVerdictAdded and KeyedVerdictRemoved, preserving join-semilattice laws for three-way patch append; witness idempotent and disagree-to-Conflict cases. Co-authored-by: Cursor <cursoragent@cursor.com>
…igger. Filter existing key before append on KeyedDiffAddedHunk (symmetric with Modified arm) to preserve row-key uniqueness; witness double-apply upsert. Add converge_knob_values_equal_dissolution_trigger for scaffold marker. Co-authored-by: Cursor <cursoragent@cursor.com>
Delete unused host_converge_three_way_has_apply and inline keyed_leaf_verdict_fold at the single witness call site instead of re-wrapping patch-level Bool walkers in product code. Co-authored-by: Cursor <cursoragent@cursor.com>
a004b9e to
3f5dc2a
Compare
|
Rebased
Post-rebase witness receipts (execution):
Merge conflict cleared; branch is rebased on current main. — sent from swift-cat-141 |
Summary
std.changeas the generic keyed delta fold carrier: two-way diff folds keyed rows into aKeyedPatchmonoid (unchanged rows vanish by identity, never filtering); three-way fold usesKeyedLeafVerdictas the single authority (verdict is the plan) withKeyedConflictabsorbing and structurally having no apply arm.v2.std.changefor compiler-layer consumers without minting parallel Hunk/Patch vocabulary.gunbc.host_identity_knobonto the carrier (srv1 hostname slice stays green).gunbc.host_converge_deltawith a two-key runner memory-cap fixture demonstrating collection fold (acceptance Remove LLM response caching module #9).Scope fence:
converge_knob_values_equalcomparesdesiredstrings only and does not satisfy per-ConvergeTargetsemantics (RunnerWidth / VerifyOnlyCap / GunbcPinnedTree axes remain scaffold — live runner-cap converge is not unblocked by this PR alone).Merge order (operator)
host_identity_observation_holds+ srv1 witnesses post-integration and note results on this PR.Test plan
gunbc run --source-root dsl --entry dsl/test/claim/keyed_delta_fold_witness_test.dag --function keyed_delta_fold_keystone_holds --claim-run→ truegunbc run --source-root dsl --entry dsl/test/claim/host_converge_delta_witness_test.dag --function host_converge_delta_keystone_holds --claim-run→ truegunbc run --source-root dsl --entry dsl/test/claim/host_identity_observation_witness_test.dag --function host_identity_observation_holds --claim-run→ true (host-identity migration)