List the cold-relaunch tab-order swap as known on main (#27353)

* List the cold-relaunch tab-order swap as known on main

The cold-daemon-restart oracle scenario intermittently finds the tab rows in swapped order after
the relaunch. The relaunch's exits for the killed daemon's terminals retire both tab rows, the
respawns re-add them in the order they bind, and the window's next save keeps main's row order.

Co-Authored-By: Claude <noreply@anthropic.com>

* Wrap the known-on-main comment to the line limit

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Jinwoo Hong
2026-10-10 22:15:50 -04:00
committed by GitHub
co-authored by Claude
parent 8f24508bb6
commit f69bbe8dca
2 changed files with 11 additions and 1 deletions
+1 -1
View File
@@ -58,4 +58,4 @@ Terminal-topology refactor PRs must be inert or fix a named bug. `terminal-layou
`workspace-layout-oracle-latency.spec.ts` records command-to-drawn-update p50/p95 for split, close pane, new tab, rename, tab reorder and close tab, idle and while another tab floods output. It never fails on a number.
A step waits up to `ORCA_LAYOUT_ORACLE_SETTLE_MS` (12 s) for every view to agree before recording. Findings main still has are listed in `workspace-layout-oracle-known-on-main.ts` with their bug; anything else fails. `ORCA_LAYOUT_ORACLE_RECORD=1` records without failing, `ORCA_LAYOUT_ORACLE_REPEAT=<n>` repeats each scenario, and each run writes a JSON report (with the evidence each side held) to `ORCA_LAYOUT_ORACLE_REPORT_DIR`. `node config/scripts/check-workspace-layout-rules.mjs <userDataDir>` runs the rules over any profile, including a running dev app's.
A step waits up to `ORCA_LAYOUT_ORACLE_SETTLE_MS` (12 s) for every view to agree before recording. Findings main still has are listed in `workspace-layout-oracle-known-on-main.ts` with their bug; anything else fails. A new entry must cite, in its PR, a run on `main` that reproduced the finding; for an intermittent finding, rerun until one does. `ORCA_LAYOUT_ORACLE_RECORD=1` records without failing, `ORCA_LAYOUT_ORACLE_REPEAT=<n>` repeats each scenario, and each run writes a JSON report (with the evidence each side held) to `ORCA_LAYOUT_ORACLE_REPORT_DIR`. `node config/scripts/check-workspace-layout-rules.mjs <userDataDir>` runs the rules over any profile, including a running dev app's.
@@ -58,6 +58,16 @@ export const LAYOUT_ORACLE_KNOWN_ON_MAIN: readonly KnownOnMain[] = [
rule: 'tab_order_disagrees',
cause: 'one tab order'
},
// Intermittent (about 1 in 30 on main): the relaunch's exits for the killed daemon's terminals
// retire both tab rows, the respawns re-add them in whichever order they bind, and the window's
// next save keeps main's row order. Fixed in PR 6, where rows follow the group's tab order.
{
scenario: 'cold-daemon-restart',
check: 'expected',
step: 'after cold relaunch',
detail: /: panes per tab \[1,2\], expected \[2,1\]$/,
cause: 'one tab order'
},
// After a cold relaunch the paired-client tab list stays empty while the window shows the tabs.
{
scenario: 'cold-daemon-restart',