chore(vendor): import pi 0.85.1
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
1 parent
5ebc7018c3
commit
4def357d09
1669 files changed
+397627
No files matched your search
Vendored
+36
@@ -0,0 +1,36 @@
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
import { assistantMsg, userMsg } from "../../utilities.ts";
|
||||
import { createHarness, type Harness } from "../harness.ts";
|
||||
|
||||
describe("issue #3688 tree cancellation compaction state", () => {
|
||||
const harnesses: Harness[] = [];
|
||||
|
||||
afterEach(() => {
|
||||
while (harnesses.length > 0) {
|
||||
harnesses.pop()?.cleanup();
|
||||
}
|
||||
});
|
||||
|
||||
it("clears branch summary state when session_before_tree cancels navigation", async () => {
|
||||
const harness = await createHarness({
|
||||
extensionFactories: [
|
||||
(pi) => {
|
||||
pi.on("session_before_tree", () => ({ cancel: true }));
|
||||
},
|
||||
],
|
||||
});
|
||||
harnesses.push(harness);
|
||||
|
||||
const targetId = harness.sessionManager.appendMessage(userMsg("first"));
|
||||
harness.sessionManager.appendMessage(assistantMsg("reply"));
|
||||
const currentLeafId = harness.sessionManager.appendMessage(userMsg("second"));
|
||||
|
||||
expect(harness.sessionManager.getLeafId()).toBe(currentLeafId);
|
||||
|
||||
const result = await harness.session.navigateTree(targetId, { summarize: false });
|
||||
|
||||
expect(result).toEqual({ cancelled: true });
|
||||
expect(harness.session.isCompacting).toBe(false);
|
||||
expect(harness.sessionManager.getLeafId()).toBe(currentLeafId);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user