Skip to content

fix(server): speed up long thread message sync - #17387

Merged
Yash-Singh1 merged 1 commit into
mainfrom
t3/speed-up-thread-message-sync
Oct 9, 2026
Merged

Yash-Singh1 merged 1 commit into
mainfrom
t3/speed-up-thread-message-sync

Conversation

@Yash-Singh1

Copy link
Copy Markdown
Collaborator

Problem

Long forked threads can spend more than two seconds syncing messages before the client shows history. Profiling a long thread against a 57 GB database found repeated visibility work, unnecessary ancestor hydration, extra payload lookups, and repeated serialization in the bounded snapshot path.

Change

  • Build the existing visibility lookup once and calculate local visibility once per projection.
  • Load only timeline rows, runs, and attempts from fork ancestors during bounded reads.
  • Sort retained node IDs before fetching payloads through the existing primary key, then restore their order without sorting large JSON bodies in SQLite.
  • Carry SQLite row IDs through timeline selection to avoid a second string-ID index lookup for every payload.
  • Skip the final full-projection budget serialization when the already-measured control state exceeds the cap.

Uses existing indexes. No migrations, schema changes, new dependencies, or response-format changes.

Scope and approval

Requested through the T3 Code development thread to investigate message-sync latency and open this draft. These changes address the same server snapshot-read bottleneck and preserve history paging, visibility, and actionable state.

Verification

Combined benchmark

Compared the starting implementation with all changes together on the same frozen database, using four warmup pairs and 15 measured alternating pairs per thread. Timings include SQL reads, decoding, wire projection, bounded selection, schema encoding, and JSON serialization. They exclude process startup, network transfer, and client rendering. Every encoded response body matched byte for byte.

Thread Starting median Current median Reduction
Long forked thread 395.6 ms 303.5 ms 23%
Medium thread 176.6 ms 140.4 ms 21%
Shorter thread 40.7 ms 41.1 ms Essentially unchanged

The long response remains 12.46 MB. Its measured p90 preparation time fell from 544 to 400 ms.

Live database and component measurements

Seven alternating fresh processes per query version on the real database, opened read-only, measured median snapshot reads of 2,123 to 927 ms and response preparation of 2,428 to 1,601 ms, a 34% response-time reduction. This comparison preceded the final timeline row-ID change and used the new budget calculation on both sides. OS caches were not cleared, live data could change between processes, and timings varied widely. Response equivalence was checked separately within pinned read transactions.

Independent component comparisons measured payload-budget calculation at 99.5 to 25.3 ms across 15 alternating pairs on frozen data, and total timeline SQL at 49.5 to 41.3 ms across nine alternating fresh connections with warm OS caches. These percentages describe different measurements and should not be added.

The production client still reproduced a 2.09-second click-to-sync-completion wait with optimized code against an isolated copy of the long thread. Optimized fresh server responses in the earlier live test ranged from 0.78 to 4.13 seconds. This does not establish a matching UI speedup or eliminate every slow first read.

Correctness checks

  • 112 focused tests passed across ProjectionStore, boundedSnapshotTransport, ThreadStream, threadHistoryPaging, WireProjection, and orchestrationV2Timeline.
  • Query-plan checks confirm indexed user-message boundary selection, direct row-ID timeline payload reads, direct node primary-key reads, and no final payload sort.
  • Coverage includes complete user turns, equal-ordinal ID ordering with reversed insertion order, null/equal node timestamps, duplicate node references, rollback and interrupt visibility, nested forks, cursor paging, and oversized actionable state.
  • 30 full/window/history-anchor snapshot comparisons were byte-identical. The budget shortcut also produced 68 byte-identical bounded responses across paging configurations and payload caps.
  • Server typecheck, targeted lint and formatting, and git diff checks passed.

Focused test command:

vp test run apps/server/src/orchestration-v2/ProjectionStore.test.ts apps/server/src/orchestration-v2/boundedSnapshotTransport.test.ts apps/server/src/orchestration-v2/ThreadStream.test.ts apps/server/src/orchestration-v2/threadHistoryPaging.test.ts apps/server/src/orchestration-v2/WireProjection.test.ts packages/shared/src/orchestrationV2Timeline.test.ts

Implemented with GPT-6.1-sol through the Codex harness in T3 Code.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Oct 9, 2026
@juliusmarminge juliusmarminge added the macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews label Oct 9, 2026
@Yash-Singh1
Yash-Singh1 marked this pull request as ready for review October 9, 2026 03:16
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.9 KiB 0 B (0.0%) 29.3 KiB ✅
Codex Live turn messages 2 2 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB 0 B (0.0%) 29.3 KiB ✅
Claude Live turn messages 2 2 0 (0.0%) 8 ✅

Baseline: b707eeb · PR result: bc7cead · 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: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

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

@coderabbitai

coderabbitai Bot commented Oct 9, 2026

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Team
  • Run ID: fd791855-94df-42b9-9b43-ef5cdb9c2920
📥 Commits

Reviewing files that changed from the base of the PR and between b707eeb and bc7cead.

📒 Files selected for processing (5)
  • apps/server/src/orchestration-v2/ProjectionStore.test.ts
  • apps/server/src/orchestration-v2/ProjectionStore.ts
  • apps/server/src/orchestration-v2/WireProjection.test.ts
  • apps/server/src/orchestration-v2/threadHistoryPaging.test.ts
  • apps/server/src/orchestration-v2/threadHistoryPaging.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

Projection reads now apply shared turn-item visibility and use revised bounded SQL queries for timeline items and nodes. Thread history paging also marks the payload budget as exceeded when the control projection alone exceeds the configured byte limit.

Changes

Projection reads and bounded paging

Layer / File(s) Summary
Projection visibility and fork inputs
apps/server/src/orchestration-v2/ProjectionStore.ts, apps/server/src/orchestration-v2/WireProjection.test.ts
Local turn items use the shared visibility predicate. Canonical reads no longer append local visible items, and windowed fork reads request only runs, attempts, and turn items from ancestors.
Bounded window selection and node reads
apps/server/src/orchestration-v2/ProjectionStore.ts, apps/server/src/orchestration-v2/ProjectionStore.test.ts
Window queries carry turn-item rowids into payload retrieval. Node reads fetch payloads by primary key in retained-node order. Tests cover ordering, payloads, and SQL plans.
Thread history payload budget
apps/server/src/orchestration-v2/threadHistoryPaging.ts, apps/server/src/orchestration-v2/threadHistoryPaging.test.ts
The exceeded-budget flag now includes the control projection size. The test checks that bounded paging retains visible timeline items.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Refactor

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to bc7ce

No actionable issue is established that would prevent merging after normal checks.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: improving server performance for long thread message synchronization.
Description check Passed The description includes the required Problem, Change, Scope and approval, and Verification sections. It explains the bottleneck, implementation, scope, benchmark results, correctness checks, limitati…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@macroscopeapp

macroscopeapp Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at bc7cead

Macroscope's review found this PR approvable — This is a contained server-side performance fix that optimizes indexed history and node reads while preserving projection contents, ordering, and wire output. The accompanying tests cover the affected paging, fork, visibility, query-plan, and budget paths without changing product defaults or introducing new capabilities.

You can add or adjust custom eligibility rules. Learn more.

@Yash-Singh1
Yash-Singh1 merged commit 42c6623 into main Oct 9, 2026
39 checks passed
@Yash-Singh1
Yash-Singh1 deleted the t3/speed-up-thread-message-sync branch October 9, 2026 03:23
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 9, 2026
## What's Changed
* refactor(provider-core): share attachment prompts, notifications, and event loggers by @juliusmarminge in pingdotgg/t3code#17330
* fix(web): file previews handle downloads, in-page links, and repo paths, and favicons stop leaking internal hosts by @juliusmarminge in pingdotgg/t3code#16950
* fix(server): environment-hosted browser tabs behave like a normal browser by @juliusmarminge in pingdotgg/t3code#16963
* fix(desktop): browser tab fixes for fullscreen, shortcuts, links, reload and hidden tabs by @juliusmarminge in pingdotgg/t3code#16961
* fix(web): desktop opens remote environments' browser tabs locally by @juliusmarminge in pingdotgg/t3code#17316
* fix(desktop): the t3 command warns instead of installing behind another t3 by @juliusmarminge in pingdotgg/t3code#17351
* fix(web): images, video, HTML and PDF preview in a thread before its first message by @juliusmarminge in pingdotgg/t3code#17352
* refactor(provider-muse): move Muse Code into its own provider package by @juliusmarminge in pingdotgg/t3code#17331
* fix(web): semantic branch naming hint lines up with its setting by @limineol in pingdotgg/t3code#16972
* fix(mobile): restore chat image previews in the v5 stack by @juliusmarminge in pingdotgg/t3code#17361
* feat(mobile): fade working threads and match web's status labels by @juliusmarminge in pingdotgg/t3code#17368
* fix(server): agent browser tools stop bloating history, fall back sensibly, and respect ownership by @juliusmarminge in pingdotgg/t3code#16956
* fix(web): add room for thread timeline markers by @Yash-Singh1 in pingdotgg/t3code#17372
* fix(web): drop sidebar context before cancelling pointer drag by @Yash-Singh1 in pingdotgg/t3code#17373
* refactor(providers): namespace-import service modules in core, Muse, Pi, and testing by @juliusmarminge in pingdotgg/t3code#17375
* fix(auth): show connection permissions and enforce session lifetime by @juliusmarminge in pingdotgg/t3code#17370
* refactor(provider-opencode): move OpenCode into its own provider package by @juliusmarminge in pingdotgg/t3code#17345
* refactor(provider-cursor): move Cursor into its own provider package by @juliusmarminge in pingdotgg/t3code#17349
* refactor(provider-acp): move the shared ACP adapter into its own package by @juliusmarminge in pingdotgg/t3code#17354
* refactor(provider-grok): move Grok into its own provider package by @juliusmarminge in pingdotgg/t3code#17357
* fix(server): speed up long thread message sync by @Yash-Singh1 in pingdotgg/t3code#17387
* fix(desktop): cancel backend pipe reads to avoid slow shutdown by @Yash-Singh1 in pingdotgg/t3code#17386
* refactor(providers): adapter factories yield their services by @juliusmarminge in pingdotgg/t3code#17381
* fix(web): show a row spinner instead of a banner when expanding a folder by @juliusmarminge in pingdotgg/t3code#17378
* fix(server): a timed-out browser drag no longer exits the server by @ScottN-PV in pingdotgg/t3code#17360
* fix(server): a logged-out Claude CLI no longer reports as authenticated by @yordis in pingdotgg/t3code#15459
* fix(server): Pi loads every selected skill without losing prompt text by @StiensWout in pingdotgg/t3code#17194

## New Contributors
* @limineol made their first contribution in pingdotgg/t3code#16972

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261008.2849...v0.0.46-nightly.20261009.2861

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261009.2861
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 9, 2026
## What's Changed
* refactor(provider-core): share attachment prompts, notifications, and event loggers by @juliusmarminge in pingdotgg/t3code#17330
* fix(web): file previews handle downloads, in-page links, and repo paths, and favicons stop leaking internal hosts by @juliusmarminge in pingdotgg/t3code#16950
* fix(server): environment-hosted browser tabs behave like a normal browser by @juliusmarminge in pingdotgg/t3code#16963
* fix(desktop): browser tab fixes for fullscreen, shortcuts, links, reload and hidden tabs by @juliusmarminge in pingdotgg/t3code#16961
* fix(web): desktop opens remote environments' browser tabs locally by @juliusmarminge in pingdotgg/t3code#17316
* fix(desktop): the t3 command warns instead of installing behind another t3 by @juliusmarminge in pingdotgg/t3code#17351
* fix(web): images, video, HTML and PDF preview in a thread before its first message by @juliusmarminge in pingdotgg/t3code#17352
* refactor(provider-muse): move Muse Code into its own provider package by @juliusmarminge in pingdotgg/t3code#17331
* fix(web): semantic branch naming hint lines up with its setting by @limineol in pingdotgg/t3code#16972
* fix(mobile): restore chat image previews in the v5 stack by @juliusmarminge in pingdotgg/t3code#17361
* feat(mobile): fade working threads and match web's status labels by @juliusmarminge in pingdotgg/t3code#17368
* fix(server): agent browser tools stop bloating history, fall back sensibly, and respect ownership by @juliusmarminge in pingdotgg/t3code#16956
* fix(web): add room for thread timeline markers by @Yash-Singh1 in pingdotgg/t3code#17372
* fix(web): drop sidebar context before cancelling pointer drag by @Yash-Singh1 in pingdotgg/t3code#17373
* refactor(providers): namespace-import service modules in core, Muse, Pi, and testing by @juliusmarminge in pingdotgg/t3code#17375
* fix(auth): show connection permissions and enforce session lifetime by @juliusmarminge in pingdotgg/t3code#17370
* refactor(provider-opencode): move OpenCode into its own provider package by @juliusmarminge in pingdotgg/t3code#17345
* refactor(provider-cursor): move Cursor into its own provider package by @juliusmarminge in pingdotgg/t3code#17349
* refactor(provider-acp): move the shared ACP adapter into its own package by @juliusmarminge in pingdotgg/t3code#17354
* refactor(provider-grok): move Grok into its own provider package by @juliusmarminge in pingdotgg/t3code#17357
* fix(server): speed up long thread message sync by @Yash-Singh1 in pingdotgg/t3code#17387
* fix(desktop): cancel backend pipe reads to avoid slow shutdown by @Yash-Singh1 in pingdotgg/t3code#17386
* refactor(providers): adapter factories yield their services by @juliusmarminge in pingdotgg/t3code#17381
* fix(web): show a row spinner instead of a banner when expanding a folder by @juliusmarminge in pingdotgg/t3code#17378
* fix(server): a timed-out browser drag no longer exits the server by @ScottN-PV in pingdotgg/t3code#17360
* fix(server): a logged-out Claude CLI no longer reports as authenticated by @yordis in pingdotgg/t3code#15459
* fix(server): Pi loads every selected skill without losing prompt text by @StiensWout in pingdotgg/t3code#17194

## New Contributors
* @limineol made their first contribution in pingdotgg/t3code#16972

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261008.2849...v0.0.46-nightly.20261009.2861

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261009.2861
adampeterhiggins added a commit to adampeterhiggins/t3code that referenced this pull request Oct 9, 2026
* fix(web): link pull requests to threads in folders that aren't Git repos (pingdotgg#15946)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(web): find messages and plans in the current thread (pingdotgg#10439)

Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(web): improve terminal scrollback navigation and snapshots (pingdotgg#17091)

* docs(internals): add a checklist for adding a provider (pingdotgg#17229)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(mobile): keep native screens ordered during stack pops (pingdotgg#17231)

* fix(server): pairing tokens work on Node versions that cannot bind booleans (pingdotgg#16730)

* fix(mobile): HTML pages in a thread no longer trap scrolling on Android (pingdotgg#17211)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): centered scrollers no longer shift when the scrollbar appears (pingdotgg#17077)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

* fix(web): distinguish thread search matches from code tints (pingdotgg#17263)

* fix(server): Pi extension wakes get an owned continuation turn (pingdotgg#17214)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): Pi discovers optional T3 tools on demand (pingdotgg#17220)

* fix(web): stack merge dialog closes as soon as you confirm (pingdotgg#17116)

* fix(server): Pi editor dialogs prefill the answer composer (pingdotgg#17206)

* fix(desktop): generate valid User-Agent that follows RFC 9110 guidelines (pingdotgg#17264)

* fix(server): Pi discovers workspace skills and commands (pingdotgg#17190)

* fix(mobile): preserve navigation after native swipe back (pingdotgg#17268)

* fix(server): keep newly discovered models out of legacy groups (pingdotgg#14314)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(editors): open remote projects in JetBrains IDEs over SSH (pingdotgg#17271)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* test(desktop): expect JetBrains IDEs among remote editors (pingdotgg#17291)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): recognize authenticated GitHub Enterprise hosts (pingdotgg#11059)

Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>

* fix(connect): relay client updates itself and skips incompatible cloudflared (pingdotgg#17275)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(shared): relay client install waits out a brief Windows file lock (pingdotgg#16998)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(shared): release relay install locks on cancellation (pingdotgg#10585)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore(shared): bump managed cloudflared to 2026.10.0 (pingdotgg#11184)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(shared): bound cloudflared download with 10-minute timeout (pingdotgg#14139)

Co-authored-by: Kevin Rajan <kevin@kvnloo.dev>

* refactor(provider-core): add provider-core and provider-testing packages (pingdotgg#17299)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(settings): drop the legacy per-driver providers map (pingdotgg#17300)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(provider-pi): move Pi into its own provider package (pingdotgg#17302)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(models): tell users when a CLI update unlocks a new model (pingdotgg#17307)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): collapsed composer reserves room for wide send actions (pingdotgg#17016)

* fix(muse): workflow subagents no longer stall on hidden approvals (pingdotgg#17329)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(provider-core): share attachment prompts, notifications, and event loggers (pingdotgg#17330)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): file previews handle downloads, in-page links, and repo paths, and favicons stop leaking internal hosts (pingdotgg#16950)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): environment-hosted browser tabs behave like a normal browser (pingdotgg#16963)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(desktop): browser tab fixes for fullscreen, shortcuts, links, reload and hidden tabs (pingdotgg#16961)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): desktop opens remote environments' browser tabs locally (pingdotgg#17316)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): the t3 command warns instead of installing behind another t3 (pingdotgg#17351)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): images, video, HTML and PDF preview in a thread before its first message (pingdotgg#17352)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(provider-muse): move Muse Code into its own provider package (pingdotgg#17331)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): semantic branch naming hint lines up with its setting (pingdotgg#16972)

* fix(mobile): restore chat image previews in the v5 stack (pingdotgg#17361)

* feat(mobile): fade working threads and match web's status labels (pingdotgg#17368)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): agent browser tools stop bloating history, fall back sensibly, and respect ownership (pingdotgg#16956)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): add room for thread timeline markers (pingdotgg#17372)

* fix(web): drop sidebar context before cancelling pointer drag (pingdotgg#17373)

* refactor(providers): namespace-import service modules in core, Muse, Pi, and testing (pingdotgg#17375)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(auth): show connection permissions and enforce session lifetime (pingdotgg#17370)

Co-authored-by: Bear Huddleston <bear@bearhuddleston.dev>

* refactor(provider-opencode): move OpenCode into its own provider package (pingdotgg#17345)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(provider-cursor): move Cursor into its own provider package (pingdotgg#17349)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(provider-acp): move the shared ACP adapter into its own package (pingdotgg#17354)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(provider-grok): move Grok into its own provider package (pingdotgg#17357)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): speed up long thread message sync (pingdotgg#17387)

* fix(desktop): cancel backend pipe reads to avoid slow shutdown (pingdotgg#17386)

* refactor(providers): adapter factories yield their services (pingdotgg#17381)

* fix(web): show a row spinner instead of a banner when expanding a folder (pingdotgg#17378)

* fix(server): a timed-out browser drag no longer exits the server (pingdotgg#17360)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): a logged-out Claude CLI no longer reports as authenticated (pingdotgg#15459)

* fix(server): Pi loads every selected skill without losing prompt text (pingdotgg#17194)

* fix(server): keep the Claude MCP token out of process arguments (pingdotgg#17408)

* fix(server): reconcile Pi native session rewinds (pingdotgg#13839)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* test(provider-pi): cover continuation offers through the driver (pingdotgg#17407)

* refactor(provider-acp-registry): move the ACP Registry into its own package (pingdotgg#17405)

* fix(server): relay client updates no longer drop the host off T3 Connect (pingdotgg#17366)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: chise <lqff.yt@gmail.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: maria <maria@kuuro.net>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
Co-authored-by: jztmanyl <jztmanyl@gmail.com>
Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: Grzegorz Mandziak <4248465+alimek@users.noreply.github.com>
Co-authored-by: Scott Norteman <snorteman@gmail.com>
Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com>
Co-authored-by: Aaron Queen <bompus@users.noreply.github.com>
Co-authored-by: Kevin Rajan <7121943+kvnloo@users.noreply.github.com>
Co-authored-by: Kevin Rajan <kevin@kvnloo.dev>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Daniel Alvim <danielalvim@tuta.io>
Co-authored-by: Bear Huddleston <bear@bearhuddleston.dev>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews size:M 30-99 changed lines (additions + deletions). 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.

2 participants