Skip to content

Fix remote worktree diff compatibility#19

Open
jln13x wants to merge 220 commits into
mainfrom
t3code/remote-diff-view-fix
Open

Fix remote worktree diff compatibility#19
jln13x wants to merge 220 commits into
mainfrom
t3code/remote-diff-view-fix

Conversation

@jln13x

@jln13x jln13x commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • keep rendering the last successful status and diff snapshots when remote refreshes fail
  • fall back to legacy combined worktree diffs for older environments
  • advertise and check a worktree source-control capability before exposing mutation controls
  • refresh both status and preview state and document the fork-specific compatibility behavior

Validation

  • vp check (zero errors; existing unrelated warnings remain)
  • vp run typecheck
  • vp test apps/web/src/components/WorktreeSourceControl.logic.test.ts apps/server/src/environment/ServerEnvironment.test.ts
  • live browser verification of the worktree file list and selected-file diff

jakeleventhal and others added 30 commits July 11, 2026 14:04
- Add interaction sound cue detection with hydration-safe tests
- Play bloom and success cues from the web app
Force-remove deletes the working tree via the filesystem first so git only cleans registration metadata, instead of timing out while walking multi-GB node_modules.

Co-authored-by: Cursor <cursoragent@cursor.com>
Only wipe the directory after confirming the path is a linked entry from `git worktree list`, so mistyped or non-worktree paths are left intact.

Co-authored-by: Cursor <cursoragent@cursor.com>
jln13x and others added 28 commits July 18, 2026 20:42
…sual-hierarchy

# Conflicts:
#	apps/web/src/components/Sidebar.tsx
#	docs/personal-fork-changes.md
Restore visual worktree thread grouping
Fix standalone chat creation and notifications
…review

# Conflicts:
#	AGENTS.md
#	apps/desktop/src/app/DesktopEnvironment.ts
#	apps/server/src/provider/Layers/CodexProvider.ts
#	apps/server/src/vcs/GitVcsDriverCore.test.ts
#	apps/web/src/components/AppSidebarLayout.tsx
#	apps/web/src/components/ChatView.tsx
#	apps/web/src/components/ComposerPromptEditor.tsx
#	apps/web/src/components/DiffPanel.tsx
#	apps/web/src/components/Sidebar.logic.test.ts
#	apps/web/src/components/Sidebar.logic.ts
#	apps/web/src/components/Sidebar.tsx
#	apps/web/src/components/chat/MessagesTimeline.test.tsx
#	apps/web/src/components/files/FileBrowserPanel.tsx
#	scripts/lib/brand-assets.ts
… state (Issue pingdotgg#4178)

Replays PR pingdotgg#4176 on current main and preserves the connection catch-up path from pingdotgg#4177.

Replace the array-backed command model with HashMap/HashSet state, evict deleted thread bodies, prune released VCS and browser caches, and clear per-thread client state.

Adds focused coverage for read-model invariants, deletion behavior, client cleanup, and VCS cache eviction after the final subscriber releases.

Co-authored-by: codex <codex@users.noreply.github.com>
Integrated from pingdotgg#4018 at de8fd65, adapted to retain the current draft hero/composer layout.
# Conflicts:
#	AGENTS.md
#	apps/desktop/src/app/DesktopEnvironment.ts
#	apps/server/src/provider/Layers/CodexProvider.ts
#	apps/server/src/vcs/GitVcsDriverCore.test.ts
#	apps/web/src/components/AppSidebarLayout.tsx
#	apps/web/src/components/ChatView.tsx
#	apps/web/src/components/ComposerPromptEditor.tsx
#	apps/web/src/components/DiffPanel.tsx
#	apps/web/src/components/Sidebar.logic.test.ts
#	apps/web/src/components/Sidebar.logic.ts
#	apps/web/src/components/Sidebar.tsx
#	apps/web/src/components/chat/MessagesTimeline.test.tsx
#	apps/web/src/components/files/FileBrowserPanel.tsx
#	pnpm-lock.yaml
#	scripts/lib/brand-assets.ts
Retire the diff-workflow flag now covered by upstream defaults and preserve custom Codex launch arguments during project skill discovery.
# Conflicts:
#	AGENTS.md
#	apps/web/src/components/AppSidebarLayout.tsx
#	apps/web/src/components/DiffPanel.tsx
#	apps/web/src/components/Sidebar.tsx
#	apps/web/src/components/chat/MessagesTimeline.test.tsx
#	docs/personal-fork-changes.md
The provider session reaper stops sessions after 30 min of lastSeenAt
inactivity. Background agent work (dynamic workflows, subagents) keeps
running after the foreground turn settles, but the adapter session goes
"ready" with no active turn and nothing refreshes lastSeenAt — so the
reaper tears the session down mid-workflow, and the in-flight background
orchestration is lost.

Refresh lastSeenAt from runtime activity: ProviderService now bumps the
binding's last_seen_at when the adapter emits runtime events (e.g.
task.progress from background subagents), throttled per thread so an
event burst is at most one lightweight write per window. A new targeted
touchLastSeen on the runtime repository / session directory updates only
last_seen_at, and only for non-stopped rows so a reaped session is never
resurrected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Streaming assistant messages still update their message projection and thread timestamp, but no longer rebuild the full thread shell summary for every delta. Add a regression test that fails if the hot path reads activity history.
Port upstream PR pingdotgg#3166 onto the current project resolver layout.
Integrate upstream remote-agent reliability improvements
Integrate focused correctness, performance, recovery, diff rendering, Git workflow, and desktop hardening changes from upstream PRs pingdotgg#4136, pingdotgg#4009, pingdotgg#3903, pingdotgg#4187, pingdotgg#3830, pingdotgg#2338, pingdotgg#3885, pingdotgg#4213, pingdotgg#4205, pingdotgg#3520, and pingdotgg#4107.

Document local adaptations, exclusions, and verification expectations in the personal fork inventory.
Backport upstream reliability and workflow fixes
feat: add worktree source control review
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

5 participants