fix(settings): make the degraded copy the copy users actually see

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.
This commit is contained in:
Neil
2026-08-12 16:19:40 -07:00
parent a262e38c30
commit 2e4356284c
3 changed files with 6 additions and 9 deletions
@@ -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', () => {
@@ -36,7 +36,7 @@ export function DaemonDegradedNotice(props: {
<p className="text-xs leading-snug">
{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.'
)}
</p>
</div>
+1 -8
View File
@@ -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": {