feat(projects): automatically pull clean default branches - #9277
Merged
maria-rcks merged 4 commits intoSep 2, 2026
Conversation
Contributor
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f5895cf. Configure here.
maria-rcks
force-pushed
the
t3code/auto-pull-main-setting
branch
from
September 2, 2026 22:10
f5895cf to
a178241
Compare
Contributor
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR adds a cross-cutting automatic Git-pull capability that performs network I/O and can mutate user checkouts during startup and background status refreshes. It also introduces a new product setting and default, so the change requires human review. Notes:
You can add or adjust custom eligibility rules. Learn more. |
github-actions Bot
added a commit
to omarcresp/t3code-flake
that referenced
this pull request
Sep 3, 2026
## What's Changed * feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254 * refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272 * feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830 * feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277 * fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112 * feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808 * feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276 * fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281 * fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279 * Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284 * fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280 * fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283 * fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285 * fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188 * fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180 * fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254 * fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287 * feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292 * chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297 **Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
This was referenced Sep 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Note
Written by
gpt-5.6-solon behalf of MariaAdds an opt-in Automatically pull setting to each project so clean default-branch checkouts stay current without manual pull prompts. When enabled, T3 Code checks at server startup and during existing background remote-status refreshes, then performs only a fast-forward pull when the checkout has no local changes or commits. Verified with server, web, and contracts typechecks, targeted lint, diff checks, a fresh-database server boot, and direct runtime checks for startup and background safety gates. Built with
gpt-5.6-solin T3 Code through the Codex harness.Note
Medium Risk
Opt-in background and startup
git pullcan change checkout state and hit the network, but only when gates pass and failures are non-blocking for startup and status refresh.Overview
Adds an opt-in Automatically pull project setting so enabled checkouts can stay current without manual pulls.
Project model and persistence: New optional
autoPullon orchestration project types andproject.meta.update; new projects default tofalse. Migration 0045 addsauto_pullonprojection_projects, wired through the decider, in-memory projector, SQL projection pipeline, and snapshot queries.When pulls run: On server startup (
projects.auto-pullafter provider-session reconciliation),autoPullProjectsloads the shell snapshot and fast-forwards only workspaces whereautoPullis true, the repo is on the default branch with upstream, the tree is clean, there are no local commits, and the branch is behind (concurrency 4; failures are warnings). During VCS status refresh,VcsAutoPullPolicyresolves eligibility from the active project by workspace root;maybeAutoPullapplies the same gates and refreshes cached status after a successful pull (pull errors do not fail the refresh).UI and docs: A switch in project settings fans out to all group members; user docs describe behavior and skip conditions. Tests cover meta-update propagation, startup gating, and broadcaster auto-pull.
Reviewed by Cursor Bugbot for commit 9ba089e. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add
autoPullproject setting that pulls clean default branches on startup and status refreshautoPullboolean to project commands, events, projection rows, and the SQLite-backed projection repository; migration 045 adds a non-nullprojection_projects.auto_pullINTEGER column defaulting to 0projects.auto-pullphase that loads project shells and concurrently pulls enabled repositories that are on the default branch, have an upstream, a clean working tree, no local commits ahead, and a positive behind count; failures are logged as warnings and do not abort startupVcsStatusBroadcasterevaluates an auto-pull policy on full and remote-only status refreshes, pulling qualifying clean default-branch checkouts and publishing the refreshed statusProjectionProjectDbRowSchemanow requires theauto_pullcolumn during decoding; any out-of-tree snapshot readers that do not expect the optionalautoPullfield onOrchestrationProjectorOrchestrationProjectShellmust handle its absenceMacroscope summarized 9ba089e.