Skip to content

chore(server): port upstream server quick wins (2026-10-09) - #268

Merged
TheDarkPhantom merged 8 commits into
mainfrom
chore/upstream-server-quickwins-2026-10-09
Oct 9, 2026
Merged

TheDarkPhantom merged 8 commits into
mainfrom
chore/upstream-server-quickwins-2026-10-09

Conversation

@TheDarkPhantom

Copy link
Copy Markdown
Owner

The fork has not merged upstream since 2026-07-30, so a batch of small upstream server fixes was missing. This hand-ports the ones that apply to the fork's V1 server, one commit each, with upstream tests adapted.

Ported

Skipped

Verification

  • vp test run on every touched test file: 243 passed, 5 failed. All 5 also fail on the unmodified code and are Windows-only path issues (backslash vs / assertions in ProjectFaviconResolver and SourceControlRepositoryService, newline worktree path in GitVcsDriverCore).
  • Each new upstream test was confirmed to fail without its fix.
  • tsgo --noEmit clean for apps/server, packages/shared, packages/effect-acp, packages/contracts.
  • vp lint and vp fmt --check clean on changed files; vp run check:avicode and vp run test:avicode pass.

🤖 Generated with Claude Code

TheDarkPhantom and others added 8 commits October 9, 2026 10:38
…otgg#15532)

Port of upstream 4ee6bfd. Commit message generation now builds its diff
in a temporary index (GIT_INDEX_FILE) instead of resetting and re-adding in
the real one, so the user's staged selection, split-index files and merge
metadata are untouched. Staging moves to commit time. Adapted to the fork's
runGit signature via a small runGitWithOptions helper.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…#12543)

Port of upstream b69f8b5. Favicon resolution starts every well-known
candidate probe (and then every icon source file read) at once and takes
the first hit in list order, so a miss costs one round of filesystem latency
instead of ~30 sequential ones.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ingdotgg#13758)

Port of upstream 570b72d. A failed trace write drops the rest of its
batch instead of re-queueing it, so a full or broken disk no longer grows an
ever-larger backlog that every later push retries. The sink logs once when
writes start failing and once when they recover.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Port of upstream fec71c5. When the first scan of a large workspace
outlasts the 15 second budget, file listing and search serve the entries
found so far (marked truncated) instead of failing, until the scan finishes.
The fork has a single paths-only index, so the upstream variant check is
dropped and the test drives the fork's polling timeout with TestClock.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Port of upstream f973b1d. A failed git command now carries a closed
reason tag (authentication_failed, remote_unreachable, branch_already_exists,
and so on) classified from git's own diagnostic lines, and the error message
names it. Stderr itself still never leaves the driver. The ssh-refusal tests
pass the fake ssh path with forward slashes so they also run on Windows.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…y spawn (pingdotgg#12600)

Port of upstream 71964e6. On Windows every child process spawn scanned
PATH synchronously to resolve the executable. Successful lookups are now
kept for 30 seconds, keyed by resolver, platform, PATH, PATHEXT and command.
Explicit paths and misses stay uncached so a newly installed CLI shows up at
once. The fork lacks upstream's shared command-resolution cache, so spawn
resolution gets its own SpawnResolutionCache reference.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…r requests (pingdotgg#15515)

Port of upstream 8ddf200. The WebSocket RPC server runs with
disableFatalDefects, so a handler defect fails only its own request instead
of sending a socket-level Defect frame that ended every pending request and
subscription on that client. A small DefectReporter logs those defects.
effect-acp gets the same treatment: dying request handlers answer their own
request, notification handlers are isolated, and a defect in a reader
callback terminates the connection so pending requests fail instead of
hanging. Tests are adapted to the fork's older ACP schemas and wire format.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…4781)

Port of upstream e65063c. Clone passes "--" before the user-supplied
repository path or URL, so a local repository whose name starts with a dash
(say "--bare") is cloned as a source instead of being read as a git option.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Oct 9, 2026
@TheDarkPhantom
TheDarkPhantom merged commit b2a2a55 into main Oct 9, 2026
12 checks passed
@TheDarkPhantom
TheDarkPhantom deleted the chore/upstream-server-quickwins-2026-10-09 branch October 9, 2026 02:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 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