nexo-brain 7.23.7 → 7.23.8

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,6 +1,6 @@
1
1
  {
2
2
  "name": "nexo-brain",
3
- "version": "7.23.7",
3
+ "version": "7.23.8",
4
4
  "mcpName": "io.github.wazionapps/nexo",
5
5
  "description": "NEXO Brain — Shared brain for AI agents. Persistent memory, semantic RAG, natural forgetting, metacognitive guard, trust scoring, 150+ MCP tools. Works with Claude Code, Codex, Claude Desktop & any MCP client. 100% local, free.",
6
6
  "homepage": "https://nexo-brain.com",
@@ -832,12 +832,15 @@ def resolve_restart_required(
832
832
  reason = ""
833
833
  client_action = ""
834
834
  marker_clients = dict(marker.get("clients") or {})
835
+ client_acknowledged = False
835
836
  fingerprint_usable = bool(installed_fp) and bool(process_fp) and process_fp != "unknown"
836
837
 
837
838
  if marker.get("required"):
838
- restart_required = True
839
- reason = "marker_required"
840
839
  client_action = str(marker_clients.get(client) or "")
840
+ client_acknowledged = bool(client and client_action == "ok")
841
+ if not client_acknowledged:
842
+ restart_required = True
843
+ reason = "marker_required"
841
844
  if marker.get("corrupt"):
842
845
  restart_required = True
843
846
  reason = "marker_corrupt"
@@ -847,7 +850,12 @@ def resolve_restart_required(
847
850
  # fingerprint change and therefore never reach this branch.
848
851
  restart_required = True
849
852
  reason = reason or "fingerprint_mismatch"
850
- elif marker.get("required") and marker_fp and (not process_fp or process_fp == "unknown"):
853
+ elif (
854
+ marker.get("required")
855
+ and not client_acknowledged
856
+ and marker_fp
857
+ and (not process_fp or process_fp == "unknown")
858
+ ):
851
859
  restart_required = True
852
860
  reason = reason or "process_fingerprint_missing"
853
861
  elif not fingerprint_usable and installed and process and installed != process:
@@ -856,7 +864,7 @@ def resolve_restart_required(
856
864
  # mismatch check so we never leave a stale process running unnoticed.
857
865
  restart_required = True
858
866
  reason = reason or "version_mismatch"
859
- elif client and client_action == "ok":
867
+ elif client_acknowledged:
860
868
  restart_required = False
861
869
  reason = ""
862
870