Skip to content

feat(fork-stack): commit-green verify + fold VCS stack debt - #167

Closed
patroza wants to merge 144 commits into
fork/candidatesfrom
feat/stack-commit-green
Closed

feat(fork-stack): commit-green verify + fold VCS stack debt#167
patroza wants to merge 144 commits into
fork/candidatesfrom
feat/stack-commit-green

Conversation

@patroza

@patroza patroza commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Summary

This PR targets documentation of the rewrite; fork/changes was force-updated to the rewritten tip (merge commits break stack sync). Overlay recompose via stack workflow.

Test plan

  • vp test run scripts/rebase-pr-stack.test.ts
  • vp check
  • node scripts/rebase-pr-stack.ts verify-head on folded VCS commit
  • package typechecks for server / client-runtime / web
  • Fork CI / stack recompose after fork/changes update

tim-smart and others added 30 commits July 29, 2026 07:19
Add custom "Open with" applications

Source: tim-smart#4
Source head: 8c4bdfb
Source commits: 08e1a4f,cd43a401c6c148f1fe26cff72104ac527ea189f3,a8370e7502c552ebb064436e42e1c00f86f0946b,8c4bdfbc5b57f6b600233244d330f9efa41dc498
Imported: complete product delta from the source PR.
Load direnv environments for provider sessions

Source: tim-smart#5
Source head: 8f5fc87
Source commits: e4f0701,0d1463af61e0bd174f698b2519ebf3b207a2eaca,a66e4160d5f4b79140ec8fbcbc6aa66af750a991,8f5fc87c13f4628c179cda44d4f32f7fe4d316b2
Imported: complete product delta from the source PR.
Add unsigned retry for commit signing failures

Source: tim-smart#6
Source head: 7d65c5a
Source commits: 18ee567,72a6fae23c86708080c4fed346d5bf0f136f0221,6614b28239ed2330a8f601357a413f2d50da195a,ec169369daa554541511aa28f551b36f3dd26485,7d65c5a224e97a6b811b0a84892f1fda065c5963
Imported: complete product delta from the source PR.
Add /new command for contextual threads

Source: tim-smart#7
Source head: 2051a80
Source commits: 2051a80
Imported: complete product delta from the source PR.
Add session dashboard board

Source: tim-smart#8
Source head: d9f8e4d
Source commits: 268fb8d,dde20f271f674da22dd8f3a08201c2acf5e58ee5,df4a145e7b2cd2dc17a7a595267d2d8eb0a2a3f0,ce5723ddb0bf630a18d4cb8227b5344d12626e72,ad8c1a6af41161e1fc38a52f681b306517c7b918,6281887e6125317da0c7b4252d59bfd41c9bf35e,550db6316c634febdbe1cb27334d1347c23c7b2a,d9f8e4d0a8dc22231ca315f3c595c3597f3b13e5
Imported: complete product delta from the source PR.
Recover interrupted provider turns after server restarts

Source: tim-smart#9
Source head: b181832
Source commits: 7f69028,1d52bce1376766d804ef884d7d50b8b6d1b48cf7,b181832560177250b90bbfe07b0882c9e5b93493
Imported: complete product delta from the source PR.
Avoid repeated thread snapshot loads during subscription retries

Source: tim-smart#10
Source head: c8c9ead
Source commits: c8c9ead
Imported: complete product delta from the source PR.
Add image upload button to compact chat composer

Source: tim-smart#11
Source head: 1ff63f9
Source commits: 1ff63f9
Imported: complete product delta from the source PR.
Truncate mobile branch toolbar controls

Source: tim-smart#12
Source head: 1b7d444
Source commits: 1b7d444
Imported: complete product delta from the source PR.
Clean up worktrees when archiving threads

Source: tim-smart#13
Source head: a23f42d
Source commits: 4a19470,1b6688aa5b641010cb2e9dad23d36d87257403ad,9ed32aa3923fb674380564b1ffcb3268290069b9,a23f42d6ac671ea36b8db5d03934c089a31be448
Imported: complete product delta from the source PR.
Pass hosted app channel into Vercel web builds

Source: tim-smart#14
Source head: de6966a
Source commits: de6966a
Imported: complete product delta from the source PR.
Allow worktrees to reuse the selected branch

Source: tim-smart#15
Source head: 2d3900b
Source commits: cd60531,2d3900ba36c9397dc4fbe879c613a809f6b45384
Imported: complete product delta from the source PR.
Add optional worktree removal confirmation

Source: tim-smart#16
Source head: c3f509f
Source commits: 76f063e,c3f509fe8f690b704bb34692d9c132c0644db777
Imported: complete product delta from the source PR.
Stop retrying unavailable thread subscriptions

