fix(clients): disable add project while disconnected - #4834
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
22ed672 to
308dbd3
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 308dbd3. Configure here.
ApprovabilityVerdict: Approved 5226075 This PR adds defensive UI behavior to disable project creation when environments are disconnected. The core logic is a simple connection state check, with unit tests covering the new helper functions. The changes are well-scoped and low-risk. You can customize Macroscope's approvability policy. Learn more. |
## What's Changed * fix(mobile): reduce thread feed scroll jank by @gabrielelpidio in pingdotgg/t3code#4874 * fix(web): restore sidebar v2 thread actions and terminal icon by @Noojuno in pingdotgg/t3code#4712 * fix(web): settle button now works on hover, not just right-click by @t3dotgg in pingdotgg/t3code#4905 * fix(clients): disable add project while disconnected by @StiensWout in pingdotgg/t3code#4834 * fix(composer): hide default Codex service tier by @maxktz in pingdotgg/t3code#4784 ## New Contributors * @gabrielelpidio made their first contribution in pingdotgg/t3code#4874 **Full Changelog**: pingdotgg/t3code@v0.0.32-nightly.20260729.951...v0.0.32-nightly.20260730.953 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32-nightly.20260730.953
* fix(desktop): restore T3 Connect sign-in (pingdotgg#4809) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * Simplify files panel header (pingdotgg#4828) * build(desktop): reduce installed app size by ~300MB (pingdotgg#4824) * Update model version from claude-opus-4-8 to claude-opus-5 (pingdotgg#4832) * Preserve the thread shell while detail loads (pingdotgg#4830) * Reduce idle work and disk churn with native resource diagnostics (pingdotgg#2679) Co-authored-by: codex <codex@users.noreply.github.com> * fix(server): detect repositories after initialization (pingdotgg#4848) * perf(server): merge separate staged/unstaged numstat calls into single diff HEAD --numstat (pingdotgg#4843) * fix(git): disable external diff for review diff previews (pingdotgg#4854) * Fix editable file focus and live syntax highlighting (pingdotgg#3979) * fix(web): remember the rendered-markdown choice across threads (pingdotgg#4853) Co-authored-by: Simon Doba <simon.doba@orbit.de> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> * chore(release): prepare v0.0.31 * fix(mobile): reduce thread feed scroll jank (pingdotgg#4874) * fix(web): restore sidebar v2 thread actions and terminal icon (pingdotgg#4712) * fix(web): settle button now works on hover, not just right-click (pingdotgg#4905) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(clients): disable add project while disconnected (pingdotgg#4834) * fix(composer): hide default Codex service tier (pingdotgg#4784) * docs: link iOS and Android app store downloads (pingdotgg#4902) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): align remote server update action (pingdotgg#4731) * fix(connect): suggest a serve command that matches how you ran connect (pingdotgg#4897) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): stop shared content errors in Personal Team builds (pingdotgg#4943) * perf(mobile): sends respond instantly, thread opens stop freezing (pingdotgg#4882) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): show Codex fast mode as a bolt (pingdotgg#4947) * docs: seed worktrees with a copy of real userdata instead of banning it (pingdotgg#4949) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(mobile): support dragged images in the composer (pingdotgg#4953) * fix(mobile): stop long iOS threads from jumping while scrolling up (pingdotgg#4867) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * fix(web): keep worktree default when switching a draft's machine (pingdotgg#4964) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * perf(mobile): reconnect environments immediately on resume (pingdotgg#4878) * feat(web): pasting a huge screenshot now compresses it instead of erroring (pingdotgg#4967) Co-authored-by: Claude Fable 5 <noreply@anthropic.com> * feat(web): regenerate thread titles from sidebar (pingdotgg#4810) * fix(web): show server update progress through reconnect (pingdotgg#4903) --------- Co-authored-by: Alex <me@pixp.cc> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: wukko <me@wukko.me> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: ohbentos <72638975+ohbentos@users.noreply.github.com> Co-authored-by: Jake Leventhal <jakeleventhal@me.com> Co-authored-by: Simon Doba <simon.doba@hotmail.de> Co-authored-by: Simon Doba <simon.doba@orbit.de> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com> Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Max Katz <me@maxkatz.me>

What changed
Why
Configured environments remain in the connection catalog while offline. The add-project UI treated catalog membership as availability, so users could enter a flow that could only fail when the RPC layer rejected the disconnected request.
This keeps configured environments visible where useful, but prevents project creation until the target reports a connected phase.
Impact
Web, desktop, and mobile now consistently prevent project creation against disconnected environments. Existing RPC rejection remains as the final safety boundary.
Validation
vp test run packages/client-runtime/src/operations/projects.test.ts packages/client-runtime/src/state/filesystem.test.tsvp run --filter @t3tools/client-runtime --filter @t3tools/web --filter @t3tools/mobile typecheckGenerated by GPT-5.6-sol via the T3 Code Codex harness.
Note
Disable add project actions when no environment is connected
canCreateProjectInEnvironmentinpackages/client-runtime/src/operations/projects.tsas the canonical check for whether an environment's connection phase is'connected'.NewTaskRouteScreenis hidden when no ready environment exists; the command palette add-project flow blocks or shows error toasts for disconnected environments.useCreateProjectanduseEnvironmentFromParamguard against disconnected environments, returning null instead of proceeding.Macroscope summarized 5226075.
Note
Low Risk
UX and client-side guards around add-project; no auth or data-model changes, with existing RPC rejection as backup.
Overview
Introduces
canCreateProjectInEnvironmentin client-runtime so only environments in theconnectedphase can be used for add-project flows.Mobile enriches environment options with live connection state, disables unavailable rows with status text, and picks targets via
resolveAddProjectEnvironment(explicit offline IDs are not silently swapped). Repository/local/clone screens show an empty state when no connected target exists; create is blocked if the environment drops mid-flow. The new-task Add project header action is hidden whenhasReadyEnvironmentis false.Web command palette mirrors this: disconnected environments are disabled with status labels, defaults and WSL options require a connected env, and browse/clone/create/submit paths toast Environment unavailable instead of proceeding.
Reviewed by Cursor Bugbot for commit 5226075. Bugbot is set up for automated code reviews on this repo. Configure here.