Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
f0de1f4
Port version control panel work
Quicksaver Jun 18, 2026
ee9b701
Detect PR/MR base branches in source control panel
Quicksaver Jun 18, 2026
6a9d7a3
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 19, 2026
aaef573
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 19, 2026
3acf74d
Refactor source control and subagent helpers
Quicksaver Jun 19, 2026
c766991
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 19, 2026
e47d853
Port source control workspace scope updates
Quicksaver Jun 19, 2026
48378d5
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 19, 2026
52d2ff9
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 19, 2026
82b1da8
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 19, 2026
4b645ae
Refresh version control panel after upstream merge
Quicksaver Jun 19, 2026
e7e89ed
Clarify branch sync upstream handling
Quicksaver Jun 20, 2026
bc628e2
Force refresh cached SWR queries in atom runners
Quicksaver Jun 20, 2026
0225340
Show refresh spinner in source control summary
Quicksaver Jun 20, 2026
919eb7d
Fix source control panel merge behavior
Quicksaver Jun 20, 2026
54966aa
Fix source control review cleanup
Quicksaver Jun 20, 2026
7d226ba
Fix source control review edge cases
Quicksaver Jun 20, 2026
f624f85
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 21, 2026
4c95466
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 25, 2026
67f4559
Port source control service fixes
Quicksaver Jun 25, 2026
b18f677
Port VCS panel runtime labels
Quicksaver Jun 25, 2026
3818a4e
Port source control metadata errors
Quicksaver Jun 25, 2026
9b7e1ac
Harden source control metadata updates
Quicksaver Jun 25, 2026
ae654dd
Port source control polling cleanup
Quicksaver Jun 25, 2026
98ec2e8
Restore source control periodic fetch
Quicksaver Jun 25, 2026
5b834f1
Render working tree source rows eagerly
Quicksaver Jun 25, 2026
ec19c79
Add source control error cause sanitizer
Quicksaver Jun 25, 2026
942122a
Fix standalone source control branch validation
Quicksaver Jun 25, 2026
dc29076
Remove VS Code source control gating
Quicksaver Jun 25, 2026
5f3a26b
Remove obsolete webview bridge and sidebar helpers
Quicksaver Jun 25, 2026
b704651
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 25, 2026
ea9bf9b
Document version control upstream merge
Quicksaver Jun 25, 2026
6c431c1
Merge upstream main into version control panel
Quicksaver Jun 26, 2026
429b799
fix(source-control): address panel review feedback
Quicksaver Jun 26, 2026
fa3dd00
Show dirty sibling worktrees in source control panel
Quicksaver Jun 26, 2026
35ae2c7
Refresh expanded diffs on explicit local status updates
Quicksaver Jun 26, 2026
819fb9a
Stabilize source control refresh diffs
Quicksaver Jun 26, 2026
f797413
fix(source-control): address branch detail review gaps
Quicksaver Jun 26, 2026
1fe01f5
Fix source control review follow-ups
Quicksaver Jun 26, 2026
b74eb18
Fix source control review edge cases
Quicksaver Jun 26, 2026
769ce3e
Fix sibling file preview tab state
Quicksaver Jun 26, 2026
be1525e
Fix source control worktree edge cases
Quicksaver Jun 26, 2026
4abafaf
Handle renamed file diffs in source control panel
Quicksaver Jun 26, 2026
997467f
Harden source control review follow-ups
Quicksaver Jun 27, 2026
d104016
Avoid untracked fallback for rename diffs
Quicksaver Jun 27, 2026
b53331f
Add provider-backed commit author avatars
Quicksaver Jun 27, 2026
28f7aea
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 27, 2026
212e625
Move source control routing out of ChatView
Quicksaver Jun 27, 2026
d3c1b79
Fix draft source-control metadata updates
Quicksaver Jun 27, 2026
5786c1c
Harden source control metadata routing
Quicksaver Jun 27, 2026
836a188
Ignore stale source control metadata errors
Quicksaver Jun 27, 2026
f28c6bd
Harden source control review follow-ups
Quicksaver Jun 27, 2026
1f3e006
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 27, 2026
59621bc
Update source control merge snapshot
Quicksaver Jun 27, 2026
93106c7
Fetch actionable branches on initial cwd change
Quicksaver Jun 29, 2026
8e6897f
Remount source control panel when thread context changes
Quicksaver Jun 29, 2026
e25707a
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jun 29, 2026
a22812f
Refactor source control surface gating
Quicksaver Jun 29, 2026
0e8ec28
Persist source control panel state across sessions
Quicksaver Jun 30, 2026
475d5fb
Document source control panel cache and refresh behavior
Quicksaver Jun 30, 2026
a6973ff
Keep right panel surface visible when VCS hides
Quicksaver Jun 30, 2026
fb12a32
Fix cached source control panel refresh
Quicksaver Jun 30, 2026
3319d5e
Key stash panel state by stable identity
Quicksaver Jun 30, 2026
a49db42
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 1, 2026
933c7bb
Consolidate right-panel add-surface actions
Quicksaver Jul 1, 2026
ef3cc00
Harden right panel add-surface actions
Quicksaver Jul 1, 2026
ff137ce
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 3, 2026
d3a15c4
Update source control merge snapshot
Quicksaver Jul 3, 2026
a619fa3
Remove version control branch pollution
Quicksaver Jul 3, 2026
7a26626
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 4, 2026
ca848a8
Update source control merge snapshot
Quicksaver Jul 4, 2026
0a85ac6
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 5, 2026
d6f86b1
Update source control merge snapshot
Quicksaver Jul 5, 2026
37aa959
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 10, 2026
7141001
Adapt source control panel to upstream metadata
Quicksaver Jul 10, 2026
2ce693c
Merge upstream Android support
Quicksaver Jul 13, 2026
41b4d6c
test(source-control): avoid remote update race
Quicksaver Jul 13, 2026
eba3649
Merge upstream main into version control panel
Quicksaver Jul 15, 2026
f4d025f
Fix self-hosted GitLab merge request lookup
Quicksaver Jul 15, 2026
1149bb4
Avoid duplicate GitLab repository URL prefixes
Quicksaver Jul 15, 2026
ae5117e
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 16, 2026
16053ae
Update source control merge snapshot
Quicksaver Jul 16, 2026
0828b6d
Remove residual version control branch pollution
Quicksaver Jul 16, 2026
e3d9ea7
Document version control panel branch context
Quicksaver Jul 17, 2026
b815652
Add native mobile Version Control screen
Quicksaver Jul 18, 2026
f3d149b
Prevent stale mobile Version Control state
Quicksaver Jul 18, 2026
e16e5b0
Fix mobile Version Control refresh and actions
Quicksaver Jul 18, 2026
fe59ac5
Fix mobile Version Control state recovery
Quicksaver Jul 18, 2026
343572b
Preserve mobile VCS errors and guard discard actions
Quicksaver Jul 18, 2026
d34eeaf
Read tracked and untracked stash file diffs
Quicksaver Jul 18, 2026
9427b05
Add native mobile version-control diff navigation
Quicksaver Jul 18, 2026
1e54877
Refresh version control panel documentation
Quicksaver Jul 19, 2026
d78a257
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 19, 2026
e2e4c8b
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 19, 2026
561f2ef
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 19, 2026
d3346dd
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 19, 2026
a108fe1
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 19, 2026
2d03756
Fix pnpm workspace dependency resolution
Quicksaver Jul 19, 2026
81a8b85
Optimize Version Control panel refreshes
Quicksaver Jul 20, 2026
32f8dc0
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 20, 2026
f875014
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 20, 2026
2aa5de0
Fix native Version Control state handling
Quicksaver Jul 20, 2026
fd76c5e
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 20, 2026
9a46f91
Fix Version Control review findings
Quicksaver Jul 20, 2026
b48cbf0
Fix version control action edge cases
Quicksaver Jul 20, 2026
c990bc9
Harden selected commit cleanup
Quicksaver Jul 20, 2026
73c923a
Use literal paths when unstaging
Quicksaver Jul 20, 2026
059c557
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 21, 2026
a3e773b
Fix literal paths and remote checkout collisions
Quicksaver Jul 21, 2026
96966b7
Fix slashful remote checkout branch names
Quicksaver Jul 21, 2026
8c09c5a
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 22, 2026
8245d1b
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 22, 2026
b42684a
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 23, 2026
b8a3122
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 23, 2026
14b4a69
Refresh inline diffs after worker syntax highlighting
Quicksaver Jul 23, 2026
135eb1a
Honor worktree ownership for branch actions
Quicksaver Jul 23, 2026
c145a0c
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 23, 2026
28577e9
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 23, 2026
e5fa8b7
test(web): cover grouped Source Control draft switching
Quicksaver Jul 23, 2026
1dde6ec
docs: document grouped Source Control draft isolation
Quicksaver Jul 23, 2026
f75c08d
Keep Source Control open across grouped project switches
Quicksaver Jul 23, 2026
4ab2ef1
Avoid redundant Source Control retargets
Quicksaver Jul 23, 2026
f0e1d97
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 23, 2026
9ec4db5
Fix Version Control refresh and detail states
Quicksaver Jul 23, 2026
97bd8ef
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 23, 2026
c8bf90a
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 23, 2026
e12200e
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 23, 2026
46e57db
Preserve queued refreshes and remote collapse state
Quicksaver Jul 23, 2026
8beca06
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 24, 2026
90a9036
Fix source control review regressions
Quicksaver Jul 24, 2026
394a0a6
Add rich hover tooltips to source control rows
Quicksaver Jul 24, 2026
a301104
Federate web source control across connected environments
Quicksaver Jul 24, 2026
7087e9c
Scope file tooltip anchors to their trigger
Quicksaver Jul 24, 2026
f6a0f5d
Scope source control tooltip state
Quicksaver Jul 24, 2026
c8a0c3f
Preserve row tooltips during nested tooltip opens
Quicksaver Jul 24, 2026
16a2196
Document federated source control tooltips
Quicksaver Jul 24, 2026
7086f24
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 24, 2026
2465e76
Refresh failed actions and route Azure avatar lookups
Quicksaver Jul 24, 2026
14aba43
Fix invalid native Version Control dates
Quicksaver Jul 24, 2026
348f6bd
Make secondary VCS environments lazy and collapsible
Quicksaver Jul 24, 2026
87910a1
Surface version control commit hook failures
Quicksaver Jul 24, 2026
6f757f7
Wait for Git before classifying commit hook failure
Quicksaver Jul 24, 2026
3d15541
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 24, 2026
bdc92c0
Remove inactive environment expand chevrons
Quicksaver Jul 24, 2026
194d574
Refactor source control panels into modular components and services
Quicksaver Jul 25, 2026
3719fb8
Merge remote-tracking branch 'upstream/main' into split/version-contr…
Quicksaver Jul 25, 2026
5efd9f4
Export source control action state type
Quicksaver Jul 26, 2026
af3b77c
Fix Version Control review edge cases
Quicksaver Jul 26, 2026
a14cc54
Fix late Version Control review races
Quicksaver Jul 26, 2026
861a4ff
Fix Version Control retry and cancellation handling
Quicksaver Jul 26, 2026
eff1fe9
Scope native snapshot requests to current cwd
Quicksaver Jul 26, 2026
81ad88f
Remove main-only pnpm global store pollution
Quicksaver Jul 26, 2026
30153d1
Add accessibility semantics to mobile version control
Quicksaver Jul 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions BRANCH_DETAILS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Version Control Panel Work

