Skip to content

fix(server): git 2.56 broken-gitfile worktrees count as non-repositories again - #56

Merged
maschwenk merged 1 commit into
mainfrom
fix/git-2-56-gitfile-nonrepo
Nov 11, 2026
Merged

maschwenk merged 1 commit into
mainfrom
fix/git-2-56-gitfile-nonrepo

Conversation

@maschwenk

Copy link
Copy Markdown
Owner

test server 1 has been red on every fork main push. storageCleanup.test.ts › "compares the checked-out branch without a full status" points a worktree's .git at /missing-git-directory and expects cleanup to keep it as "Repository or branch changed". git 2.56, which the hosted ubuntu runners have now, rewords that error from not a git repository to gitfile does not point to a valid repository, so cleanup reported the worktree as failed with the raw git line instead. so its real behavior, not a flaky test. anyone on git 2.56 with a worktree whose gitdir is gone gets a failed cleanup entry instead of a kept one

this is a straight port of the upstream fix, which applied cleanly. julius closed the earlier attempt in favor of it, but it isnt merged upstream yet:

isNonRepositoryGitStderr in GitVcsDriverCore.ts now matches both wordings and is exported, and storageCleanup.ts and GitManager.ts call it instead of keeping their own inline copies. tradeoff is we're still string matching git's stderr, so a future reword breaks it again, but both cases exit 128 so there's nothing better to key on. other gitfile errors like invalid gitfile format still count as failures, and a test row covers that

checked against a real git 2.56.0 (homebrew bottle unpacked into a temp dir): the test fails on main with the exact CI error and passes with this change, and it still passes on git 2.53

written by Claude Opus 5.5 in Claude Code

…ies again

Port of upstream pingdotgg#33423. Git 2.56 reports a `.git` gitfile
that points at a missing directory as "gitfile does not point to a valid
repository" instead of "not a git repository", so storage cleanup marked
those worktrees failed instead of keeping them. The three non-repository
checks now share one classifier that matches both wordings.
@maschwenk maschwenk added the coder-task-generated Created from a coding task label Nov 11, 2026
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S labels Nov 11, 2026
@github-actions

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.
⚠️ This PR changes transfer ceilings:

  • Codex Live turn WebSocket decoded: 29.3 KiB → 24.4 KiB
  • Claude Live turn WebSocket decoded: 29.3 KiB → 24.4 KiB
Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB +33 B (+0.6%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB +33 B (+2.7%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 21.5 KiB +674 B (+3.2%) 24.4 KiB ✅
Codex Live turn messages 2 1 −1 (−50.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB +32 B (+0.6%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB +32 B (+2.6%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.9 KiB +686 B (+3.2%) 24.4 KiB ✅
Claude Live turn messages 2 1 −1 (−50.0%) 8 ✅

Baseline: cdc3e41 · PR result: db88846 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maschwenk
maschwenk marked this pull request as ready for review November 11, 2026 03:28
@maschwenk
maschwenk merged commit 75d09e1 into main Nov 11, 2026
30 of 31 checks passed
@maschwenk
maschwenk deleted the fix/git-2-56-gitfile-nonrepo branch November 11, 2026 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

coder-task-generated Created from a coding task size:S vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant