Repository navigation
test(e2e): three concurrent authors and a path conflict, and the docs for built concurrent windows - #478
Conversation
…y a CommitRequest Two specs join the concurrent-authors flagship. Three people hold three windows at once (git_commit_windows_open reads 3), save in the reverse of the order they started, and Git's history is that close order; carol's commit lands while the other two windows stay open, and alice writes again after it. Then bob edits a Deployment in alice's open window: her window closes first (path_conflict), her commit lands first with her copy, and Git ends with bob's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The design page states stage 3 as done (the outage e2e passed in CI on #476), maps the reference model, the admission tests and the four e2e specs to what each proves, settles three open questions the build answered, and states its costs in the present. architecture.md, configuration.md and the commit-window spec no longer speak of one open window; the CommitRequest flow diagram had two nodes under one id. The release gate in TODO.md is closed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Concurrent commit windows are built and stage 3, their release gate, passed in CI on #476. This PR adds e2e proof of the two behaviors the existing specs did not show, and brings the docs up to date.
e2e (
concurrent-authorslabel,test/e2e/concurrent_authors_e2e_test.go)Each save is a
CommitRequest, through the whole path (kubectl as each person, audit attribution, watch, branch worker, Gitea).git_commit_windows_opento read 3 for the branch, with nothing committed. carol, who started last, saves first; her commit lands while alice's and bob's windows stay open (the gauge reads 2). alice writes again after that commit, which proves her window against the new tree. Then bob saves, then alice. Git holds exactlycarol, bob, alicein that order, which is close order and the reverse of open order. Each commit has its author, its message and only its files.git_commit_windows_total{close_reason="path_conflict"}counts it under the GitTarget.Each save is awaited before the next, so the order is the spec's, not a race between timers. Locally: 42 s and 18 s. All four concurrent-author specs passed on a fresh cluster.
windowedDeploymentPipelinenow carries itsbasePath, for diagnostics.Docs
design/concurrent-author-windows.md: status reads built and ready to release. A new "How it is proven" table maps the reference model, the admission unit tests and the four e2e specs to what each proves. The costs are written in the present, with the measured index cost. Three open questions the build answered are settled (buffer_limitcloses every window; other GitTargets stay serial; the proof is the placement index).architecture.md: the branch worker's loop holds a window per author, not one window. The flush closes every open window, and a write to another author's file closes that window. The CommitRequest diagram had two nodes under one id (AUTHOR), which merged the request's path into the attribution decision.configuration.md,spec/commit-window-refactor.md: two remaining "the open window" phrasings.TODO.md: the release gate is closed.🤖 Generated with Claude Code
Summary by CodeRabbit