The first-class Version Control panel includes a singleton right-panel surface, live VCS status watcher, Actionable and Remotes panel model, selected-file commit/stash flow, branch/commit/stash/remote actions, compare-base semantics, and Version Control panel RPC/contracts. On web, a logical project shared across environments renders one complete panel instance for each connected environment, with the active environment first and remote instances using the existing server-icon and environment-label treatment. Snapshots, status subscriptions, fetches, diffs, editor launches, and Git mutations stay routed through each instance's environment and cwd. Disconnected environments are omitted, failures remain isolated to their per-panel retry state, and only the active instance may update active-thread source-control metadata or open its standalone File surface.

Web source-control rows use the shared Sidebar v2 rich-tooltip presentation and timing. Working tree, file, branch, commit, stash, and remote cards expose their full paths or refs and relevant status, timestamp, identity, URL, and line-change details without covering the row. File cards use trigger-scoped virtual anchors while retaining a common panel-aligned left edge. Nested action buttons keep their terse label tooltips and preserve the parent rich card only for the nested trigger in that same row, so unrelated tooltips elsewhere are unaffected.

VCS status ignores internal `.git/` watcher events before refreshing local status and uses a conservative default automatic remote Git fetch interval.

Provider-backed change-request lookups remain best-effort in the panel service. Provider/auth/CLI failures must not fail the whole panel snapshot or hide git-derived actionable branch rows.

