From 2e4356284cb7a086173ffaf3748ee09feaddb8c7 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Wed, 12 Aug 2026 16:19:40 -0700 Subject: [PATCH] fix(settings): make the degraded copy the copy users actually see MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two user-facing fixes were no-ops. translate() resolves from en.json, and the catalog only ever gained the string it was first synced with — the sync script adds missing keys and never updates changed defaults, which the extraction gate reports as "inline defaults differ" and then passes anyway. So editing the inline default changed the source and nothing else. Caught by rendering the component and reading what came out, not by reading the diff. What was stale in the catalog, and is now corrected there: The notice promised the panes reconnect on their own once the host recovers. They do not. TerminalErrorToast already tells the user "Reopen this pane to retry", because nothing re-attaches a pane whose owner could not be verified — the session is left untouched, which is the point, but recovery is a user action. Third claim of mine in this PR that was stronger than the code. And "Restarting the host clears this" still overstated the foreign-endpoint case, where killStaleDaemon matches no pid record and clears nothing. Also removes the components.settings.DaemonDegradedNotice.* namespace, left behind when the keys were renamed to the auto.* convention every sibling uses. It was dead weight carrying the oldest copy of all three strings. --- .../components/settings/DaemonDegradedNotice.test.tsx | 4 ++++ .../src/components/settings/DaemonDegradedNotice.tsx | 2 +- src/renderer/src/i18n/locales/en.json | 9 +-------- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/renderer/src/components/settings/DaemonDegradedNotice.test.tsx b/src/renderer/src/components/settings/DaemonDegradedNotice.test.tsx index 950d5c74a31..e922035b351 100644 --- a/src/renderer/src/components/settings/DaemonDegradedNotice.test.tsx +++ b/src/renderer/src/components/settings/DaemonDegradedNotice.test.tsx @@ -37,6 +37,10 @@ describe('DaemonDegradedNotice', () => { const html = render() expect(html).toMatch(/can’t reach those terminals until the host responds/) expect(html).not.toMatch(/already open keep working/) + // And it must not promise automatic recovery: TerminalErrorToast already tells the user to + // "Reopen this pane to retry", because nothing re-attaches a failed pane on its own. + expect(html).not.toMatch(/reconnect on their own/) + expect(html).toMatch(/reopening a pane retries/) }) it('says the restart ends the local terminals too, not just the held ones', () => { diff --git a/src/renderer/src/components/settings/DaemonDegradedNotice.tsx b/src/renderer/src/components/settings/DaemonDegradedNotice.tsx index b45a02251e5..004fa150745 100644 --- a/src/renderer/src/components/settings/DaemonDegradedNotice.tsx +++ b/src/renderer/src/components/settings/DaemonDegradedNotice.tsx @@ -36,7 +36,7 @@ export function DaemonDegradedNotice(props: {

{translate( 'auto.components.settings.DaemonDegradedNotice.body', - 'The terminal host stopped responding. Orca kept it rather than ending anything it might still be hosting, but it can’t reach those terminals until the host responds again — the panes reconnect on their own if it recovers. New terminals open outside the host and close when you quit Orca. Restarting the host usually clears this, and ends every terminal — both the ones it is still holding and the ones running outside it.' + 'The terminal host stopped responding. Orca kept it rather than ending anything it might still be hosting, but it can’t reach those terminals until the host responds again — reopening a pane retries, and works once it does. New terminals open outside the host and close when you quit Orca. Restarting the host usually clears this, and ends every terminal — both the ones it is still holding and the ones running outside it.' )}

diff --git a/src/renderer/src/i18n/locales/en.json b/src/renderer/src/i18n/locales/en.json index 5fd2b91d8e4..38e01ec0f26 100644 --- a/src/renderer/src/i18n/locales/en.json +++ b/src/renderer/src/i18n/locales/en.json @@ -10655,7 +10655,7 @@ }, "DaemonDegradedNotice": { "title": "New terminals aren’t being saved", - "body": "The terminal host stopped responding. Orca kept it rather than ending anything it might still be hosting, but it can’t reach those terminals until the host responds again — the panes reconnect on their own if it recovers. New terminals open outside the host and close when you quit Orca. Restarting the host clears this, and ends every terminal — both the ones it is still holding and the ones running outside it.", + "body": "The terminal host stopped responding. Orca kept it rather than ending anything it might still be hosting, but it can’t reach those terminals until the host responds again — reopening a pane retries, and works once it does. New terminals open outside the host and close when you quit Orca. Restarting the host usually clears this, and ends every terminal — both the ones it is still holding and the ones running outside it.", "action": "Restart host" } }, @@ -15298,13 +15298,6 @@ "sent": "Session context sent to {{agent}} in a new session.", "deliveryFailed": "The new {{agent}} session started, but its context could not be sent.", "launchFailed": "Could not start a new {{agent}} session." - }, - "settings": { - "DaemonDegradedNotice": { - "title": "New terminals aren’t being saved", - "body": "The terminal host stopped responding, so Orca kept it rather than ending anything it may still be running. Terminals it was hosting are still running, but Orca can’t reach them until it responds again. New terminals open outside it and will close when you quit Orca. Restarting the host clears this — and ends whatever it was still hosting, so try reopening those terminals first.", - "action": "Restart host" - } } }, "dashboardPopout": {