neuralos 3.3.5 → 3.3.7

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/bin/gybackend.cjs CHANGED
@@ -395968,8 +395968,29 @@ var ResourceMonitorService = class {
395968
395968
  sessions = /* @__PURE__ */ new Map();
395969
395969
  sourceKeyByTerminalId = /* @__PURE__ */ new Map();
395970
395970
  publisher = null;
395971
+ /** Extra listeners (UI window registry, triggers, observability). Fan-out so
395972
+ * later setPublisher callers cannot steal snapshots from earlier ones. */
395973
+ extraPublishers = [];
395971
395974
  setPublisher(publisher) {
395972
- this.publisher = publisher;
395975
+ if (!this.publisher) {
395976
+ this.publisher = publisher;
395977
+ return;
395978
+ }
395979
+ if (this.publisher === publisher) return;
395980
+ if (!this.extraPublishers.includes(publisher)) {
395981
+ this.extraPublishers.push(publisher);
395982
+ }
395983
+ }
395984
+ emitSnapshot(channel, data) {
395985
+ const pubs = [this.publisher, ...this.extraPublishers].filter(
395986
+ (p) => typeof p === "function"
395987
+ );
395988
+ for (const pub of pubs) {
395989
+ try {
395990
+ pub(channel, data);
395991
+ } catch {
395992
+ }
395993
+ }
395973
395994
  }
395974
395995
  start(terminalId, ownerId = "default", intervalMs) {
395975
395996
  const normalizedTerminalId = String(terminalId || "").trim();
@@ -396191,14 +396212,12 @@ var ResourceMonitorService = class {
396191
396212
  const sourceTerminalId = session.sourceTerminalId || terminalIds[0];
396192
396213
  const snapshot = await this.collectSnapshot(sourceTerminalId);
396193
396214
  session.lastCollectAt = Date.now();
396194
- if (this.publisher) {
396195
- terminalIds.forEach((terminalId) => {
396196
- this.publisher?.(
396197
- "monitor:snapshot",
396198
- terminalId === snapshot.terminalId ? snapshot : { ...snapshot, terminalId }
396199
- );
396200
- });
396201
- }
396215
+ terminalIds.forEach((terminalId) => {
396216
+ this.emitSnapshot(
396217
+ "monitor:snapshot",
396218
+ terminalId === snapshot.terminalId ? snapshot : { ...snapshot, terminalId }
396219
+ );
396220
+ });
396202
396221
  } finally {
396203
396222
  session.inFlight = false;
396204
396223
  }
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neuralos",
3
- "version": "3.3.5",
3
+ "version": "3.3.7",
4
4
  "description": "AI-native terminal & agentic-AI operations platform for Forward Deployed Engineers & SREs: AIOps closed-loop remediation, AI SRE, self-healing infrastructure, runbook automation, ChatOps; executes over SSH/WinRM/serial under policy with tamper-evident audit.",
5
5
  "keywords": [
6
6
  "forward-deployed-engineer",
Binary file