beast-agent 2.24.0 → 2.24.2

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.0",
4
+ "version": "2.24.2",
5
5
  "description": "Ultra-fast local agent shell for Windows.",
6
6
  "author": "algokodcom (AlgoKod)",
7
7
  "license": "MIT",
@@ -6348,9 +6348,10 @@ Engine.prototype._agentDmSend = function (fromSid, args) {
6348
6348
  text,
6349
6349
  };
6350
6350
  this._pushAgentDm(dm);
6351
+ /* canlı event TEK SEFER — üye başına emit edilirse panelde çoğalır */
6352
+ emitSafe(this, target || g.members[0], { type: 'agent-dm', ...dm });
6351
6353
  for (const m of g.members) {
6352
6354
  if (m === String(fromSid) || !jobs.has(m)) continue;
6353
- emitSafe(this, m, { type: 'agent-dm', ...dm });
6354
6355
  (this._pendingReports = this._pendingReports || []).push({
6355
6356
  parentId: m,
6356
6357
  text:
@@ -6467,12 +6468,12 @@ Engine.prototype._agentTeamPost = function (gid, fromSid, fromTitle, text) {
6467
6468
  enjekte EDİLMEZ (mid-task müdahale + kuyruk/konkürans bozulmasın).
6468
6469
  Üyeler ekibi her turda sistem promptundaki ZORUNLU satırdan bilir;
6469
6470
  gerçek ajan mesajları (agent_dm) normal teslim akışıyla düşer. */
6470
- for (const m of g.members || []) {
6471
- if (m === String(fromSid)) continue;
6471
+ /* canlı event TEK SEFER (ilk koşan üyeye) — üye başına emit edilmez */
6472
+ const firstRunning = (g.members || []).find((m) => {
6472
6473
  const j = this._bgJobs && this._bgJobs.get(m);
6473
- if (!j || j.status !== 'running') continue;
6474
- emitSafe(this, m, { type: 'agent-dm', ...dm });
6475
- }
6474
+ return j && j.status === 'running';
6475
+ });
6476
+ if (firstRunning) emitSafe(this, firstRunning, { type: 'agent-dm', ...dm });
6476
6477
  this._persistAgentDms();
6477
6478
  } catch {}
6478
6479
  };
@@ -5590,9 +5590,11 @@ function onEvent(ev) {
5590
5590
  scheduleAgentsRender();
5591
5591
  return;
5592
5592
  }
5593
- /* AJAN DM: ajanlar arası mesaj — açık görünümde canlı düşer (modal/sütun) */
5593
+ /* AJAN DM: ajanlar arası mesaj — açık görünümde canlı düşer (modal/sütun).
5594
+ group alanı MUTLAKA taşınır — yoksa grup mesajı 1:1 DM gibi görünür ve
5595
+ refresh'te "silinir" (server doğrusu gruba koyar, yerel kopya uçuşur). */
5594
5596
  if (ev.type === 'agent-dm') {
5595
- dmState.dms.push({
5597
+ const rec = {
5596
5598
  at: ev.at,
5597
5599
  from: ev.from,
5598
5600
  fromTitle: ev.fromTitle,
@@ -5600,8 +5602,17 @@ function onEvent(ev) {
5600
5602
  toTitle: ev.toTitle,
5601
5603
  topic: ev.topic,
5602
5604
  text: ev.text,
5603
- });
5604
- if (dmState.dms.length > 400) dmState.dms.splice(0, dmState.dms.length - 400);
5605
+ ...(ev.group ? { group: ev.group, groupTitle: ev.groupTitle } : {}),
5606
+ ...(ev.closed ? { closed: true, closedAt: ev.closedAt } : {}),
5607
+ };
5608
+ /* aynı mesaj birden çok üyeye emit edilmiş olabilir — TEK kopya */
5609
+ const dup = dmState.dms.find(
5610
+ (d) => d.at === rec.at && d.from === rec.from && d.text === rec.text && dmThreadOf(d) === dmThreadOf(rec)
5611
+ );
5612
+ if (!dup) {
5613
+ dmState.dms.push(rec);
5614
+ if (dmState.dms.length > 400) dmState.dms.splice(0, dmState.dms.length - 400);
5615
+ }
5605
5616
  if (els.dmOverlay && !els.dmOverlay.hidden) renderDmModal();
5606
5617
  if ($('#dmRail') && !$('#dmRail').classList.contains('dm-hidden')) renderDmRail();
5607
5618
  return;
@@ -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);