Repository navigation
ci: catch-up posts once per head, says less, and merges inserted declarations - #15018
Conversation
…arations Two green main runs selected #14876's head before either had commented, so it got the same comment twice 26 s apart. The finish jobs of one pull request already run one at a time; the comment step now looks for the head's marker first and stays quiet when it is there. The blocked comment was six lines for one file. It is now one sentence naming the files and the next step, with the opt-out and run link in the footer. Conflicts in source files stopped outright. A hunk where one side only inserted whole declarations (a function, a type, an enum case) now keeps the other side's lines and places the declarations at the same brace depth; both sides inserting declarations keeps both. Statements and anything else still stop. The push job re-derives each such file from the three blobs before it pushes. #14876's conflict resolves this way. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedNext included review available in 2 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (4)
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 |
|
All contributors have signed the CLA ✍️ ✅ |
|
|
CI failure attributionCI passes on Written by |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From review: a marker-shaped line in a side could steer split_conflicts(), so any wide conflict-marker line in an input stops the merge (pbxproj too). A block is whole declarations only when every line at its level is a declaration start, an attribute, a comment, a closing brace or blank, and a declaration is a keyword followed by a name, so calls, assignments and switch or enum cases stay put. Blocks move only within the scope the hunk starts in, to its start, after a blank line or after a closing brace, never between an attribute or doc comment and its declaration. Hunks with preprocessor directives or braces next to quotes or comments stop. verify re-derives only conflicted files, and the merge job stops early where verify could not re-derive (several merge bases, a renamed base). The duplicate check reads every comment page before matching. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@coderabbitai review |
|
|
Merge receipt for |
648d5c1 Add a Paste Last Screenshot action with an unbound shortcut (manaflow-ai#14955) ff61677 ci: avoid partial blobs in catch-up merges (manaflow-ai#15023) 4d0d112 ci: retry transient catch-up GraphQL failures (manaflow-ai#15021) 212e808 ci: attribution scores a lone suspect and reports app-host crashes apart (manaflow-ai#14952) 4cabdf4 test: settle the window before measuring the unread sidebar-row invalidation (manaflow-ai#14568) 12ec99b Add a release-media capture tool for changelog screenshots and clips (manaflow-ai#15010) ee2cda0 Backfill Unreleased changelog and draft next release cards (manaflow-ai#14999) be4adf8 Show a brief notice when Cmd+V fails on an oversized image or a timeout (manaflow-ai#14953) 23d22d7 ci: an owned pool the run starts on now beats an earlier one it queues on (manaflow-ai#14993) 05d0190 ci: catch-up posts once per head, says less, and merges inserted declarations (manaflow-ai#15018) 4ee4b21 ci: fail stalled Swift package tests instead of waiting out the job timeout (manaflow-ai#14997) 9ce512a merge-main: run local guards only when asked (manaflow-ai#15016) d60108a ci: clear test-e2e's fixed DerivedData with clear-dirs.sh (manaflow-ai#14994) 1d7895e ci: run the shell and CLI no-socket lanes in parallel (manaflow-ai#14990) 6e7d25f Honor macOS Differentiate Without Color, Increase Contrast and Reduce Transparency (manaflow-ai#14991) 966b355 Stop interrupting focused work: sidebar jumps, Computer Use focus steal, quit dialog on logout (manaflow-ai#14961) e1f1cb2 Strip control characters from feedback attachment filenames (manaflow-ai#14783) 0758c9f test: find the onboarding window the test presented, not a leftover (manaflow-ai#15015) b35c540 fix(spm): resolve GhosttyKit/GhosttyRuntimeTestStubs target name collisions (manaflow-ai#10569) ef33bed Map .purs artifacts to the Haskell highlight.js grammar (manaflow-ai#14202) e2a167a Highlight Elixir and Erlang files in the file editor (manaflow-ai#13732) 972c449 fix: wrap Linux browser download card label (manaflow-ai#11157) f563884 Add Aside to browser data import detection (manaflow-ai#13379) 091d0ea Add cmux send --paste and hint at it for large multi-line sends (manaflow-ai#14937) 3ffcdbb test(ios): keep folder-tap stat tests off the real 2 s deadline (manaflow-ai#15017) 68d3936 test: keep CmuxTerminal pasteboard tests off the cooperative pool (manaflow-ai#15006)
|
@coderabbitai full review |
|
Why
Automatic catch-up posted the same comment twice on #14876, 26 s apart. The comment took six lines to name one file. It also gave up on a conflict it could have resolved: the pull request had added one function, and main had rewritten the functions around it.
Changes
pr-catch-up-auto-push-N). The comment step now checks for the head's marker line among github-actions[bot]'s comments and stays quiet when it finds one..github/are now resolved in one narrow case:func, a type,case,import...) with balanced braces.let, calls) and any other overlap still stop.auto_catch_up_select.py:isCrossRepositoryand the head repo name), so fork pull requests get no automatic comments. This PR doesn't change that.Checked
c9a6a0e34564),merge_declarations()returns main's file withwhatsNewSubtitleplaced beforewarnCloseXSubtitle, at the function boundary.SourceTestscovers the Add What's New recap with an off / quiet / sheet setting #14876 shape, a blocked statement, both sides inserting, and verify re-deriving the file and rejecting an edit. There is also a workflow test for the once-per-head check. One end-to-end case ran locally; the rest run in the PR's CI.🤖 Generated with Claude Code
Summary by cubic
Makes automatic catch-up quieter and resolves source-file conflicts it previously gave up on.
.github/now resolve when one side only inserted whole declarations (func, a type,import…) at balanced brace depth; both sides inserting declarations keeps both. Declarations move only within the hunk's own scope — after blank lines or closing braces, never between an attribute or doc comment and its declaration. Statements, switch or enum cases, preprocessor directives, braces next to quotes or comments, and marker-shaped lines still stop.Written for commit 324943d. Summary will update on new commits.