fix: persist default tab session patch marker (#4135)

This commit is contained in:
Neil
2026-05-31 05:37:48 -07:00
committed by GitHub
parent ea0b52304c
commit 3aa03b3348
2 changed files with 28 additions and 0 deletions
@@ -156,4 +156,25 @@ describe('buildWorkspaceSessionPatch', () => {
expect(Object.hasOwn(patch, 'activeConnectionIdsAtShutdown')).toBe(true)
expect(patch.activeConnectionIdsAtShutdown).toBeUndefined()
})
it('persists default terminal tab idempotency marker changes', () => {
const patch = buildWorkspaceSessionPatch(
createSnapshot({ defaultTerminalTabsAppliedByWorktreeId: { 'wt-1': true } }),
['defaultTerminalTabsAppliedByWorktreeId']
)
expect(patch).toEqual({
defaultTerminalTabsAppliedByWorktreeId: { 'wt-1': true }
})
})
it('keeps default terminal tab marker clearing keys in patches', () => {
const patch = buildWorkspaceSessionPatch(
createSnapshot({ defaultTerminalTabsAppliedByWorktreeId: {} }),
['defaultTerminalTabsAppliedByWorktreeId']
)
expect(Object.hasOwn(patch, 'defaultTerminalTabsAppliedByWorktreeId')).toBe(true)
expect(patch.defaultTerminalTabsAppliedByWorktreeId).toBeUndefined()
})
})
@@ -122,6 +122,13 @@ export function buildWorkspaceSessionPatch(
if (changed.has('lastVisitedAtByWorktreeId')) {
patch.lastVisitedAtByWorktreeId = buildLastVisitedAtByWorktreeId(snapshot)
}
if (changed.has('defaultTerminalTabsAppliedByWorktreeId')) {
patch.defaultTerminalTabsAppliedByWorktreeId =
snapshot.defaultTerminalTabsAppliedByWorktreeId &&
Object.keys(snapshot.defaultTerminalTabsAppliedByWorktreeId).length > 0
? snapshot.defaultTerminalTabsAppliedByWorktreeId
: undefined
}
return patch
}