nexo-brain 7.30.9 → 7.30.10
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/.claude-plugin/plugin.json +1 -1
- package/README.md +3 -1
- package/package.json +1 -1
- package/src/plugins/update.py +38 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexo-brain",
|
|
3
|
-
"version": "7.30.
|
|
3
|
+
"version": "7.30.10",
|
|
4
4
|
"description": "Local cognitive runtime for Claude Code \u2014 persistent memory, overnight learning, doctor diagnostics, personal scripts, recovery-aware jobs, startup preflight, and optional dashboard/power helper.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "NEXO Brain",
|
package/README.md
CHANGED
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
[Watch the overview video](https://nexo-brain.com/watch/) · [Watch on YouTube](https://www.youtube.com/watch?v=i2lkGhKyVqI) · [Open the infographic](https://nexo-brain.com/assets/nexo-brain-infographic-v5.png)
|
|
20
20
|
|
|
21
|
-
Version `7.30.
|
|
21
|
+
Version `7.30.10` is the current packaged-runtime line. Patch release over v7.30.9 - packaged `nexo update` now stamps the verified repair baseline after import verification, including same-version maintenance runs.
|
|
22
|
+
|
|
23
|
+
Previously in `7.30.9`: patch release over v7.30.8 - post-update self-heal now stamps a verified repair baseline, and doctor release gates distinguish current installation failures from historical operator/session drift.
|
|
22
24
|
|
|
23
25
|
Previously in `7.30.8`: patch release over v7.30.7 - Deep Sleep now folds parallel Codex sub-agents into their parent thread and Local Context stops the `entity_facts` cartesian blow-up that created runaway sidecar databases.
|
|
24
26
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexo-brain",
|
|
3
|
-
"version": "7.30.
|
|
3
|
+
"version": "7.30.10",
|
|
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",
|
package/src/plugins/update.py
CHANGED
|
@@ -152,6 +152,23 @@ NEXO_HOME = export_resolved_nexo_home()
|
|
|
152
152
|
DATA_DIR = paths.data_dir()
|
|
153
153
|
BACKUP_BASE = paths.backups_dir()
|
|
154
154
|
TECHNICAL_BACKUP_KEEP = 5
|
|
155
|
+
REPAIR_BASELINE_FILE = "last-repair-baseline.json"
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def _stamp_runtime_repair_baseline(source: str = "plugins.update") -> str:
|
|
159
|
+
operations_dir = NEXO_HOME / "operations"
|
|
160
|
+
operations_dir.mkdir(parents=True, exist_ok=True)
|
|
161
|
+
now = time.time()
|
|
162
|
+
payload = {
|
|
163
|
+
"last_repair_epoch": now,
|
|
164
|
+
"last_repair_at": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(now)),
|
|
165
|
+
"source": source,
|
|
166
|
+
"reason": "verified runtime repair baseline after update/post-sync",
|
|
167
|
+
}
|
|
168
|
+
(operations_dir / REPAIR_BASELINE_FILE).write_text(
|
|
169
|
+
json.dumps(payload, indent=2, ensure_ascii=False) + "\n"
|
|
170
|
+
)
|
|
171
|
+
return "runtime-repair-baseline"
|
|
155
172
|
|
|
156
173
|
|
|
157
174
|
def _env_int(name: str, default: int) -> int:
|
|
@@ -1454,6 +1471,13 @@ def _handle_packaged_update(progress_fn=None, *, include_clis: bool = True) -> s
|
|
|
1454
1471
|
verify_err = _verify_import()
|
|
1455
1472
|
if verify_err:
|
|
1456
1473
|
errors.append(f"verification: {verify_err}")
|
|
1474
|
+
repair_baseline_warning = None
|
|
1475
|
+
if not verify_err:
|
|
1476
|
+
try:
|
|
1477
|
+
_emit_progress(progress_fn, "Stamping runtime repair baseline...")
|
|
1478
|
+
_stamp_runtime_repair_baseline("plugins.update._handle_packaged_update")
|
|
1479
|
+
except Exception as exc:
|
|
1480
|
+
repair_baseline_warning = f"{exc.__class__.__name__}: {exc}"
|
|
1457
1481
|
|
|
1458
1482
|
hook_sync_warning = None
|
|
1459
1483
|
cron_sync_warning = None
|
|
@@ -1616,6 +1640,10 @@ def _handle_packaged_update(progress_fn=None, *, include_clis: bool = True) -> s
|
|
|
1616
1640
|
lines.append(" Clients: configured client targets synced")
|
|
1617
1641
|
else:
|
|
1618
1642
|
lines.append(f" WARNING: client sync: {client_sync_warning}")
|
|
1643
|
+
if not repair_baseline_warning:
|
|
1644
|
+
lines.append(" Repair baseline: updated")
|
|
1645
|
+
else:
|
|
1646
|
+
lines.append(f" WARNING: repair baseline: {repair_baseline_warning}")
|
|
1619
1647
|
if launchagent_reload_summary and launchagent_reload_summary.get("scanned"):
|
|
1620
1648
|
if not launchagent_reload_warning:
|
|
1621
1649
|
lines.append(
|
|
@@ -1765,6 +1793,12 @@ def handle_update(
|
|
|
1765
1793
|
if verify_err:
|
|
1766
1794
|
raise RuntimeError(f"Verification failed: {verify_err}")
|
|
1767
1795
|
steps_done.append("verify")
|
|
1796
|
+
try:
|
|
1797
|
+
_emit_progress(progress_fn, "Stamping runtime repair baseline...")
|
|
1798
|
+
_stamp_runtime_repair_baseline("plugins.update.handle_update")
|
|
1799
|
+
steps_done.append("runtime-repair-baseline")
|
|
1800
|
+
except Exception as e:
|
|
1801
|
+
steps_done.append(f"runtime-repair-baseline-warning:{e.__class__.__name__}")
|
|
1768
1802
|
|
|
1769
1803
|
# Step 8: Sync crons with manifest
|
|
1770
1804
|
cron_sync_result = ""
|
|
@@ -1929,6 +1963,8 @@ def handle_update(
|
|
|
1929
1963
|
trailing.insert(2 if len(trailing) >= 2 else len(trailing), " Crons: synced with manifest")
|
|
1930
1964
|
if "client-sync" in steps_done:
|
|
1931
1965
|
trailing.append(" Clients: configured client targets synced")
|
|
1966
|
+
if "runtime-repair-baseline" in steps_done:
|
|
1967
|
+
trailing.append(" Repair baseline: updated")
|
|
1932
1968
|
if trailing:
|
|
1933
1969
|
msg += "\n" + "\n".join(trailing)
|
|
1934
1970
|
return msg
|
|
@@ -1954,6 +1990,8 @@ def handle_update(
|
|
|
1954
1990
|
lines.extend(external_cli_lines)
|
|
1955
1991
|
if "client-sync" in steps_done:
|
|
1956
1992
|
lines.append(" Clients: configured client targets synced")
|
|
1993
|
+
if "runtime-repair-baseline" in steps_done:
|
|
1994
|
+
lines.append(" Repair baseline: updated")
|
|
1957
1995
|
if versioned_runtime_summary and versioned_runtime_summary.get("ok"):
|
|
1958
1996
|
lines.append(f" Runtime activation: core/current -> versions/{new_version}")
|
|
1959
1997
|
if version_prune_summary and version_prune_summary.get("pruned"):
|