diff --git a/sta-4540-ship-hold.html b/sta-4540-ship-hold.html deleted file mode 100644 index f67c4c578b5..00000000000 --- a/sta-4540-ship-hold.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - STA-4540 · Ship or hold - - - -
-
- Default · ship - No UI change - STA-4540 · restart reconnect -
- -
-

After restart, the same SSH tab can come back empty while the remote session is still running.

-

Silent. Same tab title. No toast. They think the work died. It didn’t — Orca just reattached the wrong pane.

-
- Problem -

You leave Claude · auth-fix mid-edit on staging, restart Orca, reopen that same tab — body is a blank $.

- Fix -

On restart, wire that tab back to staging’s still-running session — not to the first other machine that had the same old pane slot.

-
-
Ship before the next build that includes yesterday’s rewrite. Persistence only; the empty-tab failure is already in that rewrite.
-
- -
-

Does / does not

-
-
-

Does

-
    -
  • Same SSH tab comes back with the command or agent you left running.
  • -
  • Two machines no longer steal each other’s reconnects.
  • -
  • A folder workspace keeps the exact path you set, including a trailing space.
  • -
-
-
-

Does not

-
    -
  • Change any button, tab, toast, or reconnect UI.
  • -
  • Put a session back if this build already restarted once and emptied the tab.
  • -
  • Move, rename, or rescan folders on disk.
  • -
-
-
-
- -
-

One window

-

Orca keeps remote terminals alive across quit. Restart is supposed to reopen the same tab onto that still-running session — not start a new shell.

-
-
-
1 · Beforethe session they meant to keep
-
-
staging
-
- Claude · auth-fix - zsh -
-
-
Claude
-
Editing src/auth.ts — adding the login redirect.
-
Checking the session cookie path next.
-
-
-

They are looking at this tab. Work is mid-flight. They quit Orca on purpose; staging should keep the session.

-
- -
-
2 · Restartold check says yes
-
-
staging
-
- Claude · auth-fix - zsh -
-
-
Reconnecting…
-
-
Same tab name?Yes
-
Same old pane slot as a rewrite we just did?Yes ← replacement
-
Same machine as that rewrite?Never asked
-
-
-
-

Same window, same title. Yesterday’s rewrite treats another machine’s new pane as “the” replacement. No toast.

-
- -
-
3 · Endingsame tab, two bodies
-
-
-
Wrong · now
-
-
Claude · auth-fix
-
$
-
empty shell
-
-
-
-
Right · this change
-
-
Claude · auth-fix
-
Editing src/auth.ts — adding the login redirect.
-
-
-
-

If this looked like a new tab, it would be the wrong bug. The title never changes.

-
-
-
- -
-

Why the old check is the wrong question

-
-

Same picture as above: staging’s Claude · auth-fix is being matched against a rewrite that may belong to another machine.

-
-
- Tab still called Claude · auth-fix?
Surface check — always true here
- Yes -
-
- Did yesterday’s change rewrite old pane slots on every machine?
Earlier change — keep this
- Yes -
-
- If the old pane slot matches a rewrite, is that the replacement?
Earlier change — this is the wrong YES
- Yes -
-
- Is that rewrite from the same machine as this tab?
This change — the question it never asked
- Never asked -
-
-

Yesterday also started trimming folder paths on save. This change puts the given path back, untrimmed. Not a second story — just stop rewriting what the user set.

-
-
- -
-

Who pays

-
-
-

Benefits

-

Anyone with more than one SSH machine, or a leftover local copy of an SSH tab, who has not restarted on yesterday’s rewrite yet. Their next quit/reopen keeps the running session.

-
-
-

Pays

-

If someone already restarted on that rewrite, this does not refill the empty tab. The still-running remote process stays orphaned. No UI risk; the leftover empty tab is a follow-up, not a reason to hold the stop-the-bleed.

-
-
-
- -
-

Decision traps

-
-
- This is diagnostics only. - False -
-
- Already-rewritten empty tabs will heal themselves. - False -
-
- Folder-path trim is the user-facing failure. - False -
-
-
- -
-

Call

-
-
-

Ship · default

-

Persistence-only correction of yesterday’s rewrite. Stops the silent empty-tab failure for the next restart. No UI. Land before that rewrite ships in a build people actually quit.

-
-
-

Hold

-

Only if you need this same PR to also revive tabs that already restarted empty. That is extra work, not this diff.

-
-
-

Wrong tool

-

Not a reconnect-UI or SSH-relay change. Restart already aims this tab; it is aimed at the wrong machine’s pane.

-
-
-
- -

Local decision page. Not product UI. Yesterday = host-wide pane rewrite + merged replacement table + folder-path trim. This = per-machine replacement + persist the path as given.

-
- -