Source: tim-smart#17
Source head: 1359af8
Source commits: 1359af8
Imported: complete product delta from the source PR.
Compatibility fix for running the selected Tim stack on the fork CI matrix. Source adaptation review: #31.
Keep the selected Tim Open With feature portable on non-macOS builders and avoid treating custom app definitions as macOS bundles. Source adaptation review: #33.
Source: pingdotgg#4018
Source SHA: de8fd65

Imported: bounded server activity snapshots, cursor pagination, lazy web history loading, reconnect-safe reset/dedup, and disabled eager browser sidebar hydration.
Adapted: preserved Tim thread lifecycle handling and Omega composer/minimap behavior while resolving current-stack conflicts.
Excluded: none of the source PR behavior; native mobile pagination remains separate because pingdotgg#4018 intentionally excludes it.
…#3510) (#35)

Source: pingdotgg#3510
Source SHA: 034f493

Imported: native mobile lazy loading for older thread activity, a 1,000-event subscription catch-up ceiling with snapshot fallback, and synchronized stale snapshot watermarks.
Adapted: applied above the refreshed pingdotgg#4018 web/server candidate and preserved Tim lifecycle handling plus our mobile composer changes.
Excluded: pingdotgg#3510 server/web pagination duplicated by pingdotgg#4018, the later shared-hook refactor, formatting-only commits, and contract comments. The shared refactor can be revisited independently after production validation.
Source: pingdotgg#4176
Source SHA: 56b6615

Imported: O(1) command read-model maps, deleted-thread eviction, VCS cache cleanup, browser surface cleanup, preview idle TTL, and per-thread UI cleanup.
Adapted: preserved our thread settlement, snooze, and sequential worktree deletion actions while wiring upstream cleanup into the current hook.
Excluded: none.

Co-authored-by: Rusiru Sadathana <27785781+RusiruSadathana@users.noreply.github.com>
#44)

Source: pingdotgg#4506

Source SHA: f7eaa00

Imported unchanged as one candidate provenance commit.
…tgg#4558)

Imported from https://github.com/pingdotgg/t3code/pull/4558\n\nAdapted to retain our provider restart-recovery constants while replacing the local default-title check with the shared policy.
patroza and others added 25 commits July 29, 2026 07:19
#130)

