Repository navigation
Roadmap: three-way diff as fold instance (construction steer) + operational acceptance tiers, per-node Accept lines, runner-allocation-v0 milestone - #6121
Merged
Conversation
added 4 commits
July 2, 2026 00:01
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
briansrls
added a commit
that referenced
this pull request
Jul 2, 2026
…eyed 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) * WIP: 2-keyed-delta-fold — generic keyed zip-fold per #6121 steer: diff = keye * Add generic keyed delta fold carrier and wire first consumers. 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> * WIP: 2-keyed-delta-fold — generic keyed zip-fold per #6121 steer: diff = keye * Wire keyed fold through declared monoid/join algebra and fix plan codomain. 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> * WIP: 2-keyed-delta-fold — generic keyed zip-fold per #6121 steer: diff = keye * Dissolve parallel plan type and std.change predicate duplication. 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> * WIP: 2-keyed-delta-fold — generic keyed zip-fold per #6121 steer: diff = keye * WIP: 2-keyed-delta-fold — generic keyed zip-fold per #6121 steer: diff = keye * Fix keyed_leaf_verdict_join idempotency for Added/Removed arms. 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> * Upsert Added hunks in keyed_apply_patch and name converge scaffold trigger. 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> * WIP: 2-keyed-delta-fold — generic keyed zip-fold per #6121 steer: diff = keye * Remove downstream has_conflict/has_apply verdict Bool wrappers. 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> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Encodes two operator directives into the roadmap authority (
dsl/gunbc/roadmap_authority.dag);ROADMAP.md,docs/plans/fleet-acceptance-criteria.md, and.githooks/pre-pushare themain_wetregens of it.1. Three-way diff = fold instance, not a bespoke differ (operator, 2026-07-01)
The converge re-land brief said "the three-way-diff carrier does not exist yet" — with nothing stopping a worker from hand-rolling a differ, reinventing the core mechanism. New node
2-keyed-delta-fold(parent of2-converge-reland) carries the construction steer:Unchanged— unchanged rows vanish by the monoid law, never by filtering (that is the "for free")v2.std.exact_structural_equality_zip_fold) is the degenerate consumer — an equality verdict is a diff with the hunks discarded (accurately described: its internals are canonicalize-then-compare, not a lockstep zip)Conflict= join of two incomparable changes, and a plan that readsConflicthas no apply arm — no-mutation-on-conflict becomes structural, not a runtime guard. Safety caveat encoded: bottom here is the benignUnchanged(the inverse of theDescentEvidenceprecedent), so the codomain must carry NO Unknown elementdiff(A,A)=identity·apply(diff(A,B),A)=B· retract = inverse patch — a groupoid, not a totalGroup(apply is partial: refuses off-base;Conflicthas no inverse)v2.std.change(ChangeKind/ChangeSet, already feeding the affected-set lens), never mint a parallel Hunk/Patch; the algebra anchor picks ONE std authority per the standing de-fork rulingstd;gunbc.host_convergesupplies only the six-variantConvergeTargetleaf algebra (one string-equality flattens apply-vs-effective splits, byte normalization, verify-only, pin-coherence); live read/apply stays workflow-layerEvery cited name was adversarially verified against the live tree by a 6-agent refutation workflow; the three mischaracterizations it found (zip-fold internals,
Grouptotality, phantomConvergeKnobsplural) are corrected in the landed text.2. Operational acceptance — tiers + per-node Accept lines (operator, 2026-07-02)
2-keyed-delta-fold(T2),2-converge-reland(T4 — the full srv1/srv2 reallocation bar: model-edit → delta plan → apply →systemctl showread-back → hand-edit reds → retract),2-live-read-seam,2-host-admission,2-periodic-actuation(T5),2-service-receipt(T4),2-compile-clean-shard-b,2-strictlease,2-admission-model,1-g2-runner2-runner-allocation-v0— srv1/srv2 as StrictLease runner capacity, hand-config retired: the operational milestone the control plane exists for; added to the §2 milestone spinedocs/plans/fleet-acceptance-criteria.md(generated fromdsl/gunbc/plans/fleet_acceptance_criteria.dag, registered inplan_registry_batch_g) carries the full per-node checklists incl. the 12-step converge-reland flow and the dispatch-brief acceptance block; nodes link to it — node = summary, doc = checklist, no dual representationReceipts
run_generated_artifact_drift_gate_body: RED before regen, GREEN after (discriminating consumer, by execution)roadmap_authority/emit/document/status/page/frontier/spawnerwitnesses: PASSgenerated_artifact_drift_witnesses,plan_lens(dissolution-trigger walls incl. RED controls),doc_reachability(no orphan, no dangling),githooks_pre_push_emit: PASS🤖 Generated with Claude Code