Skip to content

Upstream integration cycle: web chat rendering, navigation and diff safety #667

Description

@rynfar

Bound

  • Upstream bound (frozen): b44c1ce5d25ee0d5a5be82e380618a886c19ea96
  • Pylon head at open: 2725b650086814b55ca3a935175a71e59ac69fd7
  • Review cursor unchanged: bbedad0278bbf753503184c00e0c09a0eab6679c

Cycle #650 closed with ~214 unclassified sources. Re-fetching added 24 more past the previous bound 93e04160a0. This cycle classifies 8; the rest stay unclassified for later bounded cycles. The cursor does not move.

Selected sources

Group A — chat feed and composer rendering (4)

SHA Upstream
4749035bda13b4b6260499caedbc0d69a2f60e6f #12166 keep composer banners compact and readable
592021f008010ee947c326df0452d093ead8aeb1 #12302 collapse thoughts within tool groups
fbc8b960026e408c163ea55db8075bbf1a42d628 #12270 keep thoughts and failed tool calls in one activity row
fcfd9f911a27ee3b813d64582c53d82dfa2e892b #12317 keep chat from jumping when the scroll-to-end pill mounts

Touches ChatView.tsx, MessagesTimeline.tsx/.logic.ts, the composer banner components, and apps/mobile/src/lib/threadActivity.ts — fbc8b96002 is cross-client.

Group B — navigation, search and diff safety (4)

SHA Upstream
886c83450797c46ee84ae28fc16c2208cafa965e #10909 folder links from chat open the file tree instead of a broken preview
3fd5d6439d8fd49d173503ecda96500463a39bd2 #12315 keep numbered jumps from stealing browser tabs
9ea9c3d5d2c444133e3ddff40eecf38737951589 #11075 keep a file-to-symlink type change from crashing the diff view
c557bb10aa7cbb78a50df230d1e8e24af79cb662 #11761 sidebar search matches message content

Touches the files panel and projectFilesQueryState, rightPanelStore, keybindings on web and in packages/shared, the diff file tree and diffRendering, and Sidebar/CommandPaletteResults.

The two groups share no files and land as two independent PRs.

Review method

Every group gets adversarial review at the maintainer's request: an independent reviewer that did not write the code tries to break each port — wrong Pylon adaptation, lost Pylon-specific behavior, missing reverse transition, unhandled empty/error state, regression in a diverged file — before the parent's own review and CI. Implementation claims are not accepted as verification; the parent re-runs checks on the final head.

Boundaries to preserve

Pylon's diverged ChatView.tsx and timeline behavior, delivery holds and provider-bound drafts, Pylon routing and panel-choice semantics, environment-scoped caches, Pylon keybinding identity and its packages/shared contract, and Pylon branding. 3fd5d6439d also touches pnpm-lock.yaml upstream — the lockfile must be regenerated from Pylon's own inputs with the pinned tool, never copied.

Verification plan

Focused web tests for each changed area, @t3tools/web and @t3tools/shared typechecks, t3 where the mobile/shared logic is touched, scoped lint, and green CI on each final PR head. These are user-visible UI changes, so integrated client evidence is wanted for the final behavior; browser use is pending the maintainer's authorization for this cycle and is recorded as outstanding until then.

Not in scope

The ~230 remaining unclassified sources, including the Effect rc.115 / Alchemy beta.78 upgrade and its .repos/effect-smol reference sync (deserves its own cycle), the npm_and_yarn dependency bumps, the mobile header/platform-split refactor series, OTLP telemetry export, and all new feature work. Release and installation are not authorized.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions