Skip to content

chore: backport upstream server fixes (2026-09-29) - #244

Merged
TheDarkPhantom merged 16 commits into
mainfrom
chore/upstream-server-fixes-2026-09-29
Sep 29, 2026
Merged

TheDarkPhantom merged 16 commits into
mainfrom
chore/upstream-server-fixes-2026-09-29

Conversation

@TheDarkPhantom

Copy link
Copy Markdown
Owner

Backports a batch of upstream server stability and speed fixes from pingdotgg/t3code (upstream/main at d2c9281). Each fix is its own commit. Cherry-picks keep the -x trailer, and hand-ports carry Ported from pingdotgg/t3code#NNNN.

Landed

Cherry-picked (conflicts resolved to keep the fork's structure):

Hand-ported:

Skipped or partial, and why

Verification

  • tsgo --noEmit passes for apps/server and packages/shared
  • vp test run on the touched suites: Sqlite, NodeSqliteClient, ProviderService, ProviderSessionDirectory, ProviderSessionReaper, projector, projector.settled, ProjectionSnapshotQuery, ProviderCommandReactor, ProjectSetupScriptRunner, terminal Manager, AcpJsonRpcConnection, externalLauncher, opencodeRuntime.cliParsers, shared shell and sourceControl. All pass locally.
  • GitVcsDriverCore.test.ts: the new --no-auto-gc test passes. One test fails locally, "preserves newline characters in worktree paths", because Windows can't create paths containing newlines. It is unrelated to this change.
  • CursorAdapter and GrokAdapter tests fail locally with spawn EFTYPE, because Windows can't spawn the shebang mock agent directly. This is an environment issue, so CI is the real check.
  • parseChangelog.test.ts passes. vp lint and vp fmt are clean on the changed files. vp run check:avicode passes.

🤖 Generated with Claude Code

t3dotgg and others added 14 commits September 30, 2026 01:07
…th failed repacks (pingdotgg#13812)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 95030dc)
…gdotgg#13684)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 8aa5be2)
A failed prepare (missing table during startup, a transient exclusive lock)
was cached for the full 10 minute TTL, so every later run of the same query
failed without retrying. Failures now expire immediately while successful
prepares keep the normal TTL.

Ported from pingdotgg#10584

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

Co-authored-by: Claude <noreply@anthropic.com>
(cherry picked from commit c216ba4)
The shell and archived shell snapshots were assembled from rows that were
already schema-decoded, then decoded again as a whole. The RPC and HTTP
layers encode the result on the way out, so the second decode only cost
time on every thread list load.

Ported from pingdotgg#13693

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Stopped provider session rows are kept for their resume cursors, so
long-lived installs accumulate thousands. Shutdown rewrote every one of
them. It now skips rows that are already stopped with no active turn and
records the count it actually stopped as `stoppedSessionCount`.

Ported from pingdotgg#13688

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
On Windows every editor lookup probed PATH x PATHEXT candidates with a stat
each, which is slow enough on long PATHs that discovery could time out and
installed editors vanished from the list. Editor discovery now lists each
PATH directory once (relisting it when its mtime changes) and only probes
names that are actually present.

Ported from pingdotgg#13669

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Settled threads kept every terminal shell alive, holding their worktrees
open. TerminalManager gains `closeIdle`, which re-inspects each running
terminal and closes only those sitting at an idle prompt (no subprocess and
no input or output during the check). The provider command reactor calls
it on `thread.settled` when the thread is still settled.

Ported the settle half only: the fork has no setup-script completion
observation to hang the setup-shell close on, and the upstream async
prompt helper detection depends on its process-table inspector.

Ported from pingdotgg#13673

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The reaper listed and decoded every provider session row each sweep, then
ignored the stopped ones, which far outnumber live sessions on long-lived
installs. `listBindings({ excludeStopped: true })` now filters them in the
query.

Ported the session-reaper part only; the Connect relay changes do not apply.

Ported from pingdotgg#13774

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Every emitted ACP tool update closed the active assistant segment, so a
background command reporting progress or finishing mid-answer split one
Cursor or Grok reply (for example a markdown table) into several messages.
Only the first time a tool call is shown now counts as a boundary; later
progress and repeated completions for a recently shown call do not.

Ported only the shownToolCallIds logic; the fork lacks upstream's tool
update throttling.

Ported from pingdotgg#13386

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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:L labels Sep 29, 2026
TheDarkPhantom and others added 2 commits September 30, 2026 01:41
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@TheDarkPhantom
TheDarkPhantom merged commit fbfca5b into main Sep 29, 2026
12 checks passed
@TheDarkPhantom
TheDarkPhantom deleted the chore/upstream-server-fixes-2026-09-29 branch September 29, 2026 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 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.

4 participants