Skip to content

Commit fa442d8

Browse files
committed
docs: record the 2026-08-11 fourth upstream batch and defer PR-dependent work
1 parent 7a32d19 commit fa442d8

1 file changed

Lines changed: 49 additions & 1 deletion

File tree

.agents/upstream-review.md

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
remote: t3code-upstream
33
branch: main
4-
reviewed-through: "9c7622dac3d1a385351e6c74354a9e6b9c2037d5"
4+
reviewed-through: "65b005f1e4bfccb6a404b3b1e5bfa363d534ac2a"
55
reviewed-through-date: "2026-08-11"
66
---
77

@@ -529,6 +529,53 @@ a silent no-op under zsh, which does not word-split unquoted expansions. It
529529
prints `No files found to lint` and exits 0. Pass explicit paths and confirm
530530
the reported file count.
531531

532+
## 2026-08-11 (fourth batch) — `9c7622dac3d1a385351e6c74354a9e6b9c2037d5..35172010b131510d36d0cef54e174926e38a3013`
533+
534+
Fourteen upstream commits. Nine adopted, one deferred, one skipped, and
535+
**three still awaiting a decision**, so the cursor advances only to
536+
`65b005f1e` — the third commit in the range, because the fourth
537+
(`6676f9c83`, K12) is undecided. Everything adopted below sits later in
538+
history than the cursor and is recorded here by upstream SHA; a future
539+
session re-reviewing this range will see them already present via
540+
`git cherry`.
541+
542+
**Standing policy set this session: DEF-1 is wanted eventually, but not until
543+
that surface is stable. Anything that depends on or modifies the pull-requests
544+
page is deferred with it rather than skipped.** K13 below is the first
545+
application of that rule.
546+
547+
| Change set | Upstream | Decision | Pylon reference | Rationale or revisit condition |
548+
| ---------- | --------------------- | -------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
549+
| K1 | `6befe42eb` / `#6189` | adopted | `c9aa8329d` | A bare Windows drive root normalizes the same as `C:\` and `C:/`. |
550+
| K2 | `220e573b1` / `#6187` | adopted | `b9a5fef90` | Azure DevOps SSH remotes (`ssh.dev.azure.com`) are detected. |
551+
| K3 | `1e355a2a3` / `#6165` | adopted | `510a4c673` | Dropdowns render above toasts — a z-index fix across five UI primitives. |
552+
| K4 | `65b005f1e` / `#5574` | adopted | `3e4a1737a` | Copy Thread ID from both the sidebar row and chat header menus, hitting both entry points for one behavior. |
553+
| K5 | `57b105267` / `#6123` | adopted | `9f5b17815` | A dismissed thread error banner stays dismissed across reconnects and rerenders. |
554+
| K6 | `35172010b` / `#6194` | adopted | `4d317bb49` | Clearer pull action icon. Touches `GitActionsControl`, not the pull-requests page, so it is unaffected by the DEF-1 policy. |
555+
| K7 | `752acbf65` / `#5994` | adopted | `8ac06fd34` | Shift+click creates a new thread in the current project, with the shortcut shown in the tooltip. |
556+
| K8 | `ac4780f45` / `#6172` | adopted | `5ee79111c` | Typography rows report dirty on font _size_ changes, not just family, so Restore defaults reaches them. **One conflict in `SettingsPanels.tsx`, resolved Pylon-first:** upstream replaced four font-family checks with `getChangedTypographySettingLabels`, which is a superset of them; Pylon's own `showProviderUsageInContextPopover` label was kept alongside it. |
557+
| K9 | `44621c345` / `#6031` | adopted | `7a32d19b9` | **Manual port, usage half only.** Upstream adds sidebar-footer back buttons for both the usage and pull-requests pages; Pylon has no pull-requests page, so that branch and its `pullRequestsSupported` gating were left out. Uses Pylon's existing `useRouterState` pathname instead of upstream's `useLocation` selector. Closes a one-way door: the footer's Usage entry becomes Back while on `/usage`. |
558+
| K13 | `f5fce7416` / `#6061` | deferred | `` | Routes self-hosted GitLab remotes, but patches `PullRequestService.ts`, which Pylon does not have. Deferred with DEF-1 under the standing policy rather than skipped, so it lands when the pull-requests surface does. Tracked as DEF-2. |
559+
| K14 | `3da7f9c5c` / `#6177` | skipped | `` | Bumps the mobile app to 1.0.3 and adds App Store release guards to the EAS production workflow. Pylon versions independently (precedent F20, F23) and the guard is written around upstream's release cadence. Revisit only as a Pylon-owned release guard, not as a version bump. |
560+
561+
Awaiting decision, and the reason the cursor stops at `65b005f1e`:
562+
563+
- **K10 `c842c6f5b` / `#6170`** — hourly past-24-hour usage view. Sixteen files
564+
across contracts, server aggregation, web, and mobile. A feature, not a fix.
565+
- **K11 `b30a9bc41` / `#6183`** — theme-aware environment artwork. Twelve files
566+
including `index.css` (+173), `themePalette`, and `SidebarStageBackdrop`.
567+
Highest conflict risk in the range: it overlaps Pylon's adopted theme library
568+
(F10) and its DotMatrix work.
569+
- **K12 `6676f9c83` / `#5986`** — mobile composer and interaction
570+
stabilization. Thirty-seven files plus four native `patches/`,
571+
`pnpm-workspace.yaml`, the lockfile, and package bumps. Native-affecting, so
572+
it needs a real mobile verification pass rather than a typecheck.
573+
574+
Verification: shared `path` and `sourceControl`, web `Sidebar.logic`,
575+
`threadActionMenu.logic`, `SettingsPanels.logic`, and `ThreadErrorBanner` pass
576+
(145 tests). Web and shared typecheck clean. `vp lint` and `vp fmt --check`
577+
clean across all 23 changed files.
578+
532579
## Deferred register
533580

