mirror of
https://github.com/moltbot/moltbot.git
synced 2026-04-23 14:45:46 +00:00
fix(agents): rotate claude cli bindings on reset
This commit is contained in:
@@ -1573,7 +1573,7 @@ describe("initSessionState preserves behavior overrides across /new and /reset",
|
||||
}
|
||||
});
|
||||
|
||||
it("preserves selected auth profile overrides across /new and /reset", async () => {
|
||||
it("preserves selected auth profile overrides but clears stale cli session bindings across /new and /reset", async () => {
|
||||
const storePath = await createStorePath("openclaw-reset-model-auth-");
|
||||
const sessionKey = "agent:main:telegram:dm:user-model-auth";
|
||||
const existingSessionId = "existing-session-model-auth";
|
||||
@@ -1641,9 +1641,14 @@ describe("initSessionState preserves behavior overrides across /new and /reset",
|
||||
authProfileOverrideSource: overrides.authProfileOverrideSource,
|
||||
authProfileOverrideCompactionCount: overrides.authProfileOverrideCompactionCount,
|
||||
});
|
||||
expect(result.sessionEntry.cliSessionIds).toEqual(overrides.cliSessionIds);
|
||||
expect(result.sessionEntry.cliSessionBindings).toEqual(overrides.cliSessionBindings);
|
||||
expect(result.sessionEntry.claudeCliSessionId).toBe(overrides.claudeCliSessionId);
|
||||
expect(result.sessionEntry.cliSessionIds).toBeUndefined();
|
||||
expect(result.sessionEntry.cliSessionBindings).toBeUndefined();
|
||||
expect(result.sessionEntry.claudeCliSessionId).toBeUndefined();
|
||||
|
||||
const stored = JSON.parse(await fs.readFile(storePath, "utf-8"));
|
||||
expect(stored[sessionKey].cliSessionIds).toBeUndefined();
|
||||
expect(stored[sessionKey].cliSessionBindings).toBeUndefined();
|
||||
expect(stored[sessionKey].claudeCliSessionId).toBeUndefined();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -305,9 +305,6 @@ export async function initSessionState(params: {
|
||||
let persistedAuthProfileOverride: string | undefined;
|
||||
let persistedAuthProfileOverrideSource: SessionEntry["authProfileOverrideSource"];
|
||||
let persistedAuthProfileOverrideCompactionCount: number | undefined;
|
||||
let persistedCliSessionIds: SessionEntry["cliSessionIds"];
|
||||
let persistedCliSessionBindings: SessionEntry["cliSessionBindings"];
|
||||
let persistedClaudeCliSessionId: string | undefined;
|
||||
let persistedLabel: string | undefined;
|
||||
let persistedSpawnedBy: SessionEntry["spawnedBy"];
|
||||
let persistedSpawnedWorkspaceDir: SessionEntry["spawnedWorkspaceDir"];
|
||||
@@ -501,9 +498,8 @@ export async function initSessionState(params: {
|
||||
persistedAuthProfileOverride = entry.authProfileOverride;
|
||||
persistedAuthProfileOverrideSource = entry.authProfileOverrideSource;
|
||||
persistedAuthProfileOverrideCompactionCount = entry.authProfileOverrideCompactionCount;
|
||||
persistedCliSessionIds = entry.cliSessionIds;
|
||||
persistedCliSessionBindings = entry.cliSessionBindings;
|
||||
persistedClaudeCliSessionId = entry.claudeCliSessionId;
|
||||
// Explicit /new and /reset should rotate the underlying CLI conversation too.
|
||||
// Keep the model/auth choice, but force the next turn to mint a fresh CLI binding.
|
||||
persistedLabel = entry.label;
|
||||
persistedSpawnedBy = entry.spawnedBy;
|
||||
persistedSpawnedWorkspaceDir = entry.spawnedWorkspaceDir;
|
||||
@@ -573,9 +569,9 @@ export async function initSessionState(params: {
|
||||
persistedAuthProfileOverrideSource ?? baseEntry?.authProfileOverrideSource,
|
||||
authProfileOverrideCompactionCount:
|
||||
persistedAuthProfileOverrideCompactionCount ?? baseEntry?.authProfileOverrideCompactionCount,
|
||||
cliSessionIds: persistedCliSessionIds ?? baseEntry?.cliSessionIds,
|
||||
cliSessionBindings: persistedCliSessionBindings ?? baseEntry?.cliSessionBindings,
|
||||
claudeCliSessionId: persistedClaudeCliSessionId ?? baseEntry?.claudeCliSessionId,
|
||||
cliSessionIds: baseEntry?.cliSessionIds,
|
||||
cliSessionBindings: baseEntry?.cliSessionBindings,
|
||||
claudeCliSessionId: baseEntry?.claudeCliSessionId,
|
||||
label: persistedLabel ?? baseEntry?.label,
|
||||
spawnedBy: persistedSpawnedBy ?? baseEntry?.spawnedBy,
|
||||
spawnedWorkspaceDir: persistedSpawnedWorkspaceDir ?? baseEntry?.spawnedWorkspaceDir,
|
||||
|
||||
Reference in New Issue
Block a user