You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Moved from #2451 at the repository's request after the issue was classified as a feature request.
Related scaling evidence: #2470 documents forge polling exhausting the machine-wide GitHub GraphQL quota in large multi-workspace setups. The original workflow, measurements, proposed controls, and acceptance criteria are preserved below for discussion.
Summary
Please add a supported way to disable Paseo's built-in Git integration, or independently disable its background Git features, at the daemon level.
This is intended as a reliability escape hatch for large multi-workspace setups and for Windows environments where Git child-process cleanup can interact badly with agent providers.
Motivation
I encountered repeated failed to load agent, provider refresh timeouts, and daemon liveness timeouts while using Paseo with many Git workspaces and Codex sessions on Windows.
During diagnosis, two different Git command producers were observed:
Paseo daemon Git reads, recognizable by commands such as:
git -c core.quotepath=false rev-parse ...
workspace status / branch / repo-root probes
Codex app-server repository probes, including:
git status --porcelain
git rev-parse HEAD
git rev-parse --git-dir
git remote -v
git config --null --get core.fsmonitor
The process accumulation was therefore not attributed solely to Paseo. However, Paseo currently has no supported escape hatch when Git polling contributes to process pressure or amplifies an upstream provider process-lifetime issue.
At peak load, many short-lived or orphaned git.exe processes accumulated, agent loading timed out, provider refresh hit a 60-second timeout, and even process/WMI inspection became slow. Archiving oversized sessions and moving active context to small handoff sessions reduced conversation-loading work but did not by itself eliminate the Git-process pressure.
Current behavior in v0.2.1
The only apparent Git-specific environment control is:
The following workaround substantially improved stability:
set PASEO_GIT_CONCURRENCY=2;
make the Codex provider resolve Git/mingw64/bin/git.exe before Git for Windows' small cmd/git.exe launcher;
restart the Paseo daemon/provider;
preserve large original sessions as archived sessions and use small handoff successors.
After restart, daemon health returned ok in approximately 0.4-0.6 seconds. Eight Git-process samples over 40 seconds showed 3-7 transient Git processes and zero dead-parent Git processes. Existing handoff successor agents loaded repeatedly in approximately 5-9 seconds.
This mitigation is useful, but it is not equivalent to a supported disable switch and may not protect against future provider regressions or unusually large workspace sets.
Defaults could preserve today's behavior for backward compatibility.
Acceptance criteria
With Git integration disabled, the Paseo daemon spawns no automatic git processes for registered workspaces.
Existing agents and sessions can still be listed, opened, resumed, and run.
Terminal and file functionality remains available.
Git-dependent UI and mutations are clearly marked unavailable, rather than hanging or polling.
Disabling only background fetch leaves local status/diff behavior working without network fetches.
Disabling workspace monitoring prevents watcher, fallback-refresh, and self-heal timers from invoking Git.
The active Git mode and effective concurrency are logged once at daemon startup.
The configuration and environment variables are documented.
Why this matters
Git integration is valuable, but it should not be mandatory for the core agent/session experience. A kill switch would provide a safe recovery path when:
a provider version leaks or fails to reap Git descendants;
Git for Windows launcher behavior causes process-tree cleanup problems;
one unusually large repository makes periodic status/diff operations expensive;
a user primarily wants remote agent/session control and does not need Paseo's Git UI;
daemon health must take priority over live branch/diff/PR metadata.
A granular setting would let users preserve the useful parts of Paseo while isolating Git-related operational failures.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Moved from #2451 at the repository's request after the issue was classified as a feature request.
Related scaling evidence: #2470 documents forge polling exhausting the machine-wide GitHub GraphQL quota in large multi-workspace setups. The original workflow, measurements, proposed controls, and acceptance criteria are preserved below for discussion.
Summary
Please add a supported way to disable Paseo's built-in Git integration, or independently disable its background Git features, at the daemon level.
This is intended as a reliability escape hatch for large multi-workspace setups and for Windows environments where Git child-process cleanup can interact badly with agent providers.
Motivation
I encountered repeated
failed to load agent, provider refresh timeouts, and daemon liveness timeouts while using Paseo with many Git workspaces and Codex sessions on Windows.During diagnosis, two different Git command producers were observed:
git -c core.quotepath=false rev-parse ...app-serverrepository probes, including:git status --porcelaingit rev-parse HEADgit rev-parse --git-dirgit remote -vgit config --null --get core.fsmonitorThe process accumulation was therefore not attributed solely to Paseo. However, Paseo currently has no supported escape hatch when Git polling contributes to process pressure or amplifies an upstream provider process-lifetime issue.
At peak load, many short-lived or orphaned
git.exeprocesses accumulated, agent loading timed out, provider refresh hit a 60-second timeout, and even process/WMI inspection became slow. Archiving oversized sessions and moving active context to small handoff sessions reduced conversation-loading work but did not by itself eliminate the Git-process pressure.Current behavior in v0.2.1
The only apparent Git-specific environment control is:
Source:
run-git-command.tsThis limits concurrency but cannot disable Git. Setting it to
0falls back to8because of|| 8.The workspace Git service also has fixed background behavior, including:
Source:
workspace-git-service.tsThe persisted daemon config schema has no Git enable/disable section:
Source:
persisted-config.tsWorkaround and result
The following workaround substantially improved stability:
PASEO_GIT_CONCURRENCY=2;Git/mingw64/bin/git.exebefore Git for Windows' smallcmd/git.exelauncher;After restart, daemon health returned
okin approximately 0.4-0.6 seconds. Eight Git-process samples over 40 seconds showed 3-7 transient Git processes and zero dead-parent Git processes. Existing handoff successor agents loaded repeatedly in approximately 5-9 seconds.This mitigation is useful, but it is not equivalent to a supported disable switch and may not protect against future provider regressions or unusually large workspace sets.
Proposed configuration
For example:
{ "daemon": { "git": { "enabled": true, "workspaceWatch": true, "backgroundFetch": true, "forgePolling": true, "concurrency": 8 } } }Suggested semantics:
enabled: falseworkspaceWatch: falsebackgroundFetch: falsegit fetch.forgePolling: falseconcurrency0as a documented disable value or reject it explicitly instead of silently converting it to8.Equivalent environment variables would also be useful for daemon/headless deployments, for example:
Defaults could preserve today's behavior for backward compatibility.
Acceptance criteria
gitprocesses for registered workspaces.Why this matters
Git integration is valuable, but it should not be mandatory for the core agent/session experience. A kill switch would provide a safe recovery path when:
A granular setting would let users preserve the useful parts of Paseo while isolating Git-related operational failures.
Original issue: #2451
Related investigation: #2470
All reactions