Skip to content

Run on silently hides a machine whose server can't host threads without a project #34434

Open

Description

@AdminGodZ

What happened

On a desktop app connected to three machines (Windows local, macOS, Arch Linux via T3 Connect), the local Windows machine was missing from Run on for a new "No project" thread. Settings showed Local environment switched on, the backend answered, and the app's environment catalog had Windows registered and enabled. Nothing in the UI said why the machine was left out. It took a long investigation to find the cause.

Diagnosis

Same cause as #32339. On Windows, C:\Users\<user> contained an accidental empty Git repo: no commits, no refs, nothing tracked. That put C:\Users\<user>\.t3 inside a work tree. ManagedProjectFolders then turns off the scratch root (apps/server/src/project/ManagedProjectFolders.ts:240-262), and the server leaves scratchWorkspaceRoot out of its config (apps/server/src/ws.ts:1922-1990). In the "No project" branch of useLogicalProjectEnvironments (apps/web/src/hooks/useLogicalProjectEnvironments.ts), any environment where availableScratchWorkspaceRoot(...) is null is skipped with continue. The machine just disappears from the menu.

#32342 fixed #32339 by adding a server-side warning only. The client still gives no indication. The probe result is also cached with Duration.infinity, so fixing the repo only takes effect after a full app restart, which nothing tells the user either.

Suggestions: keep the machine in Run on but disabled, with the ScratchUnavailableError message as the reason (or show it under Settings → Environments). Say that a restart is needed, or re-probe when the user retries.

Steps to reproduce

  1. On a machine running the desktop app, run git init in the user's home folder (the folder that contains .t3).
  2. Restart T3 Code.
  3. Connect at least one other environment that supports threads without a project.
  4. Start a new "No project" thread and open Run on.
  5. The local machine is missing, with no explanation anywhere in the UI.

Version

0.1.9-nightly.20261110.4491 (desktop app and server on Windows; the other machines run the same nightly)

Environment

Windows 11 x64, T3 Code Desktop nightly with its local backend; git 2.56.0.windows.2. Other environments: macOS arm64 and Arch Linux, connected through T3 Connect.

Evidence

  • git -C "$env:USERPROFILE\.t3" rev-parse --show-toplevel → C:/Users/<user>
  • git -C $env:USERPROFILE log → your current branch 'master' does not have any commits yet; for-each-ref printed nothing.
  • Catalog state in the app: Windows was present as an enabled PrimaryConnectionTarget, with disabledEnvironmentIds: [].
  • /.well-known/t3/environment on the local backend returned HTTP 200 with the correct identity.
  • After Rename-Item ~\.git .git.bak and a full app restart, Windows appeared in Run on.

Related issues

#32339 (same root cause, closed by #32342: server log only), #26000 ("No project" doesn't show or let you pick the machine)

Workaround

Move the accidental ~\.git aside (or set T3CODE_HOME outside the repo), then fully restart T3 Code.

Agent

Diagnosed and written by Claude Opus 5.5 (Claude Code, running inside a T3 Code triage session), with earlier investigation by a Codex thread.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions