beast-agent 2.24.2 → 2.24.3

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "beast-agent",
3
3
  "productName": "Beast Agent",
4
- "version": "2.24.2",
4
+ "version": "2.24.3",
5
5
  "description": "Ultra-fast local agent shell for Windows.",
6
6
  "author": "algokodcom (AlgoKod)",
7
7
  "license": "MIT",
@@ -378,6 +378,8 @@ class Engine {
378
378
  } catch {
379
379
  this._agentDms = [];
380
380
  }
381
+ /* restart barışı: koşan üyesi kalmayan ekip/DM gruplarını kapat */
382
+ try { this._agentDmReconcile(); } catch {}
381
383
  /* superyorizyon döngüsü: takılan/uzun süren ajanı CEO'ya bildirir */
382
384
  this._supTimer = setInterval(() => {
383
385
  try { this._supervise(); } catch {}
@@ -6525,7 +6527,11 @@ Engine.prototype._agentDmClose = function (sid) {
6525
6527
  changed = true;
6526
6528
  }
6527
6529
  }
6528
- if (changed) this._persistAgentDms();
6530
+ if (changed) {
6531
+ this._persistAgentDms();
6532
+ /* panele CANLI haber: sohbet(ler) kapandı — AKTİF'ten GEÇMİŞ'e düşsün */
6533
+ try { this.emit({ type: 'agent-dm-closed', sessionId: sid }); } catch {}
6534
+ }
6529
6535
  };
6530
6536
 
6531
6537
  Engine.prototype.agentDmsList = function () {
@@ -6534,6 +6540,28 @@ Engine.prototype.agentDmsList = function () {
6534
6540
  return { dms: [...(this._agentDms || [])].slice(-600), groups };
6535
6541
  };
6536
6542
 
6543
+ /* RESTART BARİŞİ: açılışta grupları denetle — hiçbir üye ajan koşmuyorsa
6544
+ grup sohbeti KAPANIR (uygulama kapanırken yarım kalan ekip sohbetleri
6545
+ sonsuza dek "aktif" görünmesin; geçmiş panelde korunur). */
6546
+ Engine.prototype._agentDmReconcile = function () {
6547
+ const running = new Set();
6548
+ for (const [sid, j] of this._bgJobs || new Map()) {
6549
+ if (j && j.status === 'running') running.add(String(sid));
6550
+ }
6551
+ let changed = false;
6552
+ const now = new Date().toISOString();
6553
+ for (const [, g] of this._agentGroups || new Map()) {
6554
+ if (g.closed) continue;
6555
+ const anyRunning = (g.members || []).some((m) => running.has(String(m)));
6556
+ if (!anyRunning) {
6557
+ g.closed = true;
6558
+ g.closedAt = now;
6559
+ changed = true;
6560
+ }
6561
+ }
6562
+ if (changed) this._persistAgentDms();
6563
+ };
6564
+
6537
6565
  Engine.prototype.agentDmsClear = function () {
6538
6566
  this._agentDms = [];
6539
6567
  this._agentGroups = new Map();
@@ -5617,6 +5617,11 @@ function onEvent(ev) {
5617
5617
  if ($('#dmRail') && !$('#dmRail').classList.contains('dm-hidden')) renderDmRail();
5618
5618
  return;
5619
5619
  }
5620
+ /* AJAN DM sohbeti kapandı (ajan işi bitti) — AKTİF/GEÇMİŞ tazele */
5621
+ if (ev.type === 'agent-dm-closed') {
5622
+ refreshDmRail().catch(() => {});
5623
+ return;
5624
+ }
5620
5625
  /* KİŞİSEL TOOL çalışma kaydı — TOOLS konsolunun nokta göstergeleri */
5621
5626
  if (ev.type === 'tool-log') {
5622
5627
  toolUi.logRows.push({