| ... | @@ -851,7 +851,7 @@ it.live("recovers claudeCode sessions after provider stopAll using persisted res | ... | @@ -851,7 +851,7 @@ it.live("recovers claudeCode sessions after provider stopAll using persisted res |
| 851 | const firstThread = yield* harness.waitForThread( | 851 | const firstThread = yield* harness.waitForThread( |
| 852 | THREAD_ID, | 852 | THREAD_ID, |
| 853 | (entry) => | 853 | (entry) => |
| 854 | entry.latestTurnId === "turn-1" && entry.session?.providerSessionId !== null, | 854 | entry.latestTurn?.turnId === "turn-1" && entry.session?.providerSessionId !== null, |
| 855 | ); | 855 | ); |
| 856 | const staleSessionId = firstThread.session?.providerSessionId; | 856 | const staleSessionId = firstThread.session?.providerSessionId; |
| 857 | assert.equal(staleSessionId !== null, true); | 857 | assert.equal(staleSessionId !== null, true); |
| ... | @@ -1107,7 +1107,7 @@ it.live("reverts claudeCode turns and rolls back provider conversation state", ( | ... | @@ -1107,7 +1107,7 @@ it.live("reverts claudeCode turns and rolls back provider conversation state", ( |
| 1107 | | 1107 | |
| 1108 | const firstThread = yield* harness.waitForThread( | 1108 | const firstThread = yield* harness.waitForThread( |
| 1109 | THREAD_ID, | 1109 | THREAD_ID, |
| 1110 | (entry) => entry.latestTurnId === "turn-1" && entry.session?.providerSessionId !== null, | 1110 | (entry) => entry.latestTurn?.turnId === "turn-1" && entry.session?.providerSessionId !== null, |
| 1111 | ); | 1111 | ); |
| 1112 | const sessionId = firstThread.session?.providerSessionId; | 1112 | const sessionId = firstThread.session?.providerSessionId; |
| 1113 | assert.equal(sessionId !== null, true); | 1113 | assert.equal(sessionId !== null, true); |
| ... | @@ -1154,7 +1154,7 @@ it.live("reverts claudeCode turns and rolls back provider conversation state", ( | ... | @@ -1154,7 +1154,7 @@ it.live("reverts claudeCode turns and rolls back provider conversation state", ( |
| 1154 | yield* harness.waitForThread( | 1154 | yield* harness.waitForThread( |
| 1155 | THREAD_ID, | 1155 | THREAD_ID, |
| 1156 | (entry) => | 1156 | (entry) => |
| 1157 | entry.latestTurnId === "turn-2" && | 1157 | entry.latestTurn?.turnId === "turn-2" && |
| 1158 | entry.checkpoints.length === 2 && | 1158 | entry.checkpoints.length === 2 && |
| 1159 | entry.session?.providerName === "claudeCode", | 1159 | entry.session?.providerName === "claudeCode", |
| 1160 | ); | 1160 | ); |
| ... | @@ -1173,7 +1173,14 @@ it.live("reverts claudeCode turns and rolls back provider conversation state", ( | ... | @@ -1173,7 +1173,14 @@ it.live("reverts claudeCode turns and rolls back provider conversation state", ( |
| 1173 | entry.checkpoints.length === 1 && entry.checkpoints[0]?.checkpointTurnCount === 1, | 1173 | entry.checkpoints.length === 1 && entry.checkpoints[0]?.checkpointTurnCount === 1, |
| 1174 | ); | 1174 | ); |
| 1175 | assert.equal(revertedThread.checkpoints[0]?.checkpointTurnCount, 1); | 1175 | assert.equal(revertedThread.checkpoints[0]?.checkpointTurnCount, 1); |
| 1176 | assert.equal(fs.readFileSync(path.join(harness.workspaceDir, "README.md"), "utf8"), "v2\n"); | 1176 | assert.equal( |
| | 1177 | gitRefExists(harness.workspaceDir, checkpointRefForThreadTurn(THREAD_ID, 1)), |
| | 1178 | true, |
| | 1179 | ); |
| | 1180 | assert.equal( |
| | 1181 | gitRefExists(harness.workspaceDir, checkpointRefForThreadTurn(THREAD_ID, 2)), |
| | 1182 | false, |
| | 1183 | ); |
| 1177 | assert.deepEqual(harness.adapterHarness.getRollbackCalls(sessionId), [1]); | 1184 | assert.deepEqual(harness.adapterHarness.getRollbackCalls(sessionId), [1]); |
| 1178 | }), | 1185 | }), |
| 1179 | "claudeCode", | 1186 | "claudeCode", |