Cold compose installs hung under agent SOCKS and /tmp tmpfs. Seed
node_modules with cp --reflink=auto from a warm tree, work under
~/.t3/compose-work (btrfs), strip proxy for install, document the path.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Partition stays lifecycle-first (active / snoozed / settled). Within the
settled shelf, group already-sorted history by Last Hour / Earlier Today /
… via shared thread-recency-groups. Suppress headers when only one bucket
is visible on the current page so paging stays quiet.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…repack (#131)

- Drop Date.now in compose seed timing (effect globalDate)
- Narrow conflictResolutions commit after assertObject (unknown)
- Resolve pnpm with corepack on stack runners that only setup Node

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
When project scope is All projects (or multi-env / remote), surface
project and server labels on card and slim rows so cross-project settled
and active lists stay attributable. Scoped single-project lists keep the
quieter V2 chrome.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Add a single ListFilter control next to project scope (classic-style
compact chrome). Menu options:

- Date headers on settled (default on; disables recency section labels)
- Expand settled shelf (persists open/closed preference)
- Multi-select environment filter when multiple environments exist
  (shared storage key with classic list)

Does not reintroduce hide-settled semantics or activity-sorted active lists.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…se (#138)

Stack sync fails replaying fork/changes onto candidates at
ce33187 (restore recent work queue) on packages/contracts/src/settings.test.ts.
Take theirs (downstream) as a durable * policy so the next upstream sync can proceed.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…ent (#139)

* feat(web): collapsible Settled shelf when hide settled on classic Recent

Classic v1 recency/none no longer drops settled threads when Hide settled is
on. Active threads stay in the main list; settled move to a bottom shelf
(collapsible, paged, keep open route row) matching Sidebar V2.

* fix(desktop): stub onBeforeQuitForUpdate in DesktopUpdates tests

Unblocks package typecheck after ElectronApp gained onBeforeQuitForUpdate;
other desktop test mocks already stubbed it.

---------

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Bump @anthropic-ai/claude-agent-sdk for current stream message union and
required canUseTool requestId. Handle new system/top-level SDK messages
without work-log spam so typecheck exhaustiveness stays green.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Require full local verification (vp check, scoped typecheck, focused tests,
lockfile) before every push, and require every stack layer's Fork CI jobs to
pass before advancing to the next layer.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
#141)

Supersede the softer #142 wording: require full monorepo typecheck before
every push, and stop the line on each stack layer until the full local CI
gate is green before advancing. Docs-only; ClaudeAdapter fixes remain from #140.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
When Hide settled shelves history under classic Recency/None, group settled
rows with the same settle-time recency buckets as Sidebar V2 (Last Hour /
Earlier Today / …). Reuse groupSettledThreadsByRecencyForSidebarV2 and the
shared View preference for “Date headers on settled”.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…se (#144)

Stack sync fails replaying the root fork/changes commit onto
fork/candidates when ChatMarkdown diverges (markdown image / browser
link work vs candidates). Prefer the replayed fork/changes side via a
durable commit:\"*\" policy so the next sync auto-resolves.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…#145)

After ChatMarkdown, stack sync still stops replaying fork/changes onto
fork/candidates on apps/mobile HomeScreen (Recent/Projects/Board rewrite).
Prefer the replayed fork/changes side with a durable commit:\"*\" policy.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
#152)

Stack sync rebases the prior integration tip onto the new fork/changes
base before compose. Overlay commits that touch the lockfile (e.g. #120)
conflict there; prefer the replayed side via durable commit:\"*\" so
compose can continue and regenerate the integration lock at the end.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Stack conflict recovery kept resolveRemoteVscodeOpenTarget for tests but
dropped the chat-header control that opens Remote SSH worktrees via
vscode://. Wire the button back for non-primary project environments.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…156)

Partial conflict resolutions can keep pure helpers and unit tests while
deleting product chrome (#154 remote Open in VS Code). Export a pure
remote-open gate, add behavior + source existence tests for high-risk
fork surfaces (ChatHeader, list prefs, settled display, queued chips,
short project labels), and document product-conflict rules in AGENTS
and fork-stack docs.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Project grouping kept the FolderPlus control on the Projects header; flat
recency/none had no equivalent. Surface the same trigger next to View &
filters so projects can still be added without switching grouping.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
)

Replace the git-PR icon on classic project and recency/none rows with the
colored mono #number badge from Sidebar V2 so open/merged/closed state stays
scannable without hunting for an icon.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…cs (#161)

Stack sync fails rebasing fork/integration onto fork/changes on AGENTS.md
while replaying overlay #146. Neither pure ours nor pure theirs is safe:
#146 has Discord co-author / always-open-draft rules; #156 has product-
conflict and existence-test rules.

Merge both into fork/changes AGENTS, record durable policies:
- fork/changes AGENTS → theirs (fork layer rewrite)
- fork/integration AGENTS + docs/fork-stack.md → ours (keep complete base)

Local sync --dry-run succeeds with these resolutions.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…#163)

Surface WebSocket close codes and ping timeouts in connection banner text,
and retain short-lived disconnect events in localStorage for later inspection.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
Unblock sync onto latest upstream by recording auto-resolve policies for
fork/tim (GitVcsDriverCore test, vcs.ts, BranchToolbar), fork/candidates
(SidebarV2), and fork/changes (ws, CommandPalette, package.json), plus
existing integration AGENTS/lock policies. Local sync --dry-run succeeds.

Co-authored-by: T3 Code PR Stack <41898282+github-actions[bot]@users.noreply.github.com>
…orktree cleanup

Join upstream Git ref-refresh resource-storm fixes with fork contracts
(failureKind, commit signing, worktree cleanup RPCs, reuse-base-branch UI)
instead of leaving tip-only fix(stack) recovery commits after Tim whole-file
conflict policies.
… tips

Add sync --verify-each-commit (git rebase --exec verify-head) so stack
rewrites fail on the first red commit instead of tip-only recovery patches.
Document commit-green policy, history rewrite procedure, and remove durable
whole-file conflictResolutions on shared VCS/UI product paths.
@patroza
patroza force-pushed the fork/candidates branch 2 times, most recently from 9da321a to 58175e3 Compare July 29, 2026 09:25
@patroza

patroza commented Jul 29, 2026

Copy link
Copy Markdown
Owner Author

Finalized

This PR’s product is already on fork/changes / fork/integration (commit-green tooling, VCS fold, conflictResolutions policy, docs). The PR tip was left conflicting after stack rewrites and is no longer a useful merge vehicle.

Follow-up: fork/changes was history-rewritten from 123 → 13 path-themed commits (tip tree identical to pre-rewrite 9ccf29b7f, now tip 5e00e2171) so future rebases have clearer package/surface boundaries instead of many micro fix(stack) / sidebar / VCS follow-ups.

Closing as superseded by the rewritten layer + green integration compose.

@patroza

patroza commented Jul 29, 2026

Copy link
Copy Markdown
Owner Author

Superseded: work is on rewritten fork/changes (13 commits) and green fork/integration.

@patroza patroza closed this Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants