Repository navigation
chore(rtvision): sync upstream and prepare 0.0.76 - #85
Open
kalvenschraut wants to merge 82 commits into
Open
kalvenschraut wants to merge 82 commits into
kalvenschraut wants to merge 82 commits into
Conversation
Co-authored-by: Guillaume <78903686+grodriguez-fr@users.noreply.github.com> Co-authored-by: Cristian Uibar <cristi@buffup.media> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ingdotgg#17127) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#17137) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… databases (pingdotgg#17139) Takeover of pingdotgg#13902. Co-authored-by: Derek Trimm <275381468+derektrimm@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…le decoding (pingdotgg#17141) Continues pingdotgg#17044 by @SunkenInTime. Co-authored-by: Dara Adedeji <daraadedeji07@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dotgg#16970) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…7140) Keep up to six Cursor usage pages requested ahead of the one being read, still read in page order, and cancel requests left in flight when the read ends. Continues pingdotgg#14384. Co-authored-by: Krishna Vijay <228381532+im-kvijay@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rge (pingdotgg#17148) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…only what is still loading (pingdotgg#17147) Takeover of pingdotgg#16376. Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#17145) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#17152) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pos (pingdotgg#15946) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…0439) 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>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…id (pingdotgg#17211) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rs (pingdotgg#17077) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…otgg#17214) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#14314) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…otgg#17271) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#17370) Co-authored-by: Bear Huddleston <bear@bearhuddleston.dev>
…age (pingdotgg#17345) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#17349) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…age (pingdotgg#17354) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#17357) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#17360) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge upstream 43f8a8d, retain required RTVision behavior, and repair verified provider, preview, authorization and packaging integration defects.
Member
Author
|
@coderabbitai review |
|
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 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.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RTVision upstream sync for 0.0.76
The sync brings 74 upstream commits into
rtvisionand layers the remaining fork behavior over upstream's provider extraction, browser changes and client improvements.Pinned fork
dfe5bded8ce8e997b869a046e3ad398045631436; previous upstream ancestor30cc788975500a8c00d32a50f348174d1ce578d1; incoming upstream main43f8a8de17a7ac1baa7a3cf36d681856de2d8add. There are 1,088 upstream changed paths and 76 literal fork overlaps. The merge preserves upstream ancestry. Existing 0.0.75 is published; the proposed next release is 0.0.76.New upstream features and fixes
Upstream replacements and retained RTVision behavior
Upstream's integer pairing binding replaces the identical fork fix. Provider and shared-module moves are authoritative; all fork consumers migrate instead of restoring deleted modules. Upstream's bounded screenshot retries replace the fork's old capture timeout. Upstream's per-thread compaction-chip state replaces the old single ref. Browser/terminal improvements coexist with retained Vim navigation, terminal Neovim/editor choice, annotation drafts and reload restoration.
Gitea/Forgejo provisioning, private signed images, CI/viewed/dependency/reaction support and destination grants remain. The fork keeps exhaustive historical PR lookup and safe checkout host/port/base matching. Codex clean-exit recovery and idle-timer identity guards remain. Registry/update routing, Node/npm/OpenRC service entry points, Alpine native Chromium and node-pty compatibility, SSH/WSL account routing and release packaging remain fork-specific.
Verified integration repairs omit private bundled workspaces from npm publication metadata, migrate PTY/editor imports, remove the stale compaction ref, retain GitHub API ports, require destination preview permission for profile reports and prevent same-name desktop downloads overwriting each other. A focused existing process-containment test also verified a missing-target exit-code defect; explicit command lookup preserves the wrapper's failure status on non-interactive shells.
Every literal fork-overlap decision
apps/desktop/package.jsonapps/desktop/src/app/DesktopCliCommand.test.tsapps/desktop/src/app/DesktopCliCommand.tsapps/desktop/src/ipc/channels.tsapps/desktop/src/preload.tsapps/desktop/src/preview/Manager.test.tsapps/desktop/src/preview/Manager.tsapps/desktop/src/preview/PickPreload.tsapps/desktop/src/window/DesktopWindow.test.tsapps/server/package.jsonapps/server/scripts/evaluate-thread-titles.tsapps/server/src/assets/AssetAccess.tssource-control-imageclaims, configured-Gitea URL validation and image resolution; accept upstream helper imports.apps/server/src/auth/RpcAuthorization.test.tsapps/server/src/auth/RpcAuthorization.tsapps/server/src/git/GitManager.test.tsapps/server/src/git/GitManager.tsexhaustiveoption/cache-key/filtering with upstreamnoteLookupState(latest)and state-change stream. Neither replaces the other.apps/server/src/http.tsallow-downloads; retain sandbox isolation and image response headers.apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.tsapps/server/src/observability/RpcInstrumentation.tsapps/server/src/orchestration-v2/Adapters/CodexAdapterV2.tsawaitTermination, failure-capable queue and queue stream. Use provider-core imports for moved services/errors.apps/server/src/orchestration-v2/ProviderSessionManager.test.tsapps/server/src/orchestration-v2/ProviderSessionManager.tsapps/server/src/persistence/AuthPairingLinks.ts4daec109cdmakes the exact same boolean-to-0/1 SQL binding change. Keep one implementation. Fork regression tests can remain.apps/server/src/provider/CodexProvider.tsapps/server/src/provider/ProviderRegistry.test.tsapps/server/src/provider/ProviderRegistry.tsapps/server/src/provider/acp/AcpSessionRuntime.processTree.test.tsapps/server/src/pullRequest/PullRequestService.test.tsapps/server/src/server.tsacquireServerRuntimeState. Add upstream ProviderHost/provider package and Cursor usage reader provisioning.apps/server/src/serverRuntimeState.ts@t3tools/shared/atomicWrite; remove the old helper import.apps/server/src/sourceControl/ForgejoCli.tsapps/server/src/sourceControl/GitHubSourceControlProvider.test.tsSourceControlProviderError; retain upstream Enterprise discovery/context tests and their dependencies.apps/server/src/sourceControl/GitHubSourceControlProvider.tsapps/server/src/sourceControl/SourceControlProviderRegistry.test.tsapps/server/src/textGeneration/ClaudeTextGeneration.test.tsapps/server/src/textGeneration/CodexTextGeneration.test.tsapps/server/src/textGeneration/GrokTextGeneration.test.tsapps/server/src/textGeneration/OpenCode2TextGeneration.test.tslayerTestProviderHost()plus Node services. Accept that equivalent; do not preserve the obsolete ServerConfig block.apps/server/src/textGeneration/OpenCodeTextGeneration.test.tspackages/provider-opencode/src/server/textGeneration.test.ts. Use upstream host/net/Node layers; remove old source path rather than retaining a duplicate.apps/server/src/usage/cliproxyApi.tsusage.plan_type, tokenplan_type, thenchatgpt_plan_type. Accept moved usage helper imports.apps/server/src/ws.tsapps/web/package.jsonapps/web/src/components/AppSidebarLayout.tsxapps/web/src/components/ChatMarkdown.test.tsxapps/web/src/components/ChatMarkdown.tsxapps/web/src/components/ChatView.tsxapps/web/src/components/CommandPalette.tsxapps/web/src/components/GitActionsControl.tsxapps/web/src/components/Icons.tsxapps/web/src/components/ThreadTerminalDrawer.tsxapps/web/src/components/chat/MessagesTimeline.tsxapps/web/src/components/files/FilePreviewPanel.tsxapps/web/src/components/onboarding/WelcomeWizard.tsxapps/web/src/components/preview/PreviewView.tsxapps/web/src/components/pullRequest/PullRequestsUnavailableState.tsxapps/web/src/components/settings/CliCommandSettingsRow.tsxapps/web/src/components/settings/ConnectionsSettings.tsxapps/web/src/components/settings/ProviderInstanceCard.tsxapps/web/src/components/settings/ProviderSettingsPanel.environment.test.tsxapps/web/src/components/settings/ProviderSettingsPanel.tsxapps/web/src/composer-rich-text-doc.test.tsapps/web/src/composer-rich-text-doc.tsdocs/user/install.mddocs/user/keybindings.mddocs/user/remote-access.mddocs/user/source-control.mddocs/user/terminal.mdknip.jsoncpackages/client-runtime/package.jsonpackages/contracts/src/ipc.tsisNewTargetand WSL routing. Add upstream preview open-link event and optional CLIshadowedBy.packages/contracts/src/rpc.tspackages/contracts/src/server.tsaccountIdand optional low-disk schema/events. Add upstream update-required-model metadata and capabilities.packages/contracts/src/settings.tsprovidersmap.packages/shared/package.jsonpnpm-lock.yamlscripts/release-smoke.tsComplete incoming commit inventory
d6f47ff9725f0902b526f854519cb7e92dcee52ffeat(providers): run Muse Code as a native provider (feat(providers): run Muse Code as a native provider pingdotgg/t3code#17082)0647c481017f25ddff2ec1dff68ef3944489b6dbfeat(web): compact-before-send is a chip that shows the token count (feat(web): compact-before-send is a chip that shows the token count pingdotgg/t3code#17127)2ea7684d563fe0ebbe9144dbfd6b0eade7eaf49afix(clients): copy button is back in its old spot, before fork (fix(clients): copy button is back in its old spot, before fork pingdotgg/t3code#17137)4d1f24ba4123279708e169fcb196f78da8f11351fix(usage): repeat usage scans no longer decode unchanged Antigravity databases (fix(usage): repeat usage scans no longer decode unchanged Antigravity databases pingdotgg/t3code#17139)1f31906c8e3003b2a9d7118c4da163544fa86586fix(server): shell snapshots no longer block other database reads while decoding (fix(server): shell snapshots no longer block other database reads while decoding pingdotgg/t3code#17141)10e29a26c289140b8f2312045c1ce0c278c7fe1aperf(server): ACP tool updates no longer persist a snapshot per streamed chunk (perf(server): ACP tool updates no longer persist a snapshot per streamed chunk pingdotgg/t3code#16682)13c5328dd02ab0f5863f7d46455efc8dc243d4cefeat(web): filter the Usage page to just the providers you want (feat(web): filter the Usage page to just the providers you want pingdotgg/t3code#16970)9381533771ef50d58304f79fac2b74ebd8932be7fix(usage): Cursor account history loads about 4x faster (fix(usage): Cursor account history loads about 4x faster pingdotgg/t3code#17140)0ce6b9deb0c3f6b4dd9df7ed809f7acb9d237ae0fix(server): threads settle as soon as branch status sees their PR merge (fix(server): threads settle as soon as branch status sees their PR merge pingdotgg/t3code#17148)85975585579188be20f46d96b4972ce46c33f4bcperf(usage): the Usage page shows numbers in under a second and dims only what is still loading (perf(usage): the Usage page shows numbers in under a second and dims only what is still loading pingdotgg/t3code#17147)37eaf5d293ef83ce86d2ce9a1583792696c82bbcfix(server): an agent can settle its own thread when its turn ends (fix(server): an agent can settle its own thread when its turn ends pingdotgg/t3code#17145)5e2225671f705fcd33f1ea5591b79ba612fb6974feat(web): Add provider button sits with the provider list (feat(web): Add provider button sits with the provider list pingdotgg/t3code#17152)a4c9494b0e3606775cc5fc929fc138399288bd43fix(web): link pull requests to threads in folders that aren't Git repos (fix(web): link pull requests to threads in folders that aren't Git repos pingdotgg/t3code#15946)12069eefd707f78eafc27812027c994eea0613cffeat(web): find messages and plans in the current thread (feat(web): find messages and plans in the current thread pingdotgg/t3code#10439)9a3070bcf023c3c025633659addeef4cf628133afeat(web): improve terminal scrollback navigation and snapshots (feat(web): improve terminal scrollback navigation and snapshots pingdotgg/t3code#17091)a65b43892f14bd6c1280296a37a11bd5234be00ddocs(internals): add a checklist for adding a provider (docs(internals): add a checklist for adding a provider pingdotgg/t3code#17229)a6ec88f7a716fc421bd22c2484881c44110f9375fix(mobile): keep native screens ordered during stack pops (fix(mobile): keep native screens ordered during stack pops pingdotgg/t3code#17231)4daec109cdf8e3e92b392017d7564e735e54f6fdfix(server): pairing tokens work on Node versions that cannot bind booleans (fix(server): pairing tokens work on Node versions that cannot bind booleans pingdotgg/t3code#16730)61b9790816a8af359ab7e8ba0b52a3481353b18dfix(mobile): HTML pages in a thread no longer trap scrolling on Android (fix(mobile): HTML pages in a thread no longer trap scrolling on Android pingdotgg/t3code#17211)07a8b9ece40bc20a5f84ce78d12f621518065863fix(web): centered scrollers no longer shift when the scrollbar appears (fix(web): centered scrollers no longer shift when the scrollbar appears pingdotgg/t3code#17077)62a5d3720f82f2dc3ace48fcb26c90c6e3976b50fix(web): distinguish thread search matches from code tints (fix(web): distinguish thread search matches from code tints pingdotgg/t3code#17263)f999eb2a8e7d8db74d4f4ab7dd66f86163e1a226fix(server): Pi extension wakes get an owned continuation turn (fix(server): Pi extension wakes get an owned continuation turn pingdotgg/t3code#17214)de72286ee5777319fde054e7a82023916ce6f481fix(server): Pi discovers optional T3 tools on demand (fix(server): Pi discovers optional T3 tools on demand pingdotgg/t3code#17220)eb1cf7bd0efba7364d53907036f5b7eefb379c39fix(web): stack merge dialog closes as soon as you confirm (fix(web): stack merge dialog closes as soon as you confirm pingdotgg/t3code#17116)e8f5850b824572bab76bf810696f875eb648eff9fix(server): Pi editor dialogs prefill the answer composer (fix(server): Pi editor dialogs prefill the answer composer pingdotgg/t3code#17206)a0066d5cb7d18abd786c1c23bf835f898490fd37fix(desktop): generate valid User-Agent that follows RFC 9110 guidelines (fix(desktop): generate valid User-Agent that follows RFC 9110 guidelines pingdotgg/t3code#17264)0b6ec43c54165a87941b7a070849be8979646040fix(server): Pi discovers workspace skills and commands (fix(server): Pi discovers workspace skills and commands pingdotgg/t3code#17190)805967a878e6804d58c151f29d2a3d0a06828fd1fix(mobile): preserve navigation after native swipe back (fix(mobile): preserve navigation after native swipe back pingdotgg/t3code#17268)fd25c42ae6e56a82be7219950a746572b1c4d0e9fix(server): keep newly discovered models out of legacy groups (fix(server): keep newly discovered models out of legacy groups pingdotgg/t3code#14314)df616cc5491dcc7dd80d3ade8decd88f7a652220feat(editors): open remote projects in JetBrains IDEs over SSH (feat(editors): open remote projects in JetBrains IDEs over SSH pingdotgg/t3code#17271)740f591221bd9651f172237d68b7daba9d050dbdtest(desktop): expect JetBrains IDEs among remote editors (test(desktop): expect JetBrains IDEs among remote editors pingdotgg/t3code#17291)cdd331b6c3f78bf24b039b09937b837d2d71a4e7fix(server): recognize authenticated GitHub Enterprise hosts (fix(server): recognize authenticated GitHub Enterprise hosts pingdotgg/t3code#11059)2a93885bac5798a79d55069a0b5dc3e53c6176bcfix(connect): relay client updates itself and skips incompatible cloudflared (fix(connect): relay client updates itself and skips incompatible cloudflared pingdotgg/t3code#17275)bd565bd1794f49f176ad137555faa46224716138fix(shared): relay client install waits out a brief Windows file lock (fix(shared): relay client install waits out a brief Windows file lock pingdotgg/t3code#16998)c377d1ca17dbce42008fbb05fccd95468b13d329fix(shared): release relay install locks on cancellation (fix(shared): release relay install locks on cancellation pingdotgg/t3code#10585)af3d842a001d030ed528396bf59cf02bbf373cd0chore(shared): bump managed cloudflared to 2026.10.0 (chore(shared): bump managed cloudflared to 2026.10.0 pingdotgg/t3code#11184)580948708b66f2a971199670f76cb6b43119e9a4fix(shared): bound cloudflared download with 10-minute timeout (fix(shared): bound cloudflared download with 10-minute timeout pingdotgg/t3code#14139)9eea28bacd27b2ee6d5183e195c397bba8b515a0refactor(provider-core): add provider-core and provider-testing packages (refactor(provider-core): add provider-core and provider-testing packages pingdotgg/t3code#17299)2c1160783ea4b4dcc1c1f1ab04639ffc0aaa289drefactor(settings): drop the legacy per-driver providers map (refactor(settings): drop the legacy per-driver providers map pingdotgg/t3code#17300)9b0df1358f9f9c3277bcb33777c2435b88ee75c4refactor(provider-pi): move Pi into its own provider package (refactor(provider-pi): move Pi into its own provider package pingdotgg/t3code#17302)7b57b723d3b7490b50fffbd99fe89c6aa98fae1ffeat(models): tell users when a CLI update unlocks a new model (feat(models): tell users when a CLI update unlocks a new model pingdotgg/t3code#17307)48b71f0eb323d08c8fcadfe54adf34becb2984dafix(web): collapsed composer reserves room for wide send actions (fix(web): collapsed composer reserves room for wide send actions pingdotgg/t3code#17016)d81afa0a6f403bd6e5562ffcee2484089a1fdc3ffix(muse): workflow subagents no longer stall on hidden approvals (fix(muse): workflow subagents no longer stall on hidden approvals pingdotgg/t3code#17329)e38b6a188fafd499df347331f8c8279ff320c207refactor(provider-core): share attachment prompts, notifications, and event loggers (refactor(provider-core): share attachment prompts, notifications, and event loggers pingdotgg/t3code#17330)741377ce5fb1578916659cbb93fd403b26dbeb62fix(web): file previews handle downloads, in-page links, and repo paths, and favicons stop leaking internal hosts (fix(web): file previews handle downloads, in-page links, and repo paths, and favicons stop leaking internal hosts pingdotgg/t3code#16950)5754121c23f73201d47a96feb97eca7b96334a2afix(server): environment-hosted browser tabs behave like a normal browser (fix(server): environment-hosted browser tabs behave like a normal browser pingdotgg/t3code#16963)d9f7c0caed5cc0fe84cec97f2b6f002084542a4efix(desktop): browser tab fixes for fullscreen, shortcuts, links, reload and hidden tabs (fix(desktop): browser tab fixes for fullscreen, shortcuts, links, reload and hidden tabs pingdotgg/t3code#16961)66298aa926e6a4c95ebecbc576a68634315899c0fix(web): desktop opens remote environments' browser tabs locally (fix(web): desktop opens remote environments' browser tabs locally pingdotgg/t3code#17316)3bfbc37dbf37095816eda500f3f1e05cb98bb95bfix(desktop): the t3 command warns instead of installing behind another t3 (fix(desktop): the t3 command warns instead of installing behind another t3 pingdotgg/t3code#17351)e0c80c198cfbb2afe04528cd6a7ec1d2f21606ddfix(web): images, video, HTML and PDF preview in a thread before its first message (fix(web): images, video, HTML and PDF preview in a thread before its first message pingdotgg/t3code#17352)5b78b34bba8645a268900f946858ea1470621c41refactor(provider-muse): move Muse Code into its own provider package (refactor(provider-muse): move Muse Code into its own provider package pingdotgg/t3code#17331)6308db4ff500b89821e22605f964b1701cead8eefix(web): semantic branch naming hint lines up with its setting (fix(web): semantic branch naming hint lines up with its setting pingdotgg/t3code#16972)393ff4c968073d8419e5bade06000998602af6adfix(mobile): restore chat image previews in the v5 stack (fix(mobile): restore chat image previews in the v5 stack pingdotgg/t3code#17361)c724c7cb02aaeb0a23ff6e5e224d17c0fdb9a36bfeat(mobile): fade working threads and match web's status labels (feat(mobile): fade working threads and match web's status labels pingdotgg/t3code#17368)dbd83435347d13d5f456271f4f1f5efe294a111dfix(server): agent browser tools stop bloating history, fall back sensibly, and respect ownership (fix(server): agent browser tools stop bloating history, fall back sensibly, and respect ownership pingdotgg/t3code#16956)29980a31409234b676f97bd477c4e46fdb61a929fix(web): add room for thread timeline markers (fix(web): add room for thread timeline markers pingdotgg/t3code#17372)b0ee7dd48f868c5c02884345f723bebaf616b13dfix(web): drop sidebar context before cancelling pointer drag (fix(web): drop sidebar context before cancelling pointer drag pingdotgg/t3code#17373)2c7a446e657e705c257db28540819f4c0115b2fcrefactor(providers): namespace-import service modules in core, Muse, Pi, and testing (refactor(providers): namespace-import service modules in core, Muse, Pi, and testing pingdotgg/t3code#17375)456930a09db29efdd3d4a397fe214e9ede2d6975fix(auth): show connection permissions and enforce session lifetime (fix(auth): show connection permissions and enforce session lifetime pingdotgg/t3code#17370)e62161bc5b53389a462d066836d47d25df0f4134refactor(provider-opencode): move OpenCode into its own provider package (refactor(provider-opencode): move OpenCode into its own provider package pingdotgg/t3code#17345)b5e4f1e0b0c2c06f183ab6a89072bec21c8334c4refactor(provider-cursor): move Cursor into its own provider package (refactor(provider-cursor): move Cursor into its own provider package pingdotgg/t3code#17349)664bd5e524bb58b23ecab0f2e413fc2ecb4caf55refactor(provider-acp): move the shared ACP adapter into its own package (refactor(provider-acp): move the shared ACP adapter into its own package pingdotgg/t3code#17354)b707eeb052782cfd8b1ff0445f84b2aaf01da38brefactor(provider-grok): move Grok into its own provider package (refactor(provider-grok): move Grok into its own provider package pingdotgg/t3code#17357)42c6623d492850c747b7ba06c1d0f1e1559d0ad5fix(server): speed up long thread message sync (fix(server): speed up long thread message sync pingdotgg/t3code#17387)c9fa1367caff4cd6595386814e1f8bb950d3d3effix(desktop): cancel backend pipe reads to avoid slow shutdown (fix(desktop): cancel backend pipe reads to avoid slow shutdown pingdotgg/t3code#17386)b000eac171318bf0130865387ae33523eecd3019refactor(providers): adapter factories yield their services (refactor(providers): adapter factories yield their services pingdotgg/t3code#17381)5785df19ea748be0755244582cb70d785f95f830fix(web): show a row spinner instead of a banner when expanding a folder (fix(web): show a row spinner instead of a banner when expanding a folder pingdotgg/t3code#17378)8f760371978f05b49e6f6b6aa4b2c523ab14b4fefix(server): a timed-out browser drag no longer exits the server (fix(server): a timed-out browser drag no longer exits the server pingdotgg/t3code#17360)563645cf6e104ad930f4c9b209678a77eef07e65fix(server): a logged-out Claude CLI no longer reports as authenticated (fix(server): a logged-out Claude CLI no longer reports as authenticated pingdotgg/t3code#15459)3b6af0bd1600f034b0466e1b8ff017fbabeba910fix(server): Pi loads every selected skill without losing prompt text (fix(server): Pi loads every selected skill without losing prompt text pingdotgg/t3code#17194)c908cea52510ed29199c3cc477204da425601301fix(server): keep the Claude MCP token out of process arguments (fix(server): keep the Claude MCP token out of process arguments pingdotgg/t3code#17408)7a2b1c72beed4f560aebb41aa7b26e0792eeb938fix(server): reconcile Pi native session rewinds (fix(server): reconcile Pi native session rewinds pingdotgg/t3code#13839)cb46c62504aca99295a4a8879644625a20685b7ftest(provider-pi): cover continuation offers through the driver (test(provider-pi): cover continuation offers through the driver pingdotgg/t3code#17407)43f8a8de17a7ac1baa7a3cf36d681856de2d8addrefactor(provider-acp-registry): move the ACP Registry into its own package (refactor(provider-acp-registry): move the ACP Registry into its own package pingdotgg/t3code#17405)Candidate
21faf52b16b3f3982ed9a45f6bdd8696811d7857, preserving merge42a979359e68589ca82b9891a42770a5534a3144and both pinned ancestors.Validation and review gates
Focused client, desktop, provider migration, authorization, GitHub checkout, managed tea config, Alpine/browser/runtime, publication metadata, permission revocation, download concurrency and process-containment regressions were run. Scoped server, web and desktop typechecks plus touched-source lint are recorded in the local evidence directory. CI owns repo-wide checks.
All applicable checks and all 17 CI workflow jobs passed on previous candidate
81ce992090. All applicable checks and transfer budgets passed on prior candidate54196dff0c. All applicable CI checks and all ten transfer ceilings pass at21faf52b16. Complete independent source approval and primary GO remain pending for this SHA. Preparatory reviews do not approve the final candidate; their findings were verified and addressed. CodeRabbit was requested and explicitly skipped review: 904 files exceed its 100-file limit. The maintainer-authorized large-diff fallback requires primary GO plus complete independent GPT-6 Astra exact-candidate source GO and passing required CI. Scoped source approvals are recorded below; complete source approval remains pending. Merge, artifacts, isolated release install/preflight/PTY, registry integrity and GitHub publication are separate gates and remain pending.CI fixture repair on 6d602ef
CI on 42a9793 found five retained ConnectionsSettings relay-permission tests failing because their environment mock omitted connection state now consumed by upstream Session Permissions. Added the connected state to that test fixture. All five failures reproduced locally, all five pass after the repair; scoped lint and repair diff check pass. Runtime source is unchanged. The aggregate Check failure was downstream of Test Web only. Transfer-budget measurements on 42a9793 passed every enforced ceiling. The fixture-only repair is commit
6d602ef8ce7970854ffcbd247e7ba345453bf812; its CI passed after one targeted Grok replay retry. CI and transfer budgets pass on final candidate81ce992090; complete Astra source approval remains pending. Source approvals for previous SHAs do not qualify this candidate.Desktop CLI review repairs
Independent Astra release review found two defects in upstream Unix CLI installation: removing an owned old-home launcher before a collision refusal, and classifying non-executable files or directories as runnable PATH commands. Collision refusal now occurs before unlinking. PATH probes require a regular file and current-user executable access. Four service regressions fail before the repair; all 19 installer/launcher tests pass after it. Scoped lint, formatting, desktop Effect typecheck and repair whitespace checks pass. Signed repair
7089335e4664146e94ca892d8d861809bdf84b8bis pushed. CI and transfer budgets passed on7089335. The subsequent source repairs passed fresh CI on81ce992090; complete source approval remains pending.The broad client, release and provider-core Astra reviews returned NO-GO for incomplete coverage; they supply no final approval. The path inventory now includes 136 previously omitted moved/deleted paths from complete actual-parent no-rename diffs. Review coverage is being completed in bounded scopes, followed by an independent aggregate integration review.
The release review also identified a pre-existing desktop browser form POST-body limitation. Its behavior is unchanged by this sync and is recorded as a limitation, not an additional introduced regression.
Find/Vim and Muse review repairs
Independent Astra review found a merged event-ordering regression: with Vim enabled, Escape left Thread Find open while moving focus to chat. The Find input now closes itself before window bubbling, using the existing close/focus path and preserving IME Escape. The focused DOM regression fails before repair only with Vim enabled; all three Find/diff-search cases pass after it. This covers the real Find input and Vim listeners in a controlled chat harness, not a browser or full ChatView render.
The interrupted Muse review identified an ownership defect, which the primary reviewer reproduced with an ordered adapter test: a user turn adopts a native report that launches a workflow; its later completion was rejected after the user turn ended. The background handler now accepts native IDs already owned by that turn, including joined report IDs. An unrelated turn cannot settle the same item. The new regression fails before repair while all 23 existing cases pass; all 24 adapter tests pass after repair. It checks published completion, cleared pending work and the host-idle eligibility flag without sleeps or polling.
Signed repair
81ce992090e7e4f5e1824ed96c9d2dbb0384df24is pushed. Scoped web and Muse typechecks, scoped lint, formatting and repair whitespace checks pass. Lint retains one warning on the unchanged Find focus-request effect; Muse typecheck retains two non-error Effect suggestions on an unchanged continuation expression. Fresh Astra reviews give scoped SOURCE GO at81ce992090for all 38 Muse current/historical paths, all 5 ChatView/Find/Vim paths, and all 38 packaging plus 2 CLI installer paths, and all 6 remaining packaging build-script paths, plus all 28 current/historical Pi adapter/continuation/tool paths and all 9 Pi status/settings/transport/metadata paths with their historical aliases. MU-F1, CV-F1 and CLI F1/F2 are independently closed on this candidate. Remaining source scopes and the aggregate integration review still need approval. Fresh independent review, aggregate source approval, merge and release gates remain pending. Required CI and exact-SHA transfer budgets now pass on81ce992090.Older desktop preview compatibility repair
Astra found SC-F1 in the new preview link event: an older desktop shell exposes preview but lacks onOpenLink. The new client called it unconditionally on mount. The contract now declares the capability optional, and the client guards the subscription while preserving current-shell cleanup and event routing. A real React DOM mount regression fails before repair with
onOpenLink is not a function; after repair the legacy host mounts, pointer state updates still reach the real pointer store, and the pointer subscription cleans up on unmount. All three focused mount/pointer tests pass. This uses isolated hook dependencies and no browser or packaged-shell runtime. Web and contracts typechecks, scoped lint, formatting and whitespace pass. One unchanged theme-effect dependency warning remains.Signed commit
54196dff0cf47fa5f40350a4a4daf5c4b764860bis pushed. The earlier scoped GOs and green CI apply to81ce992090only. Astra independently closed SC-F1 and gave SOURCE GO for all 11 assigned contracts paths at54196dff0c, including complete repair consumer/test inspection. Astra also gave SOURCE GO for all 25 desktop runtime/IPC/account-routing paths, with no assigned coverage gaps or unresolved findings. All applicable checks and transfer budgets pass on54196dff0c; all final-SHA source approvals must still be renewed. In-flight old-candidate reviews were stopped before changing the checkout. The complete history/source manifest now covers 1,482 paths including the new regression, with no missing non-reference paths. Merge and release 0.0.76 remain pending.Desktop browser profile identity repair
Astra found BF-F1: an unprofiled desktop preview guest could use the configured Work partition while its controls cleared Default, and new links/runtime moves could use Personal after changing defaults. Three real host/view/preview-state regressions reproduce those failures. The native guest/config and IPC/RPC/chrome seams are isolated; this is no browser or packaged Electron claim.
Each native tab now pins its effective profile in environment/thread preview state after settings hydrate. Guest creation waits for the pin. Labels, clear-cookie/cache targets, source-tab links and runtime moves use that identity. Settings changes and omitted-profile snapshot updates cannot move the guest. Failed-close recovery retains the profile; confirmed closure, authoritative removal, thread deletion and server-epoch changes clear it. Late old-epoch pins and unknown/suppressed tabs are rejected. Explicit snapshot profiles take precedence when first pinning.
All three reproductions pass after repair; all 46 focused host/view/store tests pass, including profile lifecycle and isolation cases. Scoped web typecheck, lint, formatting and whitespace pass; three warnings remain in unchanged code. Signed commit
21faf52b16b3f3982ed9a45f6bdd8696811d7857is pushed. Earlier scoped GOs and CI receipts apply to their stated old SHAs only. BF-F1 and SC-F1 are independently closed at this SHA in the browser/preview, state and contract boundaries. All applicable CI checks and all ten transfer ceilings pass. Complete source coverage, aggregate Astra GO, primary GO, merge and release gates remain pending. Complete source/history inventory covers 1,483 paths with no missing non-reference paths.Model and harness: GPT-6.1 Sol with GPT-6 Astra independent reviews, through the Codex harness in T3 Code.
Prior candidate review receipts at 21faf52
At
21faf52b16b3f3982ed9a45f6bdd8696811d7857, scoped SOURCE GO is recorded for clients-web-navigation-runtime-5, clients-browser-files-preview-1, release-packaging-1, release-desktop-runtime-2, release-cli-install, orchestration-bounded-01, orchestration-bounded-02, shared-contracts-bounded-01, shared-contracts-bounded-02. Each approval covers its assigned source only. Exact-head CI and transfer receipts are in workflow-state.json. CLI F1/F2 and publication metadata are independently closed by the combined packaging/CLI review. Complete independent source coverage and aggregate/primary GO remain pending; merge and release have not started.Find history retry repair and current candidate
Astra found CR-F1 in upstream Find paging: conversation loading can reveal40 turns while a failed complete stage leaves the original cursor. Ordinary retry asks for20 turns and prepends21-40 before the already-visible1-20. A valid40-turn HTTP/state regression fails before repair with that exact order; the replacement-snapshot control passes. History metadata now retains the incomplete expanded target across failure/interruption. Ordinary retry finishes that target, then complete-page cursor advancement removes it. Replacement snapshots clear it even with the same cursor. The merge still preserves live row values and existing stale-cursor guards. Web/desktop Find and shared web/mobile history use the same state; no wire schema,origin or provider change.
All60 focused history/state tests pass. Client-runtime typecheck,scoped lint,format and whitespace pass. Signed pushed candidate
67b11f9edc8a8b00a113fab0ec5e213c5bbeee22, treede9d6aa588eba28897d7415ad20d6ce44b8f21e7, is the direct child of21faf52b16. Six postmerge overlays preserve upstream ancestry. All earlier source and CI approvals remain historical for their statedSHA;fresh source reviews,independent CR-F1 closure,aggregate Astra/primaryGO and CI are pending. Merge/release0.0.76 have not started.Nonblocking pre-existing observations remain unresolved: ProviderRuntimeRecoveryService test names startup/shutdown but calls startup twice; initial old-session release can overwrite replacement persisted ready status after cleanup,while the retry path checks replacement ownership. Both baseline mechanisms were inspected and unchanged by this sync; no repair or runtime reproduction is claimed.