Repository navigation
tests: sync fixtures keep their socket homes short on macOS and wait for branch publication - #2032
Merged
Merged
Conversation
AbirAbbas
added a commit
that referenced
this pull request
Oct 29, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AbirAbbas
added a commit
that referenced
this pull request
Oct 29, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AbirAbbas
force-pushed
the
test/sync-fixtures-real-engine
branch
from
October 29, 2026 23:19
36b59e5 to
2bcc4c6
Compare
Collaborator
Author
|
Closing unmerged: the Mac push stopped early to save usage. What this fixes and what is left is tracked in #2049. The branch |
…for branch publication Rebased onto app/v3, where #2178 and #2183 already cover most of this branch: the engine-backed fixtures and the hosted take-back's resumed-hold proof. What is left: - the hosted move rig and the drive rig's default daemon keep their homes under /tmp on Unix, because macOS's temporary folder leaves a workspace socket only a few bytes under the address limit; - the L12 death-branches test waits for A's branch row to hold its three orphan turns before it reads them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AbirAbbas
force-pushed
the
test/sync-fixtures-real-engine
branch
from
November 2, 2026 23:37
2bcc4c6 to
b02d75b
Compare
AbirAbbas
marked this pull request as ready for review
November 3, 2026 01:01
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.
Why
Fourteen sync and take-back tests failed on every run on a Mac (macOS 15.6, Apple M4 Pro, Go 1.26.5) and look green on Linux CI. They are green there because they skip: the CI jobs stage no furrow, so
celltest.RequireEngineandnewDriveRigskip every engine-backed sync test. The Mac has furrow staged, so they run there. Since the publication gate started requiring a conversation message (#2009), nobody saw these fixtures go stale.Each failure was read against the product code, and the cause was confirmed with a single-test run on the Mac. Eleven of the fourteen are fixture or assertion defects, and this PR repairs them. It changes no product file.
chat.saywrote a file but no conversation message, soDrive.notenever queued the turn for publicationchat.sayappends one assistant message, asopenChat.sayalready doessocketForto its short private alias, so the in-home socket glob (andstopDaemons) found nothingBatcher.publishfences the window (OnLost, viewer) before it uploads the branch, so "viewer" came too early to check the branchdriving, pinned by TestFenceF1StartupRenewsExistingHold), so the test's "2 acquires" can't happenalt+c, but macOS draws the chord asopt+cby designinternal/tui3/chords.godoes forruntime.GOOS59e7…, and 500 ms later both computers reportedd613…. A take that names the earlier head is correctly refused byLeaseExpectation.Matches("another device continued this chat first")Not in this PR:
snapshot … is not held in this store. A diagnostic run showed that the missing snapshot is the restored.cell/published.jsonhead, which the snapshot carries from the sender. It names the sender's older turn:3806566f…, against the received headeca615c2…recorded inadopted.json.sharedBoundary(internal/cellstore/localwork.go:82) prefers that file, andSyncEngine.Materialize(internal/cellstore/syncops.go:258) records onlyadopted.json. A completed public take repairs this throughNotePublished(take.go:284). A take retried on an already-restored tree, or a direct fetch, does not. The likely fix is aNotePublished(c, head)right afternoteAdoptedinMaterialize. That is a product change, so it is left out of this test-only PR.How it was checked
Every run was on the Mac with furrow staged (
go test -count=1 -p 2 -v, niced, one package at a time):./internal/syncsetup(whole package)go vetpasses for./internal/syncsetup ./cmd/codeaf, both darwin andGOOS=linux.gofmtis clean.Codex adversarial review: two rounds.
Not verified: Linux with furrow staged, because CI does not stage it. Staging furrow in the full-tests job is recommended so these tests stop skipping. That workflow is not changed here.
Manual verification: none. This PR changes only tests; there is no app behaviour to exercise.
🤖 Generated with Claude Code