Skip to content

Commit fca2380

Browse files
committed
test(compaction): name overflow keeper by handoff sequence
1 parent 1594bd0 commit fca2380

1 file changed

Lines changed: 40 additions & 1 deletion

File tree

‎src/agent/compaction.test.ts‎

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1663,7 +1663,7 @@ describe("handoff arming (/handoff)", () => {
16631663
).toBeNull();
16641664
});
16651665

1666-
test("overflow then handoff does not double-fold", () => {
1666+
test("handoff then overflow then pivot does not double-fold", () => {
16671667
const governor = createCompactionGovernor(undefined);
16681668
governor.syncFromTurns(tenTurns);
16691669
expect(governor.requestHandoff("now do the UI audit")).toBe("armed");
@@ -1680,4 +1680,43 @@ describe("handoff arming (/handoff)", () => {
16801680
).toBeNull();
16811681
expect(governor.extraInstructions).toBe("now do the UI audit");
16821682
});
1683+
1684+
test("handoff then overflow then interceptActions is spent", () => {
1685+
const governor = createCompactionGovernor(undefined);
1686+
governor.syncFromTurns(tenTurns);
1687+
expect(governor.requestHandoff("now do the UI audit")).toBe("armed");
1688+
expect(
1689+
governor.interceptOverflow(overflowError(), capabilities),
1690+
).not.toBeNull();
1691+
expect(
1692+
governor.interceptActions(toolDone(), inferAction, capabilities),
1693+
).toBeNull();
1694+
});
1695+
1696+
test("overflow then cancelManual keeps extras", () => {
1697+
const governor = createCompactionGovernor(undefined);
1698+
governor.syncFromTurns(tenTurns);
1699+
expect(governor.requestHandoff("now do the UI audit")).toBe("armed");
1700+
expect(
1701+
governor.interceptOverflow(overflowError(), capabilities),
1702+
).not.toBeNull();
1703+
governor.cancelManual();
1704+
expect(governor.extraInstructions).toBe("now do the UI audit");
1705+
});
1706+
1707+
test("overflow spends idle threshold arming so later empty arrival does not fold", () => {
1708+
const governor = createCompactionGovernor(undefined);
1709+
governor.noteInferenceDone(inferenceDone(overThreshold), tenTurns);
1710+
expect(
1711+
governor.noteIdleTurn(inferenceDone(overThreshold), [
1712+
{ type: "reply", content: "done" },
1713+
]),
1714+
).toBe(true);
1715+
expect(
1716+
governor.interceptOverflow(overflowError(), capabilities),
1717+
).not.toBeNull();
1718+
expect(
1719+
governor.interceptIdleContinuation(emptyMessage(), capabilities),
1720+
).toBeNull();
1721+
});
16831722
});

0 commit comments

Comments
 (0)