Repository navigation
fix: integrate upstream reliability fixes (Sep 30) - #55
Merged
Merged
Conversation
The iOS splash reused the square app icon tile. Since the Control Plane rename (0be7513) that tile is fully opaque white, so the splash showed a white box around the jet, most visibly on the dark (#0a0a0a) splash. Render a transparent jet per variant from the mark SVGs in the existing icon export script and point expo-splash-screen at it. The jet keeps the size it had inside the tile. Android artwork is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix(browser): recover thread automation after host timeout
fix(mobile): transparent jet on the iOS splash screen
fix(server): let coordinators settle agents after follow-ups
Coordinators and standing agents can start one-off agents on other machines linked to their server. Placement (this machine, one machine, or balanced by load) is a server-owned setting under Settings > Connections > Agent machines. Results, read, stop and send work across machines through a registry and a bridge that pushes results into the asking thread. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cp_agent_settle now works on a remote agent: it settles the peer thread when no request is in flight, archives on request, and marks the record settled. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Follows the coordinator-owned settling rule: the bridge no longer settles a remote agent after its result. cp_agent_settle does it, on the peer. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
feat: start agents on linked machines per server settings
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Home only offered New Project once an environment's socket reached connected, even when the cached server config already advertised Projects. The cached Projects rendered on the first frame and New Project popped in about half a second later, shifting the list. Projects support now comes from the cached or live config. Only a connected server's config can mark Projects unsupported. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
fix(mobile): list New Project with cached Projects on cold launch
Drop the per-Project settled toggle and rows from the Home list and iPad sidebar. The Settled screen gets a Projects area above the Tasks groups, one group per Project, newest settled first. View Settled is now in the Android and iPad sidebar menus too, and the unused settled toggle helper in client-runtime is removed. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ttled-view Mobile: settled Project agents only on the Settled screen
nickrroberts
force-pushed
the
sync/upstream-reliability-20260930
branch
from
September 30, 2026 13:33
938bca3 to
c738520
Compare
A "Try demo" button on the first-run screens (Home empty state, iPad empty detail, Add Environment sheet, New Task empty state) opens a local "Demo Mac" environment with sample Projects, Tasks folders and threads. The demo environment is a platform registration served by an in-process DemoServer through a new ConnectionDriverOverride hook, so the real connection supervisor, shell and thread state, and screens run unchanged with no network calls. Sends and approvals get canned local replies; unsupported requests fail quietly with a demo message. A persistent Demo banner offers Exit demo, which clears the sample data and opens the connect flow. Also fixes the Add Environment sheet showing an error on open: it read an app-wide error that failed sends and other flows also write, so it could open already showing a stale or unrelated failure. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Pairing with a host that is offline or answers with a server error (the stopped App Review server returned 503) showed raw transport or status text. The Add Environment screen now says the computer could not be reached, what to check, and that Try demo works without one. Code, permission and compatibility failures keep their specific message. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Build 14's review server returned 503 from /.well-known/t3/environment, which surfaced as "returned undeclared status 503" with no way forward. - Undeclared statuses keep their transient class (saved environments still reconnect on web and mobile) but split by reason: 5xx is remote-unavailable, 4xx is endpoint-unavailable. - The status error records Retry-After. - Pairing retries 502/503/504 twice over about 20s, honoring Retry-After (capped at 12s). - Mobile maps each reason, and a rejected pairing code, to plain text, with Try again and Try demo buttons under the banner. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The review server cold-starts in about 14s, but the pairing descriptor request times out at 10s, so pairing failed before it ever answered. - Pairing now retries descriptor timeouts as well as 502/503/504, within one 45s budget. Each attempt's timeout is capped to the budget left, Retry-After is honored (capped at 12s), and anything else still fails at once. - PairingConnectionInput takes an optional onWaiting callback. Mobile uses it to show "Waking up the server..." with a note that it can take up to 45 seconds. Web does not pass one and keeps its current pending state. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A reviewer who relaunches the app lands back in the demo until they tap Exit demo. The flag is a file in the documents folder, read synchronously at launch, so reinstalling starts outside the demo. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
feat(mobile): demo mode for App Store review
Drop the desktop-browser exceptions from the agent, coordinator and Codex browser instructions, and tell agents to ask the user to sign in once in the Control Plane browser panel instead. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Require agents to use only the built-in Control Plane browser
…ception fix(server): allow explicitly requested desktop browser use
nickrroberts
force-pushed
the
sync/upstream-reliability-20260930
branch
from
September 30, 2026 14:31
c738520 to
4a5726d
Compare
Adds an orderKey (fractional index) to the project record, written by a new project.reorder command on the owning server and delivered through the shell like projectIcon. Web reads and writes it (drag and Alt+Arrow), seeds it from the saved local order once, and mobile applies it to Projects and Tasks folders. Mobile also draws Lucide glyph icons and workspace icons on Home. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ument ordering Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
feat: sync Projects and Tasks folder order across clients
The assistant message is wrapped in a long-press Pressable, which takes the JS responder on every touch. Fabric's ScrollView refuses to cancel content touches while an ancestor is the JS responder, so the horizontal scrollers around tables and code blocks never started a drag and wide content was clipped at the message edge. While the content overflows, the scroller's content view now claims the responder itself so the Pressable never does. Content that fits still leaves the long press to the message. Wide blocks also fade into the surface at any edge that hides content. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…croll fix(mobile): let wide markdown tables and code scroll horizontally
… offline (pingdotgg#13577) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit a107f8a)
…gdotgg#13684) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 8aa5be2)
…th failed repacks (pingdotgg#13812) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 95030dc)
…ingdotgg#13767) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 9151ea4)
… before submission (pingdotgg#12003) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit e518866)
…ncy improvement (pingdotgg#13884) Co-authored-by: GPT-6 Astra <noreply@openai.com> (cherry picked from commit ed57bed)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> (cherry picked from commit 050cfad)
nickrroberts
force-pushed
the
sync/upstream-reliability-20260930
branch
from
September 30, 2026 15:29
4a5726d to
b3e3266
Compare
Thread transfer impact
This comment will update automatically after the next completed run. |
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.
Control Plane misses several upstream reliability fixes since the last sync (#17). This batch cherry-picks seven upstream commits with
git cherry-pick -x, one commit per upstream PR. All seven applied without conflicts; no fork code was changed.a107f8a079(fix(clients): a preview app no longer knocks the desktop's own server offline pingdotgg/t3code#13577): a preview app sharing the environment identity no longer knocks the desktop's own local server offline (connection isolation in client-runtime).8aa5be2f02(fix(server): the SQLite WAL file shrinks back after large writes pingdotgg/t3code#13684): the SQLite WAL file shrinks back after large writes.95030dc674(fix(server): background git status fetches no longer fill the disk with failed repacks pingdotgg/t3code#13812): background git status fetches no longer fill the disk with failed repacks.9151ea407a(perf(clients): saving the thread list cache no longer freezes the UI pingdotgg/t3code#13767): saving the thread list cache no longer freezes the UI (web and mobile cache stores).e518866d28(fix(server): OpenCode stop no longer hangs when a turn is interrupted before submission pingdotgg/t3code#12003): OpenCode stop no longer hangs when a turn is interrupted before submission.ed57bed8e7(fix(web): skip unchanged shortcut modifier updates - 195x typing latency improvement pingdotgg/t3code#13884): skip unchanged shortcut modifier updates (typing latency).050cfad04f(fix(grok): recover from crashed provider sessions pingdotgg/t3code#10607): Grok recovers from crashed provider sessions.Skipped:
compatibilityranges inmodel-manifest.jsonplus the provider status banner, and both depend on upstream's compatibility-range system (feat(providers): check remote compatibility ranges pingdotgg/t3code#13130, fix(providers): restore compatibility ranges for every harness pingdotgg/t3code#13328), which the fork does not have (nocompatibilityblock, nocompatibilityAdvisory). Taking it would mean taking that feature too.Validation (local, no remote CI):
use-composer-drafts.test.tsplus the react-native Flow parse error; same on main (verified by running the file onorigin/main).origin/main(ThreadSettlementReactor storage cleanup, CodexDriver/providerMaintenance npm, Cursor skills, UsageService and others). The 52nd (server.test.tsworktree bootstrap for a non-repository) passed when rerun alone; it failed under load average ~200.🤖 Generated with Claude Code