@blockrun/franklin 3.16.0 → 3.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -818,9 +818,15 @@ export async function interactiveSession(config, getUserInput, onEvent, onAbortR
818
818
  // running data-engineering on GCS logs: 15 distinct gsutil/bq calls,
819
819
  // each producing new insights, would have been cut off at call 6.
820
820
  // 3.15.30 detects ACTUAL loops by tracking the (tool, input)
821
- // signature: only break when the model calls the SAME signature 3
822
- // times in one turn. Different inputs → exploration, allowed.
823
- const SAME_SIGNATURE_HARD_STOP = 3;
821
+ // signature: only break when the model calls the SAME signature
822
+ // repeatedly in one turn. Different inputs → exploration, allowed.
823
+ //
824
+ // 3.16.1 bumps the threshold 3 → 5. The "3" rule was killing real
825
+ // sessions at 25-40 productive distinct calls when the model
826
+ // legitimately re-ran the same Read/Bash twice for polling or
827
+ // verification. Real infinite loops still trigger well before
828
+ // HARD_TOOL_CAP (50) bails out as a safety net.
829
+ const SAME_SIGNATURE_HARD_STOP = 5;
824
830
  // Tracks which tool names have already had a warn injected this turn.
825
831
  // Without it, every call past threshold pushes another [SYSTEM] STOP
826
832
  // tool_result into the model's context — same shape bug as the cap
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockrun/franklin",
3
- "version": "3.16.0",
3
+ "version": "3.16.1",
4
4
  "description": "Franklin Agent — The AI agent with a wallet. Spends USDC autonomously to get real work done. Pay per action, no subscriptions.",
5
5
  "type": "module",
6
6
  "exports": {