fix(server): allow long-running git pushes - #6499
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
ApprovabilityVerdict: Approved 407aff7 Straightforward bug fix that removes timeout limits specifically for git push operations, allowing large pushes to complete. The change is narrowly scoped with a test, and the author has prior contributions to this file. You can customize Macroscope's approvability policy. Learn more. |
Problem
Explicit
git pushoperations inherited the Git driver's 30-second default command timeout. Because Git waits forpre-pushhooks, repositories with longer build or test gates could not use the thread-header Push action.Fix
runGithelper accept execution options.{ timeoutMs: null }explicitly from each push call site.Impact
Long-running pre-push hooks can finish normally without requiring a new setting or an arbitrary larger timeout.
Validation
vp test run apps/server/src/vcs/GitVcsDriverCore.test.ts— 48 passedvp lintvp fmt --checkvp run --filter t3 typecheckgit diff --checkFixes #5200
Implemented with GPT-5.6 Sol through the Codex harness in T3 Code.
Note
Medium Risk
Only explicit push paths disable timeouts, but a stuck hook or network can leave a push running indefinitely instead of failing at 30s.
Overview
User-initiated git push no longer hits the Git driver’s 30s default timeout, so pre-push hooks (builds, tests) can finish before the thread-header Push action fails.
The executor now treats
timeoutMs: nullas no timeout (distinct from omitting the field, which still defaults to 30s).runGitaccepts an options object so push call sites pass{ timeoutMs: null }on every push path; other Git commands keep their existing limits. A TestClock test asserts a push that runs past 31 seconds still completes successfully.Reviewed by Cursor Bugbot for commit 407aff7. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Allow git push operations to run without a timeout in
pushCurrentBranchtimeoutMsinExecuteGitOptionsto acceptnull, which skips applyingEffect.timeoutOptionentirely so the command runs indefinitely.git pushcall sites inGitVcsDriverCore.tsto pass{ timeoutMs: null }, removing the default 30-second timeout for push operations.timeoutMsisundefined.Macroscope summarized 407aff7.