switchroom 0.14.63 → 0.14.64

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.
@@ -49452,8 +49452,8 @@ var {
49452
49452
  } = import__.default;
49453
49453
 
49454
49454
  // src/build-info.ts
49455
- var VERSION = "0.14.63";
49456
- var COMMIT_SHA = "21a12c16";
49455
+ var VERSION = "0.14.64";
49456
+ var COMMIT_SHA = "fb6bbe00";
49457
49457
 
49458
49458
  // src/cli/agent.ts
49459
49459
  init_source();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "switchroom",
3
- "version": "0.14.63",
3
+ "version": "0.14.64",
4
4
  "description": "Run Claude Code 24/7 on your Claude Pro/Max subscription over Telegram. Open-source alternative to OpenClaw and NanoClaw — no API keys.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -52720,10 +52720,10 @@ function sweepStaleTurnActiveMarker(stateDir, opts) {
52720
52720
  }
52721
52721
 
52722
52722
  // ../src/build-info.ts
52723
- var VERSION = "0.14.63";
52724
- var COMMIT_SHA = "21a12c16";
52725
- var COMMIT_DATE = "2026-06-04T22:43:17Z";
52726
- var LATEST_PR = 2159;
52723
+ var VERSION = "0.14.64";
52724
+ var COMMIT_SHA = "fb6bbe00";
52725
+ var COMMIT_DATE = "2026-06-04T23:21:00Z";
52726
+ var LATEST_PR = 2161;
52727
52727
  var COMMITS_AHEAD_OF_TAG = 0;
52728
52728
 
52729
52729
  // gateway/boot-version.ts
@@ -53921,7 +53921,7 @@ var _deliveryTimeoutParsed = _deliveryTimeoutRaw != null && _deliveryTimeoutRaw
53921
53921
  var DELIVERY_CONFIRM_TIMEOUT_MS = Number.isFinite(_deliveryTimeoutParsed) && _deliveryTimeoutParsed > 0 ? _deliveryTimeoutParsed : 15000;
53922
53922
  var DELIVERY_CONFIRM_SWEEP_MS = 5000;
53923
53923
  var deliveryQueue = createDeliveryQueue();
53924
- var OBLIGATION_LEDGER_ENABLED = process.env.SWITCHROOM_OBLIGATION_LEDGER === "1";
53924
+ var OBLIGATION_LEDGER_ENABLED = process.env.SWITCHROOM_OBLIGATION_LEDGER !== "0";
53925
53925
  var OBLIGATION_REPRESENT_MAX = 2;
53926
53926
  var OBLIGATION_SWEEP_MS = 5000;
53927
53927
  var OBLIGATION_ESCALATE_MAX = 3;
@@ -53933,7 +53933,7 @@ var OBLIGATION_ESCALATE_GRACE_MS = (() => {
53933
53933
  const n = Number(raw);
53934
53934
  return Number.isFinite(n) && n >= 0 ? n : 45000;
53935
53935
  })();
53936
- var AUTOCLASSIFY_MIDTURN_SHADOW = process.env.SWITCHROOM_AUTOCLASSIFY_MIDTURN_SHADOW === "1";
53936
+ var AUTOCLASSIFY_MIDTURN_SHADOW = process.env.SWITCHROOM_AUTOCLASSIFY_MIDTURN_SHADOW !== "0";
53937
53937
  var lastAgentOutputAt = new Map;
53938
53938
  var LAST_OUTPUT_MAX_KEYS = 512;
53939
53939
  function noteAgentOutputAt(key, ts) {
@@ -1400,9 +1400,12 @@ const deliveryQueue = createDeliveryQueue<InboundMessage>()
1400
1400
  // re-presented (bounded) until it closes, so a message the model read but never
1401
1401
  // answered (the marko 715 drop) cannot be silently lost. ADDITIVE + flagged: it
1402
1402
  // runs ALONGSIDE the existing acks/spool/buffer (PR3 retires the redundant
1403
- // pieces). Default OFF the canary turns it on (713/715 interleave UAT) before
1404
- // any fleet activation. When off, every hook below is a no-op → zero change.
1405
- const OBLIGATION_LEDGER_ENABLED = process.env.SWITCHROOM_OBLIGATION_LEDGER === '1'
1403
+ // pieces). DEFAULT ON (graduated from canary 2026-06-04 after the hang-fix
1404
+ // (#2152, total-proof), the escalate-grace (#2156, kills the fuzz-found
1405
+ // over-escalation), and interrupt-cancel (#2157) — proven on marko (supergroup)
1406
+ // + test-harness for days with 0 false cards). Kill switch:
1407
+ // SWITCHROOM_OBLIGATION_LEDGER=0 → every hook below is a no-op → zero change.
1408
+ const OBLIGATION_LEDGER_ENABLED = process.env.SWITCHROOM_OBLIGATION_LEDGER !== '0'
1406
1409
  const OBLIGATION_REPRESENT_MAX = 2
1407
1410
  const OBLIGATION_SWEEP_MS = 5_000
1408
1411
  // Bound on escalation SEND attempts. The escalation now closes only AFTER a
@@ -1449,8 +1452,10 @@ const OBLIGATION_ESCALATE_GRACE_MS = (() => {
1449
1452
  // ms_since_out) but the behaviour is UNCHANGED (still queue) — to gather the
1450
1453
  // real-world distribution (how often mid-turn messages are same-topic
1451
1454
  // continuations vs cross-topic, and the recency spread) before any action flips
1452
- // on. Default OFF zero overhead. The action windows below stay 0 in shadow.
1453
- const AUTOCLASSIFY_MIDTURN_SHADOW = process.env.SWITCHROOM_AUTOCLASSIFY_MIDTURN_SHADOW === '1'
1455
+ // on. DEFAULT ON fleet-wide (data-gathering: zero behaviour change only logs +
1456
+ // a bounded recency map). This is a TEMPORARY default; when auto-steer ships it
1457
+ // supersedes shadow. Kill switch: SWITCHROOM_AUTOCLASSIFY_MIDTURN_SHADOW=0.
1458
+ const AUTOCLASSIFY_MIDTURN_SHADOW = process.env.SWITCHROOM_AUTOCLASSIFY_MIDTURN_SHADOW !== '0'
1454
1459
  // Per-(chat,thread) wall-clock ms of the agent's LAST visible output — the
1455
1460
  // recency clock the classifier uses (NOT turn age: a long actively-narrating
1456
1461
  // worker turn must not read "stale"). Stamped beside signalTracker.noteOutbound.