Skip to content

chore: merge upstream through ea7d46ac10 - #81

Merged
andrewcai8 merged 9 commits into
mainfrom
sync/upstream-3
Sep 26, 2026
Merged

andrewcai8 merged 9 commits into
mainfrom
sync/upstream-3

Conversation

@andrewcai8

Copy link
Copy Markdown
Owner

Brings in the 7 upstream commits since #79: accessibility labels for controls and sidebar rows, usage contract tolerance for newer providers, no Cursor warning when no login is saved, client-version mismatch detection on the usage page, the offline-versus-update fix in the composer, and the Linux node-pty prebuild check for Windows artifacts.

Merge with a merge commit, not a squash. Squashing drops upstream's history and the next sync conflicts on every file again.

Conflicts

apps/server/src/usage/UsageService.ts. The fork reads every Cursor instance's login, and upstream now returns early when its one login is missing with no error. Kept the fork's multi-login loop and applied upstream's rule inside it. A login that is missing with no error adds neither an account source nor a setup error. A login blocked by an env token or the memory store still reports "needs a Cursor CLI login", as upstream does. Upstream's new tests pass unchanged. A new test covers two instances, one with an unreadable login and one with none, and expects only the unreadable login's error. Without the rule it gets two sources.

apps/web/src/components/ChatView.tsx. Upstream removed the folded "Reconnecting to X, finishing an update" line, which showed an offline server as an update in progress. Took that removal. Kept the fork's notice: the "no longer available / this workspace expired" state with its Connections action, and the Reconnect action. Reconnect stays visible while reconnecting, because a paused cloud workspace sits in that phase and only Reconnect wakes it (#33). The reconnectAction constant existed only so the folded line could share it, so it is inlined into its one remaining use.

apps/web/src/components/Sidebar.tsx. Kept the fork's pendingEnvironmentSend preview for draft rows, and added upstream's resolveSidebarRowAccessibility block after it, so the accessible label uses the same preview.

Verification

Targeted vp test run, all passing:

  • apps/server src/usage/ has 8 files and 117 tests.
  • apps/web covers ChatView.logic, Sidebar.logic, ui/switch, the usage page, and the usage query, with 13 files and 385 tests.
  • packages/shared usageMerge.test.ts has 26 tests.
  • packages/client-runtime usage and serverUsage have 11 tests.
  • apps/mobile ConnectionFormField has 2 tests.
  • scripts build-desktop-artifact has 75 tests.

No fork code reads the renamed staleEnvironments field.

🤖 Generated with Claude Code

blinding-pixels and others added 9 commits September 26, 2026 15:33
…al (pingdotgg#13491)

Co-authored-by: eshaan Sood <eshaansood@192.168.1.14>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Conflicts:
- UsageService: keep the per-instance Cursor login loop; a login that is
  missing with no error now adds neither an account source nor a setup error.
- ChatView: drop the folded version-skew reconnect line as upstream does;
  keep the workspace-expired notice and the always-available Reconnect.
- Sidebar: keep the pendingEnvironmentSend draft preview and add the row
  accessibility labels.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
With several Cursor instances, a missing login beside an unreadable one
must add no source of its own, only the unreadable login's error.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Sep 26, 2026
@github-actions

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.5 KiB 13.5 KiB +68 B (+0.5%) 15.1 KiB ✅
Codex Thread snapshot wire 7.1 KiB 7.1 KiB −1 B (−0.0%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.4 KiB 6.5 KiB +69 B (+1.1%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.2 KiB 56.3 KiB +88 B (+0.2%) 66.4 KiB ✅
Codex Live turn messages 8 10 +2 (+25.0%) 21 ✅
Claude Total thread wire 13.5 KiB 13.5 KiB +10 B (+0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.1 KiB 7.1 KiB −5 B (−0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.4 KiB 6.5 KiB +15 B (+0.2%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.0 KiB 57.0 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 9 9 0 (0.0%) 21 ✅

Baseline: ca7e8c9 · PR result: b437bef · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 114.0 KiB
  • Claude decoded thread snapshot: 114.7 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@andrewcai8
andrewcai8 merged commit d0def8f into main Sep 26, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

4 participants