@@ -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