diff --git a/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx b/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx index 80f2ecc77c02..635a687be2d0 100644 --- a/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx +++ b/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx @@ -362,9 +362,7 @@ function T3ConnectSection() { return ( - - Or use the managed relay - + Or use T3 Connect {isSignedIn ? ( - Applies to the route marked In use. Other routes may have different permissions and - have not been checked. + These permissions only apply to the current connection. Other ways of connecting may + have different permissions. {AUTH_SCOPE_OPTIONS.map(({ scope, title }) => ( diff --git a/apps/web/src/components/HostedEmptyState.tsx b/apps/web/src/components/HostedEmptyState.tsx index 86427ba736f1..f2336dbde2c7 100644 --- a/apps/web/src/components/HostedEmptyState.tsx +++ b/apps/web/src/components/HostedEmptyState.tsx @@ -37,14 +37,14 @@ export function HostedEmptyState() { - {localEnvironmentOff ? "This computer is off" : "No computer connected"} + {localEnvironmentOff ? "This host is disabled in T3 Code" : "No host connected"} {localEnvironmentOff - ? "Turn it back on, or connect a different computer." + ? "Enable it in Environments, or connect another host." : cloudEnabled ? "Your agents run on your computer." - : "Your agents run on your computer. Start T3 Code there first."} + : "Your agents run on your host. Start T3 Code there first."} @@ -112,7 +112,7 @@ function T3ConnectSteps() { return next; }), }} - empty={

Waiting for your computer…

} + empty={

Waiting for your host…

} /> ) : null} @@ -154,7 +154,7 @@ function SetupStep({ function RunOnComputer({ command }: { readonly command: string }) { return ( <> -

Run on your computer:

+

Run on your host:

environment.environmentId === linkTargetId)?.label ?? + "this host"; + const stepLabels: Record = { + publish: `Share ${hostLabel}`, + devices: "Connect devices", + }; const accountPage = useT3ConnectAccountPage(); const showPublishStep = canManageRelay && controller.linkState.target !== null; const steps: ReadonlyArray = showPublishStep @@ -212,7 +220,7 @@ function ConfiguredConnectOnboardingDialog() { title: "T3 Connect enabled", description: exposeEnvironment ? "This environment is available to your other devices through T3 Connect." - : "This environment publishes agent activity to your mobile clients.", + : "This environment sends agent activity to your mobile devices.", }); setStep("devices"); }; @@ -237,15 +245,12 @@ function ConfiguredConnectOnboardingDialog() { - Mesh your devices together. Publish this environment and connect the rest, all in one - place. - + <>Use T3 Code on your other devices. Choose what to share and which hosts to connect. } > {steps.length > 1 ? ( STEP_LABELS[id])} + steps={steps.map((id) => stepLabels[id])} currentStep={steps.indexOf(step)} isStepDisabled={() => isApplying} onStepChange={(index) => { @@ -265,6 +270,7 @@ function ConfiguredConnectOnboardingDialog() { {step === "publish" ? ( = { - publish: "Publish", - devices: "Connect devices", -}; - function PublishStep({ + hostLabel, exposeEnvironment, publishAgentActivity, requireDeviceApproval, @@ -351,6 +353,7 @@ function PublishStep({ onExposeEnvironmentChange, onPublishAgentActivityChange, }: { + readonly hostLabel: string; readonly exposeEnvironment: boolean; readonly publishAgentActivity: boolean; /** Null when this session cannot change who may connect. */ @@ -368,15 +371,15 @@ function PublishStep({
) : shareablePairingUrl === null ? (

- Copy the token and pair from another client using this backend's reachable host. + Copy the pairing code. On your other device, enter it alongside this server's + address.

) : null}
@@ -465,8 +466,8 @@ const PairingLinkListRow = memo(function PairingLinkListRow({ ) : (

- No QR for this endpoint. Another device scanning a loopback link would dial itself; - copy the URL for use on this machine instead. + Not showing a QR code because this address only works on this device. Use a network + address instead, or copy the link to use it here.

)} @@ -671,8 +672,7 @@ export const AuthorizedClientsHeaderAction = memo(function AuthorizedClientsHead Create pairing link - Generate a one-time link that another device can use to pair with this backend as an - authorized client. + Generate a single-use link to connect another device to this T3 Code server. diff --git a/apps/web/src/components/settings/SavedEnvironmentRows.tsx b/apps/web/src/components/settings/SavedEnvironmentRows.tsx index 540514e98fa8..6fb06d7dfa4e 100644 --- a/apps/web/src/components/settings/SavedEnvironmentRows.tsx +++ b/apps/web/src/components/settings/SavedEnvironmentRows.tsx @@ -609,7 +609,7 @@ function ConfiguredCloudLinkRow({ description: enabled ? "This environment is available through T3 Connect." : publishAgentActivity - ? "The managed tunnel was removed. Agent activity publishing stays on." + ? "The managed tunnel was removed. Agent activity stays enabled." : "This environment is no longer available through T3 Connect.", }); } @@ -625,8 +625,8 @@ function ConfiguredCloudLinkRow({ type: "success", title: enabled ? "Agent activity enabled" : "Agent activity disabled", description: enabled - ? "This environment publishes agent activity to your mobile clients." - : "This environment will stop publishing agent activity.", + ? "This environment sends agent activity to your mobile devices." + : "This environment will stop sending agent activity to your mobile devices.", }); } setIsUpdatingPreference(false); @@ -709,7 +709,7 @@ function ConfiguredCloudLinkRow({ description={ signedOut ? "Sign in to send activity to mobile notifications and Live Activities." - : "Send activity to mobile notifications and Live Activities without T3 Connect." + : "Use agent activity in push notifications or Live Activities on your phone." } managed={connectDenial} control={ @@ -717,7 +717,7 @@ function ConfiguredCloudLinkRow({ signInButton ) : (

{routeContext - ? "These permissions apply to your active route. Other routes may have different permissions." - : "These permissions apply to this client’s current connection."} + ? "These permissions only apply to the current connection. Other ways of connecting may have different permissions." + : "These permissions only apply to the current connection."}

    {AUTH_SCOPE_OPTIONS.map(({ scope, title }) => ( diff --git a/apps/web/src/components/settings/settingsSearch.ts b/apps/web/src/components/settings/settingsSearch.ts index 7d7939e7f21f..3ca3fbe66a0c 100644 --- a/apps/web/src/components/settings/settingsSearch.ts +++ b/apps/web/src/components/settings/settingsSearch.ts @@ -1304,7 +1304,7 @@ export const SETTINGS_SEARCH_ITEMS = [ { id: "publish-agent-activity", localEnvironmentOnly: true, - title: "Publish agent activity", + title: "Send agent activity to mobile devices", to: "/settings/access", targetId: "connections-environment", searchTerms: ["mobile push notifications live activities cloud tunnel"], diff --git a/docs/user/telemetry.md b/docs/user/telemetry.md index 2f2ccc893276..0184b622dc63 100644 --- a/docs/user/telemetry.md +++ b/docs/user/telemetry.md @@ -51,14 +51,14 @@ managed policy do not disable mobile tracing. ## Agent activity for mobile notifications -When **Publish agent activity** is enabled on a host, it sends project and thread titles, model -names, activity status, and environment and thread identifiers to the T3 Connect relay for -[mobile notifications and live activities](./mobile-notifications.md). This is separate from -product events and relay diagnostics. The telemetry opt-out does not disable it. - -To stop publishing, turn off **Publish agent activity** under **Settings > Sharing & access** on -the host. Turning off notifications on a phone controls that phone's alerts, not the host's -publishing setting. +When **Send agent activity to mobile devices** is enabled on a host, it sends project and thread +titles, model names, activity status, and environment and thread identifiers to the T3 Connect +relay for [mobile notifications and live activities](./mobile-notifications.md). This is separate +from product events and relay diagnostics. The telemetry opt-out does not disable it. + +To stop sending it, turn off **Send agent activity to mobile devices** under **Settings > Sharing & +access** on the host. Turning off notifications on a phone controls that phone's alerts, not the +host's setting. ## Export diagnostics to your own receiver