diff --git a/mobile/src/cloud/cloud-workspace-copy.test.ts b/mobile/src/cloud/cloud-workspace-copy.test.ts index e296d6eb49a..c3d8c532052 100644 --- a/mobile/src/cloud/cloud-workspace-copy.test.ts +++ b/mobile/src/cloud/cloud-workspace-copy.test.ts @@ -48,7 +48,7 @@ describe('cloud workspace copy', () => { it('names the repo and the fix when Orca can’t access it (github_not_connected)', () => { const denied = new CloudRequestError('conflict', 409, 'github_not_connected') expect(createErrorMessage(denied, t, null, 'https://github.com/stablyai/orca-cloud')).toBe( - 'Orca can’t access stablyai/orca-cloud. If it’s private, connect GitHub and give Orca access to it in Orca on your computer. Check the name, then try again. Nothing was created, and you weren’t charged.' + 'Orca can’t access stablyai/orca-cloud. Check the name. If it’s private, give Orca access to it from Orca on your computer. Nothing was created, and you weren’t charged.' ) expect(createErrorMessage(denied, t)).toContain('Orca can’t access this repository.') // Never the generic line it used to fall back to. diff --git a/mobile/src/cloud/cloud-workspace-copy.ts b/mobile/src/cloud/cloud-workspace-copy.ts index 3791408c199..f6af09c040c 100644 --- a/mobile/src/cloud/cloud-workspace-copy.ts +++ b/mobile/src/cloud/cloud-workspace-copy.ts @@ -194,24 +194,25 @@ export function createErrorMessage( return repo ? t( 'cloud.error.repoAccess', - 'Orca can’t access {{repo}}. If it’s private, connect GitHub and give Orca access to it in Orca on your computer. Check the name, then try again. Nothing was created, and you weren’t charged.', + 'Orca can’t access {{repo}}. Check the name. If it’s private, give Orca access to it from Orca on your computer. Nothing was created, and you weren’t charged.', { repo } ) : t( 'cloud.error.repoAccessUnnamed', - 'Orca can’t access this repository. If it’s private, connect GitHub and give Orca access to it in Orca on your computer. Check the name, then try again. Nothing was created, and you weren’t charged.' + 'Orca can’t access this repository. Check the name. If it’s private, give Orca access to it from Orca on your computer. Nothing was created, and you weren’t charged.' ) } + // The clone runs in a sandbox that already booted (and was metered): it's deleted, not "never created". if (error.code === 'provider_unavailable' && error.reason === 'orcad_start_failed') { return repo ? t( 'cloud.error.cloneNamed', - 'Couldn’t clone {{repo}}. Check the name, and that the Orca GitHub App can see it (Give Orca access, in Orca on your computer). Nothing was created, and you weren’t charged.', + 'Couldn’t clone {{repo}}. Check the name, and that Orca has access to it (Give Orca access, in Orca on your computer). The sandbox was deleted.', { repo } ) : t( - 'cloud.error.clone', - 'Couldn’t clone the repository. Check the name and that the Orca Cloud GitHub app can see it. Nothing was created, and you weren’t charged.' + 'cloud.error.cloneDeleted', + 'Couldn’t clone the repository. Check the name, and that Orca has access to it (Give Orca access, in Orca on your computer). The sandbox was deleted.' ) } if (error.code === 'timeout' || error.code === 'network_error' || error.status >= 500) { diff --git a/mobile/src/cloud/cloud-workspace-display.test.ts b/mobile/src/cloud/cloud-workspace-display.test.ts index 565c3c9c8a2..fe0b44db460 100644 --- a/mobile/src/cloud/cloud-workspace-display.test.ts +++ b/mobile/src/cloud/cloud-workspace-display.test.ts @@ -17,7 +17,7 @@ describe('cloudSpendLine', () => { const t: Translate = (_key, fallback) => fallback it('says an archived workspace uses no hours, not that it is asleep', () => { const line = cloudSpendLine({ status: 'archived', sandboxMs: 3_600_000 }, null, false, t) - expect(line).toBe('{{hours}} sandbox hours used. Archived workspaces use no sandbox hours.') + expect(line).toBe('{{hours}} sandbox hours used. Archived workspaces don’t use sandbox hours.') }) it('keeps the asleep and running lines', () => { diff --git a/mobile/src/cloud/cloud-workspace-display.ts b/mobile/src/cloud/cloud-workspace-display.ts index e2155338948..f6a945859da 100644 --- a/mobile/src/cloud/cloud-workspace-display.ts +++ b/mobile/src/cloud/cloud-workspace-display.ts @@ -126,11 +126,12 @@ export function cloudSpendLine( if (workspace.status === 'archived') { return t( 'cloud.usage.archived', - '{{hours}} sandbox hours used. Archived workspaces use no sandbox hours.', + '{{hours}} sandbox hours used. Archived workspaces don’t use sandbox hours.', { count: value, hours: label, - defaultValue_one: '{{hours}} sandbox hour used. Archived workspaces use no sandbox hours.' + defaultValue_one: + '{{hours}} sandbox hour used. Archived workspaces don’t use sandbox hours.' } ) } diff --git a/mobile/src/i18n/en-runtime-required.json b/mobile/src/i18n/en-runtime-required.json index 2efceb8d1f6..b1c5dd0bbb8 100644 --- a/mobile/src/i18n/en-runtime-required.json +++ b/mobile/src/i18n/en-runtime-required.json @@ -154,8 +154,8 @@ } }, "usage": { - "archived_one": "{{hours}} sandbox hour used. Archived workspaces use no sandbox hours.", - "archived_other": "{{hours}} sandbox hours used. Archived workspaces use no sandbox hours.", + "archived_one": "{{hours}} sandbox hour used. Archived workspaces don’t use sandbox hours.", + "archived_other": "{{hours}} sandbox hours used. Archived workspaces don’t use sandbox hours.", "asleep_one": "{{hours}} sandbox hour so far. Uses no sandbox hours while asleep.", "asleep_other": "{{hours}} sandbox hours so far. Uses no sandbox hours while asleep.", "running_one": "{{hours}} sandbox hour so far. Uses sandbox hours while running.", diff --git a/mobile/src/i18n/locales/en.json b/mobile/src/i18n/locales/en.json index eb3adaad6ec..e320d9a27a4 100644 --- a/mobile/src/i18n/locales/en.json +++ b/mobile/src/i18n/locales/en.json @@ -5098,15 +5098,15 @@ "failed": "The workspace couldn’t start. Try again, or open it on your desktop.", "revoked": "This phone’s Orca Cloud access ended. Connect it again from Home.", "network": "Couldn’t reach Orca Cloud. Check your connection and try again.", - "clone": "Couldn’t clone the repository. Check the name and that the Orca Cloud GitHub app can see it. Nothing was created, and you weren’t charged.", "createUnknown": "Lost the connection while starting it. It may still appear in your list. Try again to pick it up.", "rateLimited": "Too many new workspaces at once. Wait a minute, then try again.", "create": "Couldn’t start your cloud workspace. Nothing was created, and you weren’t charged.", "deliver": "The workspace is running, but a prompt didn’t start. Your files are safe.", "restartOwner": "Only the workspace’s owner can restart it. Your files are safe.", - "repoAccess": "Orca can’t access {{repo}}. If it’s private, connect GitHub and give Orca access to it in Orca on your computer. Check the name, then try again. Nothing was created, and you weren’t charged.", - "repoAccessUnnamed": "Orca can’t access this repository. If it’s private, connect GitHub and give Orca access to it in Orca on your computer. Check the name, then try again. Nothing was created, and you weren’t charged.", - "cloneNamed": "Couldn’t clone {{repo}}. Check the name, and that the Orca GitHub App can see it (Give Orca access, in Orca on your computer). Nothing was created, and you weren’t charged." + "repoAccess": "Orca can’t access {{repo}}. Check the name. If it’s private, give Orca access to it from Orca on your computer. Nothing was created, and you weren’t charged.", + "repoAccessUnnamed": "Orca can’t access this repository. Check the name. If it’s private, give Orca access to it from Orca on your computer. Nothing was created, and you weren’t charged.", + "cloneNamed": "Couldn’t clone {{repo}}. Check the name, and that Orca has access to it (Give Orca access, in Orca on your computer). The sandbox was deleted.", + "cloneDeleted": "Couldn’t clone the repository. Check the name, and that Orca has access to it (Give Orca access, in Orca on your computer). The sandbox was deleted." }, "workspace": { "title": "Cloud workspace", @@ -5287,8 +5287,8 @@ "asleep_other": "{{hours}} sandbox hours so far. Uses no sandbox hours while asleep.", "running_one": "{{hours}} sandbox hour so far. Uses sandbox hours while running.", "running_other": "{{hours}} sandbox hours so far. Uses sandbox hours while running.", - "archived_one": "{{hours}} sandbox hour used. Archived workspaces use no sandbox hours.", - "archived_other": "{{hours}} sandbox hours used. Archived workspaces use no sandbox hours." + "archived_one": "{{hours}} sandbox hour used. Archived workspaces don’t use sandbox hours.", + "archived_other": "{{hours}} sandbox hours used. Archived workspaces don’t use sandbox hours." }, "host": { "asleep": "{{name}} is asleep",