Fuaran.UI.OpStream.Dag.Merge
0.46.0
Prefix Reserved
dotnet add package Fuaran.UI.OpStream.Dag.Merge --version 0.46.0
NuGet\Install-Package Fuaran.UI.OpStream.Dag.Merge -Version 0.46.0
<PackageReference Include="Fuaran.UI.OpStream.Dag.Merge" Version="0.46.0" />
<PackageVersion Include="Fuaran.UI.OpStream.Dag.Merge" Version="0.46.0" />
<PackageReference Include="Fuaran.UI.OpStream.Dag.Merge" />
paket add Fuaran.UI.OpStream.Dag.Merge --version 0.46.0
#r "nuget: Fuaran.UI.OpStream.Dag.Merge, 0.46.0"
#:package Fuaran.UI.OpStream.Dag.Merge@0.46.0
#addin nuget:?package=Fuaran.UI.OpStream.Dag.Merge&version=0.46.0
#tool nuget:?package=Fuaran.UI.OpStream.Dag.Merge&version=0.46.0
Fuaran.UI.OpStream.Dag.Merge
The M1 branch-merge engine for the Fuaran op-stream DAG (opt-in, rung-4).
M1 is the determinism-trivial subset of merge: fast-forward and
disjoint-(NodeId, facet) auto-merge only. Full 3-way merge with primacy
and multi-agent reconciliation is the gated follow-on (Phase 179).
What ships here
| Module | Role |
|---|---|
DagReplay |
Reconstruct a tree at a head by folding ops along the primary-parent spine. A merge node's op is the replay delta from its primary parent, so the spine fold reconstructs the merged tree. |
TreeMerge |
Structural 3-way merge under the disjointness rule. Facets: content (own kind-fields + style + state + accessibility, closure-safe) and children (ordered child-id list). Disjoint pure inserts into the same parent auto-merge with a NodeId-canonical-bytes tie-break (no wall-clock). Overlap returns the contended cells. |
DagMerge |
Orchestration: LCA → ambiguous (Phase 179) / none / fast-forward / disjoint auto-merge. Builds the merge node committed to the canonical outcome-tree hash (not the op-path), so two hosts agree iff they reach the same tree. commitMerge adds the node + advances the trunk under the TryAdvanceHead CAS. |
Determinism contract
Two hosts (e.g. the F# tier and the TypeScript reference implementation) computing an M1 merge over the same base + branches produce a byte-identical merged tree and merge-node hash: the merge is a pure function of the three trees, the tie-break is NodeId canonical bytes, and the merge-node hash folds in the canonical encoding of the resulting tree.
Requires IDagOpStreamSink (from Fuaran.UI.OpStream.Dag.Abstractions), so
the merge surface is structurally unreachable from the linear op-stream path.
Apache-2.0 licensed — see the repo LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Fable.Core (>= 5.0.0)
- FSharp.Core (>= 10.1.300)
- Fuaran.Core.Column (>= 0.11.0)
- Fuaran.Core.DataFrame (>= 0.11.0)
- Fuaran.Core.Function (>= 0.11.0)
- Fuaran.Core.Ops (>= 0.11.0)
- Fuaran.Core.OpStream (>= 0.11.0)
- Fuaran.Core.Tree (>= 0.11.0)
- Fuaran.Core.Validator (>= 0.11.0)
- Fuaran.Core.Wire (>= 0.11.0)
- Fuaran.UI (>= 0.46.0)
- Fuaran.UI.Ops (>= 0.46.0)
- Fuaran.UI.OpStream.Abstractions (>= 0.46.0)
- Fuaran.UI.OpStream.Dag.Abstractions (>= 0.46.0)
- Fuaran.UI.OpStream.Replay (>= 0.46.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Fuaran.UI.OpStream.Dag.Merge:
| Package | Downloads |
|---|---|
|
Fuaran.UI.OpStream.Dag.Inspect
DAG-aware op-stream inspector substrate for the Fuaran op-stream DAG (opt-in, rung-4). A derived, read-only view over the branching DAG: a layered render model (branches, merge nodes, heads/leaves from the sink topology), audition-by-content-addressed-coordinate (replay a node to its snapshot, with a host preview hook), a precedence + retention/tombstone overlay, and arbitrary-coordinate snapshot-diff (the DAG generalisation of the linear Phase 57 adjacent-step diff). Consumes the DAG abstractions + merge engine + the linear Replay TreeDiff; emits no op-stream records or telemetry (FGP 5 — a consumer of the stream, not a writer). Requires the DAG packages, so it is structurally unreachable from the light path. Apache-2.0 licensed. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.46.0 | 0 | 8/28/2026 |
| 0.39.0 | 26 | 8/27/2026 |
| 0.35.0 | 67 | 8/24/2026 |
| 0.32.0 | 76 | 8/23/2026 |
| 0.31.0 | 86 | 8/21/2026 |
| 0.30.0 | 70 | 8/21/2026 |
| 0.29.0 | 100 | 8/19/2026 |
| 0.28.0 | 98 | 8/18/2026 |
| 0.27.0 | 94 | 8/18/2026 |
| 0.26.0 | 97 | 8/18/2026 |
| 0.18.0 | 104 | 8/10/2026 |
| 0.15.0 | 95 | 8/9/2026 |
| 0.12.0 | 115 | 7/31/2026 |
| 0.11.0 | 115 | 7/30/2026 |
| 0.10.0 | 109 | 7/29/2026 |
| 0.6.0 | 108 | 7/27/2026 |
| 0.4.0 | 114 | 7/26/2026 |
| 0.3.0 | 117 | 7/24/2026 |