Repository navigation
A displaced window keeps its unsent turns, and a taken chat can be taken again - #2091
Merged
Merged
Conversation
Status returns once one anchor voter answers, while the other peers' replies and cursor acknowledgments are still on the member socket. R23 then counted those frames as traffic started after the quiet decision, about one run in twenty. personalLeader now waits for the member to go idle first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…blished When an ownership check found another device holding the chat, the window became a viewer at once and never told the batcher, so unsent turns were not kept as a branch then (TestTwoHomesL12DeathBranches). The hold is now retired at once, in-flight seals are let finish, and the batcher resolves pending work before the window says who has the chat, exactly once. A taken snapshot carried the sender's earlier upload note, naming a head this store never fetched, so the next take refused with "snapshot … is not held in this store" (TestPublicTakeRestoresEveryWorkspaceSetRoot). Materialize now records the received head as published; it is on the service by definition. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TestPairJourney retyped the add-device pitch in an older spelling, and its vocabulary law refused the tip "space space takes you back to home". The pitch now comes through the tuiwords table, and the tip says "brings". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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.
Fixes the test failures still red on
devafter #2086. Two of them were real bugs in taking a chat from another computer.What changes
CheckLease, from the directory watch or before a tool call) found another device holding the chat, the window became a viewer at once and never told the batcher. So unsent turns were not kept as a branch then. Now:Gaterefuses new work and the send receipt is cleared.Gateis allowed to note its turn.Batcher.Displacedresolves the pending work underflushMu.OnLostnow retires the hold, andresolveannounces), so the window no longer saysanother device continued this chatand then<device> continued this chata moment later.refusal(ErrFenceStale)still makes the window a viewer at once..cell/published.json, which names the head published before it. The receiver never fetched that head, so the next take failed withsnapshot … is not held in this store.Materializenow records the head it received as published. That head is on the service by definition.personalLeaderreturned as soon asStatusanswered, while other peers' replies were still on the member socket. R23 then counted those frames as traffic started after the quiet decision, about 1 run in 20. It now waits for the member to go idle. The assertion is unchanged.TestPairJourney. The add-device pitch now comes through thetuiwordstable instead of a retyped needle. The home tip is respelledspace space brings you back to home, because the journey's vocabulary law forbids "take". The manual pages that quote it are updated.Proof
These two fail on current
devwith the engine staged, and pass on the branch:devTestTwoHomesL12DeathBranchesA's branch row = {…}; want 3 turns from towerTestPublicTakeRestoresEveryWorkspaceSetRootsnapshot … is not held in this storeCI does not stage the engine, so these real-engine tests do not run there.
TestStalePublishRefusalMakesViewerAndNotifiesOnce, a real stale publish across two homes. The window ends as a viewer, and the notices are exactly[kept edits, superseded].TestAStaleDriveRefusalImmediatelyMakesTheWindowAViewernow also checks that two refusals give one notice.#2086's versions ofTestDriveSideSupersededStopsTools,TestDriveSidePublishesOverTheDefaultDaemonandTestTwoHomesTakeARunningChatAtOncepass unchanged.-count=100twice in a row (lane). Locally, R23 did not recur in 50 more runs. Two runs hit a client timeout talking to the local cluster during setup, on a box at load average 8 with other suites running.internal/syncsetup,internal/cellsync,internal/cellstore,internal/tui3tips,internal/manual, untaggedinternal/e2e,go vet -tags e2e ./internal/e2e/, andmake test-laws.🤖 Generated with Claude Code