534581
Upstream work that has been reviewed and consciously _not_ adopted yet, with
@@ -543,3 +590,4 @@ the outcome. See Phase 2.5 of the `review-t3-upstream` skill.
543590
| ID | Upstream | Deferred on | Revisit when | Why deferred |
544591
| ----- | ----------------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
545592
| DEF-1 | `cad2c9361` / `#4849` and `a7b0366cb` / `#6049` | 2026-08-11 | **Both** gates must hold, because an empty log alone is also what day one looks like: (1) the date is on or after **2026-08-25**, and (2) `git log --oneline --since="14 days ago" t3code-upstream/main -- apps/web/src/routes/_chat.pull-requests.tsx packages/contracts/src/pullRequest.ts packages/client-runtime/src/state/pullRequests.ts` is empty. Then review as its own dedicated batch with a real product decision, not as part of a range sync. | Multi-provider pull requests page with in-app reviews: **34,121 insertions across 143 files**, larger than the other 59 commits of the 2026-08-11 range combined. It is a new product surface, not a fix — an 800-line `pullRequest.ts` contract, ~149 lines of new RPC, new HTTP endpoints, new client-runtime state, new dependencies, a `vite.config.ts` change — and Pylon would own all of it across web, desktop, mobile, and every connection mode. Three reasons to wait rather than skip: (1) **it will churn** — in this same range upstream rewrote `UsagePage` (`#5823`) and deleted the project-settings routes it had just added (`#5923`) within days, and `#4849` landed one day before the reviewed head with `#6049` already following it; (2) it touches `openPullRequestLink` and `sourceControlPresentation`, the same area as the merged-badge/auto-settle fix made in the previous batch, so landing it now risks masking that; (3) there is no security, correctness, or provider-compatibility pressure. "Does Pylon want in-app PR review?" deserves its own product decision, not a line in a 60-commit sync. |
593+
| DEF-2 | `f5fce7416` / `#6061` | 2026-08-11 | Adopt together with DEF-1, as part of the same dedicated pull-requests batch. It has no standalone revisit condition: without the pull-requests surface there is no `PullRequestService.ts` to patch. | Routes self-hosted GitLab remotes through the pull-requests service. Two of its five files (`apps/server/src/pullRequest/PullRequestService.ts` and its test) do not exist in Pylon. The `SourceControlProviderRegistry` half could in principle be lifted out, but it exists to serve the PR service and carries no benefit alone. First application of the standing policy: work that depends on the deferred pull-requests surface is deferred with it, never skipped, so it is not lost when DEF-1 is eventually taken. |

0 commit comments

Comments
 (0)