Skip to content

Commit 4cd755c

Browse files
committed
fix(sessions): inherit active mode in partial type resets
1 parent fcd3a4f commit 4cd755c

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

src/config/sessions/reset-policy.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,18 @@ describe("session reset policy", () => {
9090
).toMatchObject({ mode: "daily", idleMinutes: 30 });
9191
});
9292

93+
it("inherits an active base mode for partial type overrides", () => {
94+
expect(
95+
resolveSessionResetPolicy({
96+
sessionCfg: {
97+
reset: { mode: "idle", idleMinutes: 60 },
98+
resetByType: { group: { idleMinutes: 30 } },
99+
},
100+
resetType: "group",
101+
}),
102+
).toMatchObject({ mode: "idle", idleMinutes: 30 });
103+
});
104+
93105
it("expires an explicit idle policy after inactivity", () => {
94106
const now = 10 * HOUR_MS;
95107
const lastInteractionAt = now - 31 * 60_000;

src/config/sessions/reset-policy.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,10 @@ export function resolveSessionResetPolicy(params: {
5454
const legacyIdleMinutes = params.resetOverride ? undefined : sessionCfg?.idleMinutes;
5555
const configured = Boolean(baseReset || typeReset || legacyIdleMinutes != null);
5656
// Legacy `idleMinutes` implied idle reset only when no modern reset block was configured.
57+
const inheritedTypeMode = typeReset && baseReset?.mode !== "none" ? baseReset?.mode : undefined;
5758
const mode =
5859
typeReset?.mode ??
60+
inheritedTypeMode ??
5961
(typeReset ? "daily" : undefined) ??
6062
baseReset?.mode ??
6163
(baseReset

0 commit comments

Comments
 (0)