Skip to content

The sealed GitSync import diffs two COMMITS, so a partition another writer touched is left a mix — the mirror image of #4355's gate 2 #4620

Closed

Description

@rbuergi

What is failing

The sealed GitSync import is a delta between two commits, so it writes only the files that moved
between the previous sealed commit and the new one. That is correct exactly while the mesh equals
the previous commit's tree. Where anything else has written the partition since, the import leaves
those files alone — and the partition ends up holding one file from each tree, which is the mix
Doc/Architecture/OnePartitionOneBookkeeping
describes, reached from the other side.

This is the mirror image of gate 2 (#4355). Gate 2 stops the INSTALLER from diffing against a
baseline it does not own. Nothing stops the SYNC from doing the same thing, and its baseline is just
as much a claim about the mesh: "this partition is at commit X".

Measured (memex.systemorph.com, 2026-09-17)

Hosting is a GitSync partition held at the commit sealed for the running framework.

  1. 14:34:30Z — the boot install wrote main's tree into it (Plugins/Hosting,
    installedFromRef: HEAD), including Hosting/Issue/Test/IssueTests.cs.
  2. 16:04:02Z — Hosting/_GitSync advanced 061976bc → d98fc2ac, lastSyncOutcome: Imported.
  3. The import wrote Hosting/Issue/Source/IssueLayoutAreas.cs — it changed between those two
    commits — and did not write Hosting/Issue/Test/IssueTests.cs, which did not change
    between them. The mesh therefore kept the installer's main copy of the test beside the seal's
    copy of the view:
CS0117 Error: 'IssueLayoutAreas' does not contain a definition for 'Facts'
CS0117 Error: 'IssueLayoutAreas' does not contain a definition for 'StatusBadge' / 'SeverityBadge'
file at d98fc2ac at main in compare 061976bc...d98fc2ac?
Issue/Source/IssueLayoutAreas.cs 0 occurrences of those members 7 yes → written
Issue/Test/IssueTests.cs 0 references 6 no → not written

Hosting/Issue has been the one type at compilationStatus: Error in that partition since
(1 of 1, namespace:Hosting scope:descendants nodeType:NodeType content.compilationStatus:Error,
coverage hosting).

Why this is filed separately from #4588

#4588's cause — the unattended boot install resolving an unproven ref into that partition — is fixed
by #4619, which removes the unattended second writer. The delta's blind spot is still there, and
two writers a person chose can still reach it:

In both cases the partition is left a mix by the import, silently, and the only signal is a compiler
error naming a member a sibling source does define.

What a fix would have to decide

Not proposed here — it is a cost/consistency trade-off that wants the maintainer:

  1. Detect rather than always-full. The sync already knows the commit it believes the partition
    is at. Comparing the partition's files against the sealed tree (the shape
    InstallCompleteness uses for the install record) would say whether a full re-import is
    needed, at the cost of one listing.
  2. Full re-import when the baseline is not the sync's own. The symmetric answer to gate 2:
    where another writer has touched the partition since the recorded commit, the delta is not
    available. ReconcileAtProvenCommitFromGitHub already has a whole-partition re-import path (it
    is what the boot sweep's declined adoptions drive); this would be about when it is chosen.
  3. Do nothing and rely on one-writer. Defensible once fix(#4588): the boot install holds an UNPROVEN ref where another writer keeps the partition current #4619 lands: with no unattended second
    writer, the remaining paths are human-authored. This issue would then be the record of what the
    delta cannot see, and the residue stays named in the doc.

Not done

Read-only measurement — no mesh write, no cluster access, nothing remediated. The live instance
heals itself for this particular file as soon as a seal lands that carries the IssueTests.cs
change (it is modified between d98fc2ac and main).

Measured 2026-09-17 by Claude Opus 5 while fixing #4588: get / search on
memex.systemorph.com, REST contents / compare on MeshWeaver.Plugins.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions