Finish the wonderland: System told truthfully, in eight tabs instead of ten

Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
Gabriel Brown committed 2026-08-24 23:31:52 -04:00
1 parent 9ffaf45a4d
commit be0e55214b
57 files changed
+5040 -925

No files matched your search

@@ -141,6 +141,25 @@ ShellRoot {
return SettingsBackup.handleRestoreOutput(output);
}
// The two pure functions behind a display restore, exposed directly.
// Everything else here is exercised through handleRestoreOutput, but
// the colour half of a layout is invisible from there: a snapshot
// whose colour fields were dropped restores geometry perfectly and
// reports success, which is exactly why nothing caught it for as long
// as it did.
function layoutFor(storedJson: string): string {
return JSON.stringify(
SettingsBackup.layoutFromStoredDisplays(JSON.parse(storedJson)));
}
// Both layouts in one object rather than two arguments: the IPC client
// flattens a top-level JSON array into one argument per element, so a
// pair of two-monitor layouts arrives as four arguments.
function layoutsMatch(pairJson: string): bool {
const pair = JSON.parse(pairJson);
return SettingsBackup.layoutsEqual(pair.left, pair.right);
}
function status(): string {
return JSON.stringify({
calls: root.calls,