Version Control and source-control provider failures should preserve structured causes when normalized for panel RPC errors. GitLab, GitHub, Azure DevOps, and Bitbucket provider paths should keep provider-specific not-found/auth/missing-CLI details without collapsing structured process failures into generic strings. Web mutations reconcile VCS status and an authoritative panel snapshot after both success and failure before preserving a mutation error, so conflict-producing or partially applied operations remain visible. Azure DevOps commit-avatar lookups route through the organization encoded by the repository remote and use the stable Commits Get API version.

Thread source-control metadata update failures should surface on the thread without overwriting unrelated thread errors, and successful source-control updates should clear only the source-control metadata error for that thread. Metadata update sequencing stays monotonic for the hook lifetime so a reopened thread key cannot let an old in-flight failure overwrite a newer successful checkout. Server-thread updates carry the active branch as `expectedBranch`, allowing the server to reject a stale metadata write instead of overwriting a newer branch/worktree transition. Grouped-project navigation retargets an open singleton Source Control surface to the active draft/thread environment and effective repository cwd, while metadata errors remain scoped to the originating environment/thread key and are pruned when that context is no longer retained.

Required edge cases: the current default branch remains a valid default compare ref and retains that stable base in its own branch details, status-derived default branch names such as `develop` are preferred over hardcoded `main`/`master` guesses, compare-history pagination queries the selected comparison range, branch pull/fetch parsing handles slashful remotes and remote-looking local branch names without treating slashless local upstreams as remote refs, diverged normal merge sync is available only for the current branch, checked-out branch worktree paths fall back from porcelain worktree output to branch-format placeholders without failing on older Git versions, sibling worktree watcher refreshes keep root Actionable rows live while skipping stale/prunable worktree paths, working-tree refreshes that race an authoritative full snapshot cannot retain pre-mutation branch/remote/stash data, failed full snapshots release the in-flight full-refresh barrier so later working-tree refreshes can remain incremental, queued web refreshes still drain when the active refresh fails or is interrupted, branch sync and undo operations for checked-out branches target the owning worktree cwd, checkout and deletion remain rejected by both the client and server for branches already checked out in any worktree, cwd-scoped working-tree enrichment avoids cross-worktree file-detail reuse, selected-file commits omit pathspecs after staging, commit-hook output only enriches a failed Git result and never interrupts a still-running commit, merge refs are passed after `--`, tracked discard restore failures surface instead of being swallowed, fallback rename parsing preserves original paths, merged staged-plus-unstaged row stats are summed, collapsed mobile remotes hide their branch rows, mobile conflict-only rows open the working-tree diff side, failed mobile branch/stash details replace loading placeholders with errors, invalid mobile branch and stash dates are omitted instead of appearing as recent activity, and late-month relative dates do not fall through to `0 years ago`.

`SOURCE_CONTROL.md` contains the detailed implementation requirements.

Primary reference:

- `SOURCE_CONTROL.md`

## Development Ports

- Web: `5742`
- Server/WebSocket: `13782`
Loading
Loading