Skip to content

test(e2e): three concurrent authors and a path conflict, and the docs for built concurrent windows - #478

Merged
sunib merged 2 commits into
mainfrom
e2e/concurrent-authors-three-windows
Nov 10, 2026
Merged

sunib merged 2 commits into
mainfrom
e2e/concurrent-authors-three-windows

Conversation

@sunib

@sunib sunib commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

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-authors label, 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).

  • Three windows at once. alice, bob and carol interleave creates. The spec waits for git_commit_windows_open to 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 exactly carol, bob, alice in that order, which is close order and the reverse of open order. Each commit has its author, its message and only its files.
  • Path conflict. alice and bob each open a window. bob labels alice's Deployment, then saves. alice's window closes first: her commit (generated message, her copy without the label) lands before bob's. bob's commit carries both files, and Git ends with his newer copy. 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. windowedDeploymentPipeline now carries its basePath, 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_limit closes 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

  • Documentation
    • Clarified how concurrent author changes are saved, how overlapping file edits are handled, and how apply requests publish pending changes.
    • Updated release planning notes to record completion of the concurrent-authors outage test.
  • Tests
    • Expanded end-to-end coverage for concurrent saves, save ordering, and edits to files with pending changes.

sunib and others added 2 commits November 9, 2026 21:42
…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>
@coderabbitai

coderabbitai Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

The pull request updates documentation for concurrent author commit windows and adds end-to-end coverage for multiple open windows, save ordering, and path conflicts. It also records design and CI status and updates an e2e pipeline helper to retain its base path.

Changes: Concurrent author windows

Layer / File(s) Summary
Window rules and flush behavior
docs/architecture.md, docs/configuration.md, docs/spec/commit-window-refactor.md, docs/design/concurrent-author-windows.md
Documentation describes per-author windows, their close conditions, and behavior that finalizes every open window during a flush.
End-to-end scenarios and validation status
test/e2e/concurrent_authors_e2e_test.go, test/e2e/commit_request_e2e_test.go, docs/design/concurrent-author-windows.md, docs/TODO.md
End-to-end tests check concurrent open windows, commit order, and path-conflict behavior. Supporting helpers check commits, files, contents, and window counts. The design and TODO documents record test coverage and stage status.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other

Possibly related PRs

Merge Risk: Minimal · up to 967e6

No actionable issue remains; the change is mergeable after normal checks.

Pre-merge checks: Passed 5

Check name Status Explanation
Title check Passed The title clearly identifies the concurrent-author end-to-end tests and documentation updates, which are the main changes.
Description check Passed The description explains the test coverage, documentation updates, and reported test results. It does not use the template’s Type of Change, Checklist, Related Issues, Screenshots, or Additional Notes…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the test coverage, documentation updates, and reported test results. It does not use the template’s Type of Change, Checklist, Related Issues, Screenshots, or Additional Notes sections, but the core information is complete.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 2 files. (5 skipped: 5 unsupported.)

Finishing Touches

Generate docstrings

  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c9dcb99b-c034-4409-bec8-ac644c757a04
Commits

Reviewing files that changed from the base of the PR and between 1806e6c and 967e642.

Files selected for processing: 7

  • docs/TODO.md
  • docs/architecture.md
  • docs/configuration.md
  • docs/design/concurrent-author-windows.md
  • docs/spec/commit-window-refactor.md
  • test/e2e/commit_request_e2e_test.go
  • test/e2e/concurrent_authors_e2e_test.go

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

@codecov

codecov Bot commented Nov 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@sunib
sunib merged commit 11b8b4e into main Nov 10, 2026
23 checks passed
@sunib
sunib deleted the e2e/concurrent-authors-three-windows branch November 10, 2026 05:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant