beast-agent 2.24.1 → 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.1",
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({
@@ -1422,6 +1422,9 @@ body.term-dragging * { cursor: row-resize !important; }
1422
1422
  z-index: 55;
1423
1423
  }
1424
1424
  .mini-overlay[hidden] { display: none; }
1425
+ /* onay diyalogu HER overlay'ın ÜSTÜNDE (DM modal 300, tool konsolu 300,
1426
+ finStudio 110 — bunların hepsinden silme onayı görünür olmalı) */
1427
+ #confirmOverlay { z-index: 400; }
1425
1428
  body.browser-open .mini-overlay { right: var(--bw, 480px); }
1426
1429
  .mini-dialog {
1427
1430
  width: min(560px, 90vw);