Repository navigation
Conversation
The withheld-field record and the last accepted versions were keyed by the object alone. Two GitTargets on one branch can mirror objects of one name, from two clusters or into two folders, so an apply withheld for team-a set team-b's field back to team-a's accepted value, or kept team-b's object out of Git altogether. Key both by GitTarget and object, and look for a recorded edit only in the apply windows of appliers that cover that GitTarget. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The model took the worker's FootprintChecked line as evidence for any commit with the same tree. A later commit that returns to a checked tree from another parent, made with the check skipped, passed as checked. Log the parent's tree with the check, and have the model match the tree and the parent's tree together: a rebuild onto the same parent still matches, another change does not. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A clean shutdown closed the open windows and pushed them, then drained the FIFO without handling it. A live write Enqueue had already accepted, and a watch had moved its cursor past, was thrown away: only a later resync could bring the edit back, without its author or its window. Decide the writes on the FIFO when the shutdown begins, before the windows close, so the last push carries each in its author's window. Only what the FIFO held then is taken, so a producer still sending cannot keep the shutdown going. Every other item, which may read the remote or bind a save, is drained as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…to one Concurrent windows are on with no flag, and nothing but log lines said whether they deliver anything, or whether a worker had fallen back to one window at a time after a footprint violation. Add two scrape-time gauges per branch worker: git_commit_windows_open, the windows open side by side, and git_commit_windows_single, 1 once the worker holds one window at a time until it restarts. The second gets an alert in the metrics guide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The architecture, the commit-window spec and the event pipeline still said a branch worker holds one window at a time, so reviewers kept reading two different implementations. - the spec, architecture and pipeline diagram describe a window per author while footprints are proven disjoint, and serial otherwise; - the design says what it promises (commit grouping, not a transaction: a deadline can still split a save, and a footprint proves files are independent, not objects consistent), that an existing document qualifies wherever it lives, and that stage 4's flag was decided against, with the gauges that replace its measurement period; - the configuration guide says which edits a graceful stop commits; - TODO records the footprint-index measurements and the memory the retained-byte budget does not charge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… a custom path Three cases a review checked by hand: a decided write is committed while the cooldown holds its push, so later writes are still proven and open beside the others; a failed push keeps its write committed and pending while the other windows collect, and the retry publishes everything; an existing document outside the built-in path is proven where it lives. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The flagship of concurrent commit windows, through the real path: alice and bob, impersonated, interleave creates and an update on one GitTarget whose window is two minutes long, and nothing is committed while they work. Each then saves. Each save must come out as exactly one commit: their author, their message, exactly their files, and alice's update made after bob's writes inside hers. On one window at a time, bob's first write closed alice's window, so both the quiet wait and the commit contents would fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 59 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
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.
Stacked on #469. It answers the second review of the concurrent-window stack (#466 to #469), and adds the flagship e2e.
Fixes
team-asetteam-b's field of a same-named object back, or keptteam-b's object out of Git. Both are now keyed by{GitTarget, object}, and a recorded edit is looked up only in the apply windows of appliers covering that GitTarget. A GitTarget reads one source cluster, so this also separates clusters.Enqueuehad already accepted (a watch may have moved its cursor past them). Shutdown now decides the writes on the FIFO first, each into its author's window, then closes the windows and pushes. It only takes what the FIFO held when shutdown began; resyncs, refreshes and attaches drain as before.FootprintCheckedby tree alone, so an unchecked commit returning to a checked tree from another parent passed. The log line now carriesparentTree, and the model matches both.Visibility
git_commit_windows_openandgit_commit_windows_single, both per branch and read at scrape time: how many windows are open side by side, and whether a worker has fallen back to one at a time until restart. The second one gets an alert in the metrics guide.Tests
test/e2e/concurrent_authors_e2e_test.go, labelconcurrent-authors. Alice and bob are impersonated and interleave creates and an update on a GitTarget with a 120s window. Nothing is committed while they work. Each then saves, and each save must be exactly one commit with their author, their message and exactly their files. The branch is seeded first, because a second window only opens once the folder's bootstrap files are committed. Passed locally on its own.Docs
The architecture, the current-behaviour commit-window spec, the pipeline diagram and the configuration guide no longer describe one window at a time. The design now says:
TODO records the footprint-index measurements and the memory the byte budget doesn't charge.
Not here
Stage 3's model work stays the release gate in
docs/TODO.md: retained failures across wakes, replay, buffer pressure, reach floors and target changes.🤖 Generated with Claude Code