sync: 2026-03-17 08:00 — 21 files from Alexandria
Some checks failed
Lint & Format / detect (push) Failing after 36s
Monorepo Lint / lint-shell (push) Failing after 40s
Monorepo Lint / lint-js (push) Failing after 40s
Lint & Format / js-lint (push) Has been skipped
Lint & Format / py-lint (push) Has been skipped
Lint & Format / sh-lint (push) Has been skipped
Lint & Format / go-lint (push) Has been skipped
Some checks failed
Lint & Format / detect (push) Failing after 36s
Monorepo Lint / lint-shell (push) Failing after 40s
Monorepo Lint / lint-js (push) Failing after 40s
Lint & Format / js-lint (push) Has been skipped
Lint & Format / py-lint (push) Has been skipped
Lint & Format / sh-lint (push) Has been skipped
Lint & Format / go-lint (push) Has been skipped
RoadChain-SHA2048: 59e0f844fc760998 RoadChain-Identity: alexa@sovereign RoadChain-Full: 59e0f844fc760998d8a3ce5f7d219f21bf7a4b82472c28ebe3e1258438b6770dac3c13ca3f8a43275319408ec7847d36f0031322f7608066c4f8bdd225b2b127eb1c1f3d773ea645b9569eaf9d430766951c0613bf350f2db285cc35fccead7e4a9608b46fd8e057561a25705cf4cc5aaf9abedc4cce547df8008777c4af3b2f2578c2a0eb47489f660eb108414dd7f8d3ada3e2d4062e50cc1d29099f5fa3490e6e44a7216ed37cd761bc507e3d855558935931f27c19981f26c1d2d2c91a9b1b227e3ee7650ab885eaa69aabb856110557d98346a0807bacb36142c0b7fd1510158fdd5d9756f9f2e2d7f1d5d2b0ee8b1277025f8d9a9cafd9cfb536abf568
This commit is contained in:
@@ -1,50 +1,50 @@
|
||||
[2026-03-17 07:01:01] [BEAT] [alice] load=1.25 mem=3225/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:02:01] [BEAT] [alice] load=0.82 mem=3224/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:03:02] [BEAT] [alice] load=1.02 mem=3232/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:03:32] [BEAT] [alice] load=0.73 mem=3225/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:03:32] [BEAT] [alice] load=0.73 mem=3223/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:04:01] [BEAT] [alice] load=0.62 mem=3226/3794MB temp=33.1C disk=85%
|
||||
[2026-03-17 07:05:01] [BEAT] [alice] load=1.10 mem=3218/3794MB temp=35.5C disk=85%
|
||||
[2026-03-17 07:06:01] [BEAT] [alice] load=2.39 mem=3225/3794MB temp=33.6C disk=85%
|
||||
[2026-03-17 07:07:01] [BEAT] [alice] load=1.98 mem=3228/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:08:01] [BEAT] [alice] load=1.47 mem=3228/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:08:41] [BEAT] [alice] load=1.40 mem=3221/3794MB temp=37.5C disk=85%
|
||||
[2026-03-17 07:08:41] [BEAT] [alice] load=1.40 mem=3219/3794MB temp=36.0C disk=85%
|
||||
[2026-03-17 07:09:01] [BEAT] [alice] load=1.27 mem=3229/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:10:01] [FLEET] [alice] Starting cross-node health check
|
||||
[2026-03-17 07:10:01] [BEAT] [alice] load=0.91 mem=3222/3794MB temp=36.0C disk=85%
|
||||
[2026-03-17 07:10:02] [FLEET] [alice] octavia: UP temp=42C mem=2513MB disk=86%
|
||||
[2026-03-17 07:10:03] [FLEET] [alice] cecilia: UP temp=38C mem=1128MB disk=34%
|
||||
[2026-03-17 07:10:04] [FLEET] [alice] gematria: UP temp=C mem=4960MB disk=69%
|
||||
[2026-03-17 07:10:05] [FLEET] [alice] lucidia: UP temp=59C mem=2649MB disk=31%
|
||||
[2026-03-17 07:10:07] [FLEET] [alice] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:10:09] [FLEET] [alice] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:11:01] [BEAT] [alice] load=0.73 mem=3225/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:12:01] [BEAT] [alice] load=0.90 mem=3219/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:12:35] [DIAL] [alice] Switchboard unreachable
|
||||
[2026-03-17 07:13:01] [BEAT] [alice] load=0.88 mem=3228/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:13:47] [BEAT] [alice] load=0.81 mem=3226/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:13:47] [BEAT] [alice] load=0.81 mem=3225/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:14:01] [BEAT] [alice] load=0.71 mem=3230/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:15:02] [BEAT] [alice] load=1.30 mem=3222/3794MB temp=35.5C disk=85%
|
||||
[2026-03-17 07:15:47] [DIAL] [alice] Switchboard unreachable
|
||||
[2026-03-17 07:16:01] [BEAT] [alice] load=0.77 mem=3225/3794MB temp=33.6C disk=85%
|
||||
[2026-03-17 07:17:01] [BEAT] [alice] load=1.03 mem=3223/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:18:01] [BEAT] [alice] load=1.11 mem=3225/3794MB temp=33.1C disk=85%
|
||||
[2026-03-17 07:18:53] [BEAT] [alice] load=1.28 mem=3228/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:18:53] [BEAT] [alice] load=1.28 mem=3227/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:19:02] [BEAT] [alice] load=1.16 mem=3224/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:20:01] [FLEET] [alice] Starting cross-node health check
|
||||
[2026-03-17 07:20:01] [BEAT] [alice] load=0.76 mem=3219/3794MB temp=33.6C disk=85%
|
||||
[2026-03-17 07:20:02] [FLEET] [alice] octavia: UP temp=42C mem=2443MB disk=86%
|
||||
[2026-03-17 07:20:02] [FLEET] [alice] cecilia: UP temp=36C mem=956MB disk=34%
|
||||
[2026-03-17 07:20:04] [FLEET] [alice] gematria: UP temp=C mem=4952MB disk=69%
|
||||
[2026-03-17 07:20:05] [FLEET] [alice] lucidia: UP temp=62C mem=2632MB disk=31%
|
||||
[2026-03-17 07:20:07] [FLEET] [alice] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:20:09] [FLEET] [alice] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:21:01] [BEAT] [alice] load=0.87 mem=3226/3794MB temp=33.1C disk=85%
|
||||
[2026-03-17 07:22:04] [BEAT] [alice] load=1.36 mem=3231/3794MB temp=37.0C disk=85%
|
||||
[2026-03-17 07:23:01] [BEAT] [alice] load=1.50 mem=3225/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:24:01] [BEAT] [alice] load=0.95 mem=3224/3794MB temp=36.0C disk=85%
|
||||
[2026-03-17 07:24:57] [BEAT] [alice] load=1.05 mem=3226/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:24:57] [BEAT] [alice] load=1.05 mem=3225/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:33:02] [BEAT] [alice] load=0.97 mem=3225/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:34:01] [BEAT] [alice] load=1.62 mem=3220/3794MB temp=37.5C disk=85%
|
||||
[2026-03-17 07:35:01] [BEAT] [alice] load=0.86 mem=3222/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:35:28] [BEAT] [alice] load=0.85 mem=3217/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:35:28] [BEAT] [alice] load=0.85 mem=3215/3794MB temp=35.5C disk=85%
|
||||
[2026-03-17 07:36:02] [BEAT] [alice] load=0.98 mem=3228/3794MB temp=36.0C disk=85%
|
||||
[2026-03-17 07:37:18] [BEAT] [alice] load=3.25 mem=3220/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:38:01] [BEAT] [alice] load=3.83 mem=3227/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:39:01] [BEAT] [alice] load=1.95 mem=3224/3794MB temp=33.1C disk=85%
|
||||
[2026-03-17 07:40:01] [FLEET] [alice] Starting cross-node health check
|
||||
[2026-03-17 07:40:02] [BEAT] [alice] load=1.56 mem=3218/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:40:02] [FLEET] [alice] octavia: UP temp=45C mem=2114MB disk=87%
|
||||
[2026-03-17 07:40:03] [FLEET] [alice] cecilia: UP temp=35C mem=986MB disk=34%
|
||||
[2026-03-17 07:40:04] [FLEET] [alice] gematria: UP temp=C mem=4839MB disk=69%
|
||||
[2026-03-17 07:40:05] [FLEET] [alice] lucidia: UP temp=56C mem=2641MB disk=31%
|
||||
[2026-03-17 07:40:06] [FLEET] [alice] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:40:08] [FLEET] [alice] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:40:33] [BEAT] [alice] load=1.64 mem=3217/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:40:33] [BEAT] [alice] load=1.64 mem=3226/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:41:01] [BEAT] [alice] load=1.15 mem=3217/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:42:01] [BEAT] [alice] load=1.14 mem=3223/3794MB temp=33.1C disk=85%
|
||||
[2026-03-17 07:42:36] [DIAL] [alice] Switchboard unreachable
|
||||
[2026-03-17 07:43:01] [BEAT] [alice] load=0.83 mem=3221/3794MB temp=33.6C disk=85%
|
||||
[2026-03-17 07:44:01] [BEAT] [alice] load=0.98 mem=3223/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:45:02] [BEAT] [alice] load=0.95 mem=3216/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:45:37] [BEAT] [alice] load=1.84 mem=3212/3794MB temp=37.5C disk=85%
|
||||
[2026-03-17 07:45:37] [BEAT] [alice] load=1.84 mem=3210/3794MB temp=38.0C disk=85%
|
||||
[2026-03-17 07:45:47] [DIAL] [alice] Switchboard unreachable
|
||||
[2026-03-17 07:46:02] [BEAT] [alice] load=1.46 mem=3223/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:47:01] [BEAT] [alice] load=0.73 mem=3224/3794MB temp=33.1C disk=85%
|
||||
[2026-03-17 07:48:01] [BEAT] [alice] load=1.19 mem=3225/3794MB temp=35.0C disk=85%
|
||||
[2026-03-17 07:49:01] [BEAT] [alice] load=1.44 mem=3223/3794MB temp=33.1C disk=85%
|
||||
[2026-03-17 07:50:01] [FLEET] [alice] Starting cross-node health check
|
||||
[2026-03-17 07:50:01] [BEAT] [alice] load=1.10 mem=3217/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:50:03] [FLEET] [alice] octavia: UP temp=44C mem=1955MB disk=87%
|
||||
[2026-03-17 07:50:03] [FLEET] [alice] cecilia: UP temp=35C mem=934MB disk=34%
|
||||
[2026-03-17 07:50:05] [FLEET] [alice] gematria: UP temp=C mem=4921MB disk=69%
|
||||
[2026-03-17 07:50:05] [FLEET] [alice] lucidia: UP temp=55C mem=2639MB disk=31%
|
||||
[2026-03-17 07:50:07] [FLEET] [alice] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:50:09] [FLEET] [alice] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:50:48] [BEAT] [alice] load=0.83 mem=3222/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:50:48] [BEAT] [alice] load=0.83 mem=3222/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:51:01] [BEAT] [alice] load=0.71 mem=3221/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:52:01] [BEAT] [alice] load=1.04 mem=3222/3794MB temp=33.6C disk=85%
|
||||
[2026-03-17 07:53:02] [BEAT] [alice] load=1.08 mem=3214/3794MB temp=34.1C disk=85%
|
||||
[2026-03-17 07:54:01] [BEAT] [alice] load=1.02 mem=3225/3794MB temp=32.1C disk=85%
|
||||
[2026-03-17 07:55:01] [BEAT] [alice] load=0.81 mem=3216/3794MB temp=34.6C disk=85%
|
||||
[2026-03-17 07:56:01] [BEAT] [alice] load=1.14 mem=3223/3794MB temp=32.6C disk=85%
|
||||
[2026-03-17 07:56:02] [BEAT] [alice] load=1.14 mem=3222/3794MB temp=32.1C disk=85%
|
||||
[2026-03-17 07:56:02] [BEAT] [alice] load=1.14 mem=3220/3794MB temp=33.1C disk=85%
|
||||
|
||||
@@ -36,3 +36,4 @@
|
||||
*/5 * * * * /opt/blackroad/bin/blackroad-pissed.sh
|
||||
@reboot /opt/blackroad/bin/blackroad-boot-hello.sh
|
||||
*/30 * * * * /home/pi/blackroad-site-tester.sh --quiet >> /tmp/br-tester.log 2>&1
|
||||
*/5 * * * * /home/pi/uptime-monitor.sh
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"node":"alice","ts":"2026-03-17T12:30:01Z","load":1.13,"mem_free_mb":3220,"mem_total_mb":3794,"temp_c":36.5,"disk_pct":85,"throttle":"0x0"}
|
||||
{"node":"alice","ts":"2026-03-17T12:56:02Z","load":1.14,"mem_free_mb":3220,"mem_total_mb":3794,"temp_c":33.1,"disk_pct":85,"throttle":"0x0"}
|
||||
|
||||
@@ -13,7 +13,7 @@ LISTEN 0 511 0.0.0.0:8080 0.0.0.0:*
|
||||
LISTEN 0 511 0.0.0.0:8083 0.0.0.0:* users:(("node /usr/lib/n",pid=3707,fd=20))
|
||||
LISTEN 0 5 0.0.0.0:8184 0.0.0.0:*
|
||||
LISTEN 0 4096 127.0.0.1:9050 0.0.0.0:*
|
||||
LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=32680,fd=5))
|
||||
LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=31226,fd=5))
|
||||
LISTEN 0 200 0.0.0.0:443 0.0.0.0:*
|
||||
LISTEN 0 128 127.0.0.1:11434 0.0.0.0:*
|
||||
LISTEN 0 32 0.0.0.0:53 0.0.0.0:*
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"hostname": "alice",
|
||||
"ts": "2026-03-17T12:24:58Z",
|
||||
"uptime_seconds": 32367,
|
||||
"ts": "2026-03-17T12:56:03Z",
|
||||
"uptime_seconds": 34233,
|
||||
"kernel": "6.1.21-v8+",
|
||||
"temp_c": 36.5,
|
||||
"temp_c": 34.1,
|
||||
"memory_mb": {
|
||||
"total": 3794,
|
||||
"used": 483,
|
||||
"free": 3208
|
||||
"used": 468,
|
||||
"free": 3222
|
||||
},
|
||||
"disk": "12G/15G (85%)",
|
||||
"load": [
|
||||
1.05,
|
||||
1.14,
|
||||
1.14
|
||||
1.13,
|
||||
1.15,
|
||||
1.22
|
||||
],
|
||||
"ollama_models": [
|
||||
"lucidia3b:latest",
|
||||
@@ -26,5 +26,5 @@
|
||||
],
|
||||
"throttle": "0x0",
|
||||
"voltage": "0.9160V",
|
||||
"services_running": 48
|
||||
"services_running": 47
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"node":"anastasia","status":"down","ts":"2026-03-17T12:30:01Z"}
|
||||
{"node":"anastasia","status":"down","ts":"2026-03-17T12:56:03Z"}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"node":"aria","status":"down","ts":"2026-03-17T12:30:01Z"}
|
||||
{"node":"aria","status":"down","ts":"2026-03-17T12:56:03Z"}
|
||||
|
||||
@@ -1,50 +1,50 @@
|
||||
[2026-03-17 07:03:32] [BEAT] [cecilia] load=0.21 mem=938/8062MB temp=38.6C disk=34%
|
||||
[2026-03-17 07:04:01] [BEAT] [cecilia] load=0.25 mem=941/8062MB temp=37.0C disk=34%
|
||||
[2026-03-17 07:05:01] [BEAT] [cecilia] load=0.32 mem=913/8062MB temp=38.6C disk=34%
|
||||
[2026-03-17 07:05:01] [HEAL] [cecilia] High swap: 1397MB — clearing inactive
|
||||
[2026-03-17 07:06:01] [BEAT] [cecilia] load=0.33 mem=902/8062MB temp=37.5C disk=34%
|
||||
[2026-03-17 07:07:01] [BEAT] [cecilia] load=0.36 mem=902/8062MB temp=36.4C disk=34%
|
||||
[2026-03-17 07:08:01] [BEAT] [cecilia] load=0.37 mem=902/8062MB temp=37.0C disk=34%
|
||||
[2026-03-17 07:08:40] [BEAT] [cecilia] load=0.33 mem=894/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:08:40] [BEAT] [cecilia] load=0.33 mem=891/8062MB temp=38.0C disk=34%
|
||||
[2026-03-17 07:09:01] [BEAT] [cecilia] load=0.23 mem=894/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:10:01] [FLEET] [cecilia] Starting cross-node health check
|
||||
[2026-03-17 07:10:01] [BEAT] [cecilia] load=0.87 mem=1176/8062MB temp=37.5C disk=34%
|
||||
[2026-03-17 07:10:01] [HEAL] [cecilia] High swap: 2047MB — clearing inactive
|
||||
[2026-03-17 07:10:02] [FLEET] [cecilia] alice: UP temp=34C mem=3218MB disk=85%
|
||||
[2026-03-17 07:10:03] [FLEET] [cecilia] octavia: UP temp=42C mem=2509MB disk=86%
|
||||
[2026-03-17 07:10:04] [FLEET] [cecilia] gematria: UP temp=C mem=4960MB disk=69%
|
||||
[2026-03-17 07:10:05] [FLEET] [cecilia] lucidia: UP temp=59C mem=2649MB disk=31%
|
||||
[2026-03-17 07:10:07] [FLEET] [cecilia] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:10:09] [FLEET] [cecilia] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:11:01] [BEAT] [cecilia] load=0.52 mem=1264/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:12:01] [BEAT] [cecilia] load=0.47 mem=1263/8062MB temp=36.4C disk=34%
|
||||
[2026-03-17 07:12:36] [DIAL] [cecilia] Switchboard unreachable
|
||||
[2026-03-17 07:13:01] [BEAT] [cecilia] load=1.21 mem=1268/8062MB temp=37.0C disk=34%
|
||||
[2026-03-17 07:13:47] [BEAT] [cecilia] load=1.49 mem=1267/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:13:47] [BEAT] [cecilia] load=1.49 mem=1266/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:14:01] [BEAT] [cecilia] load=1.37 mem=1267/8062MB temp=36.4C disk=34%
|
||||
[2026-03-17 07:15:01] [BEAT] [cecilia] load=0.99 mem=1227/8062MB temp=37.5C disk=34%
|
||||
[2026-03-17 07:15:01] [HEAL] [cecilia] High swap: 2046MB — clearing inactive
|
||||
[2026-03-17 07:15:46] [DIAL] [cecilia] Switchboard unreachable
|
||||
[2026-03-17 07:16:01] [BEAT] [cecilia] load=0.53 mem=940/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:17:01] [BEAT] [cecilia] load=0.43 mem=944/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:18:01] [BEAT] [cecilia] load=0.28 mem=943/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:18:52] [BEAT] [cecilia] load=0.18 mem=934/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:18:53] [BEAT] [cecilia] load=0.18 mem=932/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:19:01] [BEAT] [cecilia] load=0.15 mem=929/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:20:01] [FLEET] [cecilia] Starting cross-node health check
|
||||
[2026-03-17 07:20:02] [BEAT] [cecilia] load=0.33 mem=902/8062MB temp=36.4C disk=34%
|
||||
[2026-03-17 07:20:02] [HEAL] [cecilia] High swap: 2044MB — clearing inactive
|
||||
[2026-03-17 07:20:02] [FLEET] [cecilia] alice: UP temp=35C mem=3221MB disk=85%
|
||||
[2026-03-17 07:20:03] [FLEET] [cecilia] octavia: UP temp=43C mem=2496MB disk=86%
|
||||
[2026-03-17 07:20:04] [FLEET] [cecilia] gematria: UP temp=C mem=4952MB disk=69%
|
||||
[2026-03-17 07:20:05] [FLEET] [cecilia] lucidia: UP temp=62C mem=2632MB disk=31%
|
||||
[2026-03-17 07:20:07] [FLEET] [cecilia] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:20:09] [FLEET] [cecilia] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:21:01] [BEAT] [cecilia] load=0.40 mem=991/8062MB temp=36.4C disk=34%
|
||||
[2026-03-17 07:22:01] [BEAT] [cecilia] load=0.32 mem=990/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:23:01] [BEAT] [cecilia] load=0.42 mem=985/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:24:01] [BEAT] [cecilia] load=0.49 mem=986/8062MB temp=34.2C disk=34%
|
||||
[2026-03-17 07:24:56] [BEAT] [cecilia] load=0.29 mem=982/8062MB temp=36.4C disk=34%
|
||||
[2026-03-17 07:24:56] [BEAT] [cecilia] load=0.29 mem=980/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:35:28] [BEAT] [cecilia] load=0.98 mem=1031/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:36:01] [BEAT] [cecilia] load=0.66 mem=1043/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:37:02] [BEAT] [cecilia] load=0.96 mem=1039/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:38:01] [BEAT] [cecilia] load=0.79 mem=1046/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:39:01] [BEAT] [cecilia] load=0.52 mem=1047/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:40:01] [FLEET] [cecilia] Starting cross-node health check
|
||||
[2026-03-17 07:40:01] [BEAT] [cecilia] load=0.34 mem=1015/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:40:01] [HEAL] [cecilia] High swap: 2038MB — clearing inactive
|
||||
[2026-03-17 07:40:02] [FLEET] [cecilia] alice: UP temp=36C mem=3218MB disk=85%
|
||||
[2026-03-17 07:40:02] [FLEET] [cecilia] octavia: UP temp=45C mem=2113MB disk=87%
|
||||
[2026-03-17 07:40:03] [FLEET] [cecilia] gematria: UP temp=C mem=4839MB disk=69%
|
||||
[2026-03-17 07:40:04] [FLEET] [cecilia] lucidia: UP temp=57C mem=2639MB disk=31%
|
||||
[2026-03-17 07:40:06] [FLEET] [cecilia] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:40:08] [FLEET] [cecilia] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:40:32] [BEAT] [cecilia] load=0.32 mem=1047/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:40:32] [BEAT] [cecilia] load=0.32 mem=1045/8062MB temp=34.2C disk=34%
|
||||
[2026-03-17 07:41:01] [BEAT] [cecilia] load=0.21 mem=1050/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:42:01] [BEAT] [cecilia] load=0.36 mem=1033/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:42:42] [DIAL] [cecilia] Switchboard unreachable
|
||||
[2026-03-17 07:43:01] [BEAT] [cecilia] load=0.21 mem=1046/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:44:01] [BEAT] [cecilia] load=0.23 mem=1043/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:45:01] [BEAT] [cecilia] load=0.56 mem=1005/8062MB temp=37.0C disk=34%
|
||||
[2026-03-17 07:45:01] [HEAL] [cecilia] High swap: 2038MB — clearing inactive
|
||||
[2026-03-17 07:45:37] [BEAT] [cecilia] load=0.97 mem=920/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:45:37] [BEAT] [cecilia] load=0.97 mem=916/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:45:46] [DIAL] [cecilia] Switchboard unreachable
|
||||
[2026-03-17 07:46:01] [BEAT] [cecilia] load=0.90 mem=938/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:47:01] [BEAT] [cecilia] load=0.76 mem=925/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:48:01] [BEAT] [cecilia] load=0.44 mem=915/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:49:01] [BEAT] [cecilia] load=0.21 mem=912/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:50:01] [FLEET] [cecilia] Starting cross-node health check
|
||||
[2026-03-17 07:50:01] [BEAT] [cecilia] load=0.36 mem=877/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:50:01] [HEAL] [cecilia] High swap: 2038MB — clearing inactive
|
||||
[2026-03-17 07:50:03] [FLEET] [cecilia] alice: UP temp=35C mem=3218MB disk=85%
|
||||
[2026-03-17 07:50:03] [FLEET] [cecilia] octavia: UP temp=46C mem=1942MB disk=87%
|
||||
[2026-03-17 07:50:04] [FLEET] [cecilia] gematria: UP temp=C mem=4918MB disk=69%
|
||||
[2026-03-17 07:50:05] [FLEET] [cecilia] lucidia: UP temp=53C mem=2639MB disk=31%
|
||||
[2026-03-17 07:50:07] [FLEET] [cecilia] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:50:09] [FLEET] [cecilia] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:50:47] [BEAT] [cecilia] load=0.37 mem=978/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:50:47] [BEAT] [cecilia] load=0.37 mem=980/8062MB temp=34.2C disk=34%
|
||||
[2026-03-17 07:51:01] [BEAT] [cecilia] load=0.51 mem=970/8062MB temp=35.9C disk=34%
|
||||
[2026-03-17 07:52:01] [BEAT] [cecilia] load=0.41 mem=969/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:53:01] [BEAT] [cecilia] load=0.29 mem=961/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:54:01] [BEAT] [cecilia] load=0.22 mem=954/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:55:01] [BEAT] [cecilia] load=1.67 mem=918/8062MB temp=35.3C disk=34%
|
||||
[2026-03-17 07:55:01] [HEAL] [cecilia] High swap: 2038MB — clearing inactive
|
||||
[2026-03-17 07:56:01] [BEAT] [cecilia] load=1.47 mem=954/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:56:02] [BEAT] [cecilia] load=1.47 mem=949/8062MB temp=34.8C disk=34%
|
||||
[2026-03-17 07:56:02] [BEAT] [cecilia] load=1.47 mem=948/8062MB temp=35.3C disk=34%
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"node":"cecilia","ts":"2026-03-17T12:30:00Z","load":0.34,"mem_free_mb":958,"mem_total_mb":8062,"temp_c":35.9,"disk_pct":34,"throttle":"N/A"}
|
||||
{"node":"cecilia","ts":"2026-03-17T12:56:02Z","load":1.47,"mem_free_mb":948,"mem_total_mb":8062,"temp_c":35.3,"disk_pct":34,"throttle":"N/A"}
|
||||
|
||||
@@ -16,7 +16,7 @@ LISTEN 0 4096 127.0.0.1:41511 0.0.0.0:*
|
||||
LISTEN 0 5 0.0.0.0:4010 0.0.0.0:* users:(("python3",pid=1034,fd=3))
|
||||
LISTEN 0 511 0.0.0.0:8080 0.0.0.0:*
|
||||
LISTEN 0 5 0.0.0.0:8089 0.0.0.0:* users:(("python3",pid=336021,fd=5))
|
||||
LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=836650,fd=5))
|
||||
LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=906561,fd=5))
|
||||
LISTEN 0 4096 127.0.0.1:8088 0.0.0.0:*
|
||||
LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:*
|
||||
LISTEN 0 5 0.0.0.0:11435 0.0.0.0:* users:(("python3",pid=1403,fd=3))
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
{
|
||||
"hostname": "cecilia",
|
||||
"ts": "2026-03-17T12:30:01Z",
|
||||
"uptime_seconds": 32711,
|
||||
"ts": "2026-03-17T12:56:03Z",
|
||||
"uptime_seconds": 34272,
|
||||
"kernel": "6.12.62+rpt-rpi-2712",
|
||||
"temp_c": 34.8,
|
||||
"temp_c": 35.3,
|
||||
"memory_mb": {
|
||||
"total": 8062,
|
||||
"used": 7150,
|
||||
"free": 912
|
||||
"used": 7119,
|
||||
"free": 943
|
||||
},
|
||||
"disk": "144G/457G (34%)",
|
||||
"load": [
|
||||
0.31,
|
||||
0.32,
|
||||
0.71
|
||||
1.47,
|
||||
0.89,
|
||||
0.69
|
||||
],
|
||||
"ollama_models": [
|
||||
"amundson:latest",
|
||||
"qwen2.5:3b",
|
||||
"cecilia3b:latest",
|
||||
"qwen2.5:3b",
|
||||
"cecilia:latest",
|
||||
"deepseek-r1:1.5b",
|
||||
"nomic-embed-text:latest",
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"node":"gematria","status":"down","ts":"2026-03-17T12:30:01Z"}
|
||||
{"node":"gematria","status":"down","ts":"2026-03-17T12:56:03Z"}
|
||||
|
||||
@@ -1,50 +1,50 @@
|
||||
[2026-03-17 07:03:32] [BEAT] [lucidia] load=2.96 mem=2654/8063MB temp=49.0C disk=31%
|
||||
[2026-03-17 07:04:01] [BEAT] [lucidia] load=4.76 mem=2696/8063MB temp=59.5C disk=31%
|
||||
[2026-03-17 07:05:01] [BEAT] [lucidia] load=4.80 mem=2697/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:05:01] [HEAL] [lucidia] High swap: 668MB — clearing inactive
|
||||
[2026-03-17 07:06:01] [BEAT] [lucidia] load=4.52 mem=2689/8063MB temp=61.1C disk=31%
|
||||
[2026-03-17 07:07:01] [BEAT] [lucidia] load=2.52 mem=2710/8063MB temp=51.8C disk=31%
|
||||
[2026-03-17 07:08:01] [BEAT] [lucidia] load=3.71 mem=2663/8063MB temp=51.8C disk=31%
|
||||
[2026-03-17 07:08:40] [BEAT] [lucidia] load=16.93 mem=2648/8063MB temp=57.3C disk=31%
|
||||
[2026-03-17 07:08:41] [BEAT] [lucidia] load=16.93 mem=2648/8063MB temp=56.8C disk=31%
|
||||
[2026-03-17 07:09:20] [BEAT] [lucidia] load=28.23 mem=2655/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:10:01] [FLEET] [lucidia] Starting cross-node health check
|
||||
[2026-03-17 07:10:01] [BEAT] [lucidia] load=15.74 mem=2647/8063MB temp=58.4C disk=31%
|
||||
[2026-03-17 07:10:02] [HEAL] [lucidia] High swap: 668MB — clearing inactive
|
||||
[2026-03-17 07:10:03] [FLEET] [lucidia] alice: UP temp=34C mem=3218MB disk=85%
|
||||
[2026-03-17 07:10:05] [FLEET] [lucidia] octavia: DOWN (no ping response)
|
||||
[2026-03-17 07:10:05] [FLEET] [lucidia] cecilia: UP temp=38C mem=1142MB disk=34%
|
||||
[2026-03-17 07:10:07] [FLEET] [lucidia] gematria: UP temp=C mem=4966MB disk=69%
|
||||
[2026-03-17 07:10:09] [FLEET] [lucidia] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:10:11] [FLEET] [lucidia] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:10:50] [DIAL] [lucidia] Switchboard unreachable
|
||||
[2026-03-17 07:11:01] [BEAT] [lucidia] load=7.46 mem=2692/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:12:01] [BEAT] [lucidia] load=4.70 mem=2682/8063MB temp=53.5C disk=31%
|
||||
[2026-03-17 07:13:01] [BEAT] [lucidia] load=3.09 mem=2673/8063MB temp=60.0C disk=31%
|
||||
[2026-03-17 07:13:47] [BEAT] [lucidia] load=4.16 mem=2646/8063MB temp=56.8C disk=31%
|
||||
[2026-03-17 07:13:47] [BEAT] [lucidia] load=4.16 mem=2644/8063MB temp=59.0C disk=31%
|
||||
[2026-03-17 07:14:01] [BEAT] [lucidia] load=3.45 mem=2668/8063MB temp=55.6C disk=31%
|
||||
[2026-03-17 07:15:01] [BEAT] [lucidia] load=2.69 mem=2625/8063MB temp=61.1C disk=31%
|
||||
[2026-03-17 07:15:01] [HEAL] [lucidia] High swap: 667MB — clearing inactive
|
||||
[2026-03-17 07:15:46] [DIAL] [lucidia] Switchboard unreachable
|
||||
[2026-03-17 07:16:01] [BEAT] [lucidia] load=1.78 mem=2656/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:17:01] [BEAT] [lucidia] load=1.75 mem=2678/8063MB temp=54.5C disk=31%
|
||||
[2026-03-17 07:19:53] [BEAT] [lucidia] load=56.02 mem=2728/8063MB temp=61.7C disk=31%
|
||||
[2026-03-17 07:19:53] [BEAT] [lucidia] load=56.02 mem=2714/8063MB temp=62.2C disk=31%
|
||||
[2026-03-17 07:19:53] [BEAT] [lucidia] load=52.33 mem=2685/8063MB temp=60.6C disk=31%
|
||||
[2026-03-17 07:19:53] [BEAT] [lucidia] load=52.33 mem=2684/8063MB temp=61.1C disk=31%
|
||||
[2026-03-17 07:20:01] [FLEET] [lucidia] Starting cross-node health check
|
||||
[2026-03-17 07:20:01] [BEAT] [lucidia] load=48.70 mem=2660/8063MB temp=60.6C disk=31%
|
||||
[2026-03-17 07:20:01] [HEAL] [lucidia] High swap: 665MB — clearing inactive
|
||||
[2026-03-17 07:20:02] [FLEET] [lucidia] alice: UP temp=35C mem=3219MB disk=85%
|
||||
[2026-03-17 07:20:04] [FLEET] [lucidia] octavia: DOWN (no ping response)
|
||||
[2026-03-17 07:20:05] [FLEET] [lucidia] cecilia: UP temp=37C mem=961MB disk=34%
|
||||
[2026-03-17 07:20:06] [FLEET] [lucidia] gematria: UP temp=C mem=4956MB disk=69%
|
||||
[2026-03-17 07:20:08] [FLEET] [lucidia] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:20:10] [FLEET] [lucidia] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:21:29] [BEAT] [lucidia] load=26.79 mem=2700/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:22:01] [BEAT] [lucidia] load=17.67 mem=2650/8063MB temp=55.6C disk=31%
|
||||
[2026-03-17 07:23:01] [BEAT] [lucidia] load=7.12 mem=2698/8063MB temp=60.0C disk=31%
|
||||
[2026-03-17 07:24:01] [BEAT] [lucidia] load=5.33 mem=2697/8063MB temp=58.4C disk=31%
|
||||
[2026-03-17 07:24:57] [BEAT] [lucidia] load=3.18 mem=2680/8063MB temp=56.8C disk=31%
|
||||
[2026-03-17 07:24:57] [BEAT] [lucidia] load=3.18 mem=2679/8063MB temp=57.9C disk=31%
|
||||
[2026-03-17 07:35:28] [BEAT] [lucidia] load=2.44 mem=2670/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:35:28] [BEAT] [lucidia] load=2.44 mem=2669/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:36:01] [BEAT] [lucidia] load=2.46 mem=2706/8063MB temp=60.6C disk=31%
|
||||
[2026-03-17 07:37:01] [BEAT] [lucidia] load=1.70 mem=2685/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:38:01] [BEAT] [lucidia] load=3.35 mem=2669/8063MB temp=63.4C disk=31%
|
||||
[2026-03-17 07:39:01] [BEAT] [lucidia] load=2.45 mem=2707/8063MB temp=54.0C disk=31%
|
||||
[2026-03-17 07:40:01] [FLEET] [lucidia] Starting cross-node health check
|
||||
[2026-03-17 07:40:01] [BEAT] [lucidia] load=3.07 mem=2662/8063MB temp=56.2C disk=31%
|
||||
[2026-03-17 07:40:01] [HEAL] [lucidia] High swap: 664MB — clearing inactive
|
||||
[2026-03-17 07:40:02] [FLEET] [lucidia] alice: UP temp=34C mem=3212MB disk=85%
|
||||
[2026-03-17 07:40:04] [FLEET] [lucidia] octavia: DOWN (no ping response)
|
||||
[2026-03-17 07:40:05] [FLEET] [lucidia] cecilia: UP temp=36C mem=996MB disk=34%
|
||||
[2026-03-17 07:40:06] [FLEET] [lucidia] gematria: UP temp=C mem=4839MB disk=69%
|
||||
[2026-03-17 07:40:08] [FLEET] [lucidia] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:40:10] [FLEET] [lucidia] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:40:32] [BEAT] [lucidia] load=1.96 mem=2644/8063MB temp=54.5C disk=31%
|
||||
[2026-03-17 07:40:32] [BEAT] [lucidia] load=1.96 mem=2643/8063MB temp=54.5C disk=31%
|
||||
[2026-03-17 07:40:53] [DIAL] [lucidia] Switchboard unreachable
|
||||
[2026-03-17 07:41:01] [BEAT] [lucidia] load=2.20 mem=2679/8063MB temp=61.1C disk=31%
|
||||
[2026-03-17 07:42:01] [BEAT] [lucidia] load=1.28 mem=2680/8063MB temp=53.5C disk=31%
|
||||
[2026-03-17 07:43:01] [BEAT] [lucidia] load=3.38 mem=2685/8063MB temp=63.4C disk=31%
|
||||
[2026-03-17 07:44:01] [BEAT] [lucidia] load=2.12 mem=2681/8063MB temp=53.5C disk=31%
|
||||
[2026-03-17 07:45:24] [BEAT] [lucidia] load=4.76 mem=2641/8063MB temp=55.6C disk=31%
|
||||
[2026-03-17 07:45:26] [HEAL] [lucidia] High swap: 664MB — clearing inactive
|
||||
[2026-03-17 07:46:02] [BEAT] [lucidia] load=33.31 mem=2679/8063MB temp=51.8C disk=31%
|
||||
[2026-03-17 07:46:10] [DIAL] [lucidia] Switchboard unreachable
|
||||
[2026-03-17 07:47:01] [BEAT] [lucidia] load=14.72 mem=2651/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:48:01] [BEAT] [lucidia] load=9.19 mem=2654/8063MB temp=63.4C disk=31%
|
||||
[2026-03-17 07:49:01] [BEAT] [lucidia] load=5.29 mem=2668/8063MB temp=55.1C disk=31%
|
||||
[2026-03-17 07:50:01] [FLEET] [lucidia] Starting cross-node health check
|
||||
[2026-03-17 07:50:01] [BEAT] [lucidia] load=2.92 mem=2643/8063MB temp=56.8C disk=31%
|
||||
[2026-03-17 07:50:01] [HEAL] [lucidia] High swap: 664MB — clearing inactive
|
||||
[2026-03-17 07:50:02] [FLEET] [lucidia] alice: UP temp=34C mem=3218MB disk=85%
|
||||
[2026-03-17 07:50:04] [FLEET] [lucidia] octavia: DOWN (no ping response)
|
||||
[2026-03-17 07:50:05] [FLEET] [lucidia] cecilia: UP temp=36C mem=935MB disk=34%
|
||||
[2026-03-17 07:50:06] [FLEET] [lucidia] gematria: UP temp=C mem=4913MB disk=69%
|
||||
[2026-03-17 07:50:08] [FLEET] [lucidia] aria: DOWN (no ping response)
|
||||
[2026-03-17 07:50:10] [FLEET] [lucidia] anastasia: DOWN (no ping response)
|
||||
[2026-03-17 07:50:59] [BEAT] [lucidia] load=11.98 mem=2672/8063MB temp=56.2C disk=31%
|
||||
[2026-03-17 07:50:59] [BEAT] [lucidia] load=11.98 mem=2674/8063MB temp=54.5C disk=31%
|
||||
[2026-03-17 07:51:02] [BEAT] [lucidia] load=11.58 mem=2646/8063MB temp=56.8C disk=31%
|
||||
[2026-03-17 07:52:03] [BEAT] [lucidia] load=16.34 mem=2630/8063MB temp=52.9C disk=31%
|
||||
[2026-03-17 07:53:01] [BEAT] [lucidia] load=8.21 mem=2649/8063MB temp=61.1C disk=31%
|
||||
[2026-03-17 07:54:01] [BEAT] [lucidia] load=3.99 mem=2677/8063MB temp=51.8C disk=31%
|
||||
[2026-03-17 07:55:01] [BEAT] [lucidia] load=2.67 mem=2674/8063MB temp=51.2C disk=31%
|
||||
[2026-03-17 07:55:01] [HEAL] [lucidia] High swap: 664MB — clearing inactive
|
||||
[2026-03-17 07:55:54] [DIAL] [lucidia] Switchboard unreachable
|
||||
[2026-03-17 07:56:32] [BEAT] [lucidia] load=22.77 mem=2670/8063MB temp=45.2C disk=31%
|
||||
[2026-03-17 07:56:33] [BEAT] [lucidia] load=22.77 mem=2622/8063MB temp=49.6C disk=31%
|
||||
[2026-03-17 07:56:33] [BEAT] [lucidia] load=22.77 mem=2619/8063MB temp=49.6C disk=31%
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
road-pdns Up 7 hours
|
||||
road-pdns-admin Up 7 hours (healthy)
|
||||
road-pdns Up 8 hours
|
||||
road-pdns-admin Up 8 hours (healthy)
|
||||
road-dns-db Up 8 hours
|
||||
blackroad-gitea Up 9 hours
|
||||
roadauth Up 9 hours
|
||||
roadapi Up 9 hours
|
||||
blackroad-edge-agent Up 9 hours
|
||||
blackroad.systems Up 9 hours
|
||||
blackroadai.com Up 9 hours
|
||||
blackroad-auth-gateway Up 9 hours
|
||||
blackroad-metaverse Up 9 hours
|
||||
blackroad-os Up 9 hours
|
||||
blackroad-os-carpool Up 9 hours
|
||||
pi-my-agent-1 Up 9 hours (healthy)
|
||||
blackroad-gitea Up 10 hours
|
||||
roadauth Up 10 hours
|
||||
roadapi Up 10 hours
|
||||
blackroad-edge-agent Up 10 hours
|
||||
blackroad.systems Up 10 hours
|
||||
blackroadai.com Up 10 hours
|
||||
blackroad-auth-gateway Up 10 hours
|
||||
blackroad-metaverse Up 10 hours
|
||||
blackroad-os Up 10 hours
|
||||
blackroad-os-carpool Up 10 hours
|
||||
pi-my-agent-1 Up 10 hours (healthy)
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"node":"lucidia","ts":"2026-03-17T12:24:57Z","load":3.18,"mem_free_mb":2679,"mem_total_mb":8063,"temp_c":57.9,"disk_pct":31,"throttle":"N/A"}
|
||||
{"node":"lucidia","ts":"2026-03-17T12:56:33Z","load":22.77,"mem_free_mb":2619,"mem_total_mb":8063,"temp_c":49.6,"disk_pct":31,"throttle":"N/A"}
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"hostname": "lucidia",
|
||||
"ts": "2026-03-17T12:24:57Z",
|
||||
"uptime_seconds": 32470,
|
||||
"ts": "2026-03-17T12:56:34Z",
|
||||
"uptime_seconds": 34367,
|
||||
"kernel": "6.12.62+rpt-rpi-2712",
|
||||
"temp_c": 57.3,
|
||||
"temp_c": 49.6,
|
||||
"memory_mb": {
|
||||
"total": 8063,
|
||||
"used": 5385,
|
||||
"free": 2677
|
||||
"used": 5448,
|
||||
"free": 2615
|
||||
},
|
||||
"disk": "68G/235G (31%)",
|
||||
"load": [
|
||||
3.18,
|
||||
11.62,
|
||||
10.59
|
||||
22.77,
|
||||
10.84,
|
||||
8.72
|
||||
],
|
||||
"ollama_models": [
|
||||
"lucidia3b:latest",
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"node":"octavia","status":"down","ts":"2026-03-17T12:30:01Z"}
|
||||
{"node":"octavia","status":"down","ts":"2026-03-17T12:56:03Z"}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
"""
|
||||
RoadC Language - Tree-Walking Interpreter
|
||||
Executes AST nodes produced by the parser
|
||||
Includes ternary runtime (BlackBox Protocol)
|
||||
"""
|
||||
|
||||
from ast_nodes import *
|
||||
from ternary import Trit, TernaryWord, TernaryRouter, ARRIVED, WAITING, CANCELLED
|
||||
|
||||
|
||||
class ReturnSignal(Exception):
|
||||
@@ -47,6 +49,30 @@ class Environment:
|
||||
class Interpreter:
|
||||
def __init__(self):
|
||||
self.global_env = Environment()
|
||||
self.router = TernaryRouter()
|
||||
self._setup_builtins()
|
||||
|
||||
def _setup_builtins(self):
|
||||
"""Register built-in functions including ternary operations"""
|
||||
env = self.global_env
|
||||
# Standard
|
||||
env.set('print', lambda *args: print(*args))
|
||||
env.set('len', len)
|
||||
env.set('range', lambda *a: list(range(*a)))
|
||||
env.set('str', str)
|
||||
env.set('int', int)
|
||||
env.set('float', float)
|
||||
env.set('type', lambda x: type(x).__name__)
|
||||
# Ternary
|
||||
env.set('trit', lambda v=0: Trit(v))
|
||||
env.set('ARRIVED', ARRIVED)
|
||||
env.set('WAITING', WAITING)
|
||||
env.set('CANCELLED', CANCELLED)
|
||||
env.set('tword', lambda v=0, w=8: TernaryWord(v, w))
|
||||
# Routing
|
||||
env.set('route', lambda rid, paths: self.router.route(rid, paths))
|
||||
env.set('resolve', lambda rid, pid, result=None: self.router.resolve(rid, pid, result))
|
||||
env.set('route_status', lambda: self.router.status())
|
||||
|
||||
def run(self, program):
|
||||
for stmt in program.statements:
|
||||
|
||||
314
roadc/ternary.py
Normal file
314
roadc/ternary.py
Normal file
@@ -0,0 +1,314 @@
|
||||
"""
|
||||
RoadC Ternary Runtime — Recursive Ternary Logic
|
||||
The BlackBox Protocol's routing primitive, now a first-class type.
|
||||
|
||||
Ternary values: -1 (cancel), 0 (waiting), 1 (arrived)
|
||||
This isn't just three states — it's the foundation of self-cancelling computation.
|
||||
|
||||
When a packet arrives via path A (1), all pending paths (-1) cancel automatically.
|
||||
The -1 isn't failure. It's intelligence. It's the network saying "already handled."
|
||||
|
||||
Recursive ternary: a ternary value can contain ternary values.
|
||||
A routing decision contains sub-decisions contains sub-sub-decisions.
|
||||
It's turtles all the way down — and at every level, -1 prunes the tree.
|
||||
|
||||
Math: n/(1+1/n)^n = n/e + 1/(2e) + O(1/n)
|
||||
The 1/(2e) is the irreducible gap — the cost of being discrete instead of continuous.
|
||||
You can't beat it. You route around it.
|
||||
"""
|
||||
|
||||
import time
|
||||
import hashlib
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Optional, List, Dict, Callable, Any
|
||||
|
||||
|
||||
# ── Trit: the atomic unit ──
|
||||
class Trit:
|
||||
"""A balanced ternary digit: -1, 0, or 1"""
|
||||
__slots__ = ('_value',)
|
||||
|
||||
def __init__(self, value):
|
||||
if isinstance(value, Trit):
|
||||
self._value = value._value
|
||||
elif isinstance(value, (int, float)):
|
||||
if value > 0: self._value = 1
|
||||
elif value < 0: self._value = -1
|
||||
else: self._value = 0
|
||||
elif isinstance(value, bool):
|
||||
self._value = 1 if value else -1
|
||||
elif value is None:
|
||||
self._value = 0
|
||||
else:
|
||||
self._value = 0
|
||||
|
||||
@property
|
||||
def arrived(self): return self._value == 1
|
||||
@property
|
||||
def waiting(self): return self._value == 0
|
||||
@property
|
||||
def cancelled(self): return self._value == -1
|
||||
|
||||
def __repr__(self): return f"Trit({self._value})"
|
||||
def __int__(self): return self._value
|
||||
def __bool__(self): return self._value == 1
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, Trit): return self._value == other._value
|
||||
return self._value == other
|
||||
def __hash__(self): return hash(self._value)
|
||||
|
||||
# Ternary logic operations
|
||||
def __and__(self, other):
|
||||
"""MIN — both must arrive"""
|
||||
return Trit(min(self._value, int(Trit(other))))
|
||||
|
||||
def __or__(self, other):
|
||||
"""MAX — either arriving is enough"""
|
||||
return Trit(max(self._value, int(Trit(other))))
|
||||
|
||||
def __invert__(self):
|
||||
"""NEGATE — flip the sign"""
|
||||
return Trit(-self._value)
|
||||
|
||||
def __neg__(self):
|
||||
"""Cancel — arrived becomes cancelled, cancelled becomes arrived"""
|
||||
return Trit(-self._value)
|
||||
|
||||
def __add__(self, other):
|
||||
"""Sum — clamped to [-1, 1]"""
|
||||
return Trit(max(-1, min(1, self._value + int(Trit(other)))))
|
||||
|
||||
def __mul__(self, other):
|
||||
"""Multiply — product of trits"""
|
||||
return Trit(self._value * int(Trit(other)))
|
||||
|
||||
|
||||
# Shortcuts
|
||||
ARRIVED = Trit(1)
|
||||
WAITING = Trit(0)
|
||||
CANCELLED = Trit(-1)
|
||||
|
||||
|
||||
# ── TernaryWord: a vector of trits ──
|
||||
class TernaryWord:
|
||||
"""A word made of trits — like a byte but base 3"""
|
||||
|
||||
def __init__(self, trits=None, width=8):
|
||||
if trits is None:
|
||||
self.trits = [WAITING] * width
|
||||
elif isinstance(trits, list):
|
||||
self.trits = [Trit(t) for t in trits]
|
||||
elif isinstance(trits, int):
|
||||
# Convert integer to balanced ternary
|
||||
self.trits = []
|
||||
n = abs(trits)
|
||||
sign = 1 if trits >= 0 else -1
|
||||
while n > 0:
|
||||
r = n % 3
|
||||
if r == 2: r = -1; n += 1
|
||||
self.trits.append(Trit(r * sign))
|
||||
n //= 3
|
||||
while len(self.trits) < width:
|
||||
self.trits.append(WAITING)
|
||||
self.width = len(self.trits)
|
||||
|
||||
def to_int(self):
|
||||
"""Convert back to integer"""
|
||||
return sum(int(t) * (3 ** i) for i, t in enumerate(self.trits))
|
||||
|
||||
def __repr__(self):
|
||||
symbols = {1: '+', 0: '0', -1: '-'}
|
||||
return 'T[' + ''.join(symbols[int(t)] for t in reversed(self.trits)) + ']'
|
||||
|
||||
def cancel_pending(self):
|
||||
"""Set all waiting trits to cancelled — the key insight"""
|
||||
self.trits = [CANCELLED if t.waiting else t for t in self.trits]
|
||||
return self
|
||||
|
||||
|
||||
# ── Recursive Ternary Route ──
|
||||
@dataclass
|
||||
class Route:
|
||||
"""A routing path through the network. Contains sub-routes recursively."""
|
||||
path_id: str
|
||||
state: Trit = field(default_factory=lambda: WAITING)
|
||||
children: List['Route'] = field(default_factory=list)
|
||||
result: Any = None
|
||||
started_at: float = field(default_factory=time.time)
|
||||
resolved_at: Optional[float] = None
|
||||
depth: int = 0
|
||||
|
||||
def arrive(self, result=None):
|
||||
"""This path delivered. Cancel all siblings."""
|
||||
self.state = ARRIVED
|
||||
self.result = result
|
||||
self.resolved_at = time.time()
|
||||
return self
|
||||
|
||||
def cancel(self):
|
||||
"""This path is no longer needed."""
|
||||
self.state = CANCELLED
|
||||
self.resolved_at = time.time()
|
||||
for child in self.children:
|
||||
if child.state.waiting:
|
||||
child.cancel()
|
||||
return self
|
||||
|
||||
def spawn(self, path_id: str) -> 'Route':
|
||||
"""Create a sub-route"""
|
||||
child = Route(path_id=path_id, depth=self.depth + 1)
|
||||
self.children.append(child)
|
||||
return child
|
||||
|
||||
def resolve(self, result=None):
|
||||
"""First arrival wins. Cancel everything else."""
|
||||
self.arrive(result)
|
||||
# Cancel all siblings at the parent level
|
||||
return self
|
||||
|
||||
@property
|
||||
def latency_ms(self):
|
||||
if self.resolved_at:
|
||||
return round((self.resolved_at - self.started_at) * 1000, 2)
|
||||
return None
|
||||
|
||||
def tree(self, indent=0):
|
||||
"""Pretty print the routing tree"""
|
||||
symbols = {1: '+', 0: '.', -1: 'x'}
|
||||
state_sym = symbols[int(self.state)]
|
||||
lat = f" ({self.latency_ms}ms)" if self.latency_ms else ""
|
||||
result_str = f" → {self.result}" if self.result else ""
|
||||
lines = [f"{' ' * indent}[{state_sym}] {self.path_id}{lat}{result_str}"]
|
||||
for child in self.children:
|
||||
lines.append(child.tree(indent + 1))
|
||||
return '\n'.join(lines)
|
||||
|
||||
|
||||
# ── Recursive Ternary Router ──
|
||||
class TernaryRouter:
|
||||
"""Routes requests through multiple paths. First arrival cancels the rest.
|
||||
This is the BlackBox Protocol routing engine."""
|
||||
|
||||
def __init__(self):
|
||||
self.routes: Dict[str, Route] = {}
|
||||
self.stats = {'total': 0, 'arrived': 0, 'cancelled': 0, 'avg_latency': 0}
|
||||
|
||||
def route(self, request_id: str, paths: List[str]) -> Route:
|
||||
"""Create a multi-path route. Each path runs in parallel.
|
||||
First to arrive cancels all others."""
|
||||
root = Route(path_id=request_id)
|
||||
for p in paths:
|
||||
root.spawn(p)
|
||||
self.routes[request_id] = root
|
||||
self.stats['total'] += 1
|
||||
return root
|
||||
|
||||
def resolve(self, request_id: str, path_id: str, result=None) -> Route:
|
||||
"""A path delivered. Cancel everything else."""
|
||||
root = self.routes.get(request_id)
|
||||
if not root:
|
||||
raise ValueError(f"Unknown route: {request_id}")
|
||||
|
||||
for child in root.children:
|
||||
if child.path_id == path_id:
|
||||
child.arrive(result)
|
||||
elif child.state.waiting:
|
||||
child.cancel()
|
||||
self.stats['cancelled'] += 1
|
||||
|
||||
root.arrive(result)
|
||||
self.stats['arrived'] += 1
|
||||
if root.latency_ms:
|
||||
self.stats['avg_latency'] = (self.stats['avg_latency'] + root.latency_ms) / 2
|
||||
|
||||
return root
|
||||
|
||||
def status(self):
|
||||
return {
|
||||
'active_routes': sum(1 for r in self.routes.values() if r.state.waiting),
|
||||
'completed': sum(1 for r in self.routes.values() if r.state.arrived),
|
||||
**self.stats,
|
||||
}
|
||||
|
||||
|
||||
# ── Assembly-like instructions for ternary operations ──
|
||||
class TernaryASM:
|
||||
"""Low-level ternary instruction set.
|
||||
These map directly to what the Hailo/ARM can execute."""
|
||||
|
||||
@staticmethod
|
||||
def TRIT_SET(register, value):
|
||||
"""Set a trit register"""
|
||||
return Trit(value)
|
||||
|
||||
@staticmethod
|
||||
def TRIT_AND(a, b):
|
||||
"""MIN of two trits"""
|
||||
return a & b
|
||||
|
||||
@staticmethod
|
||||
def TRIT_OR(a, b):
|
||||
"""MAX of two trits"""
|
||||
return a | b
|
||||
|
||||
@staticmethod
|
||||
def TRIT_NEG(a):
|
||||
"""Negate a trit"""
|
||||
return -a
|
||||
|
||||
@staticmethod
|
||||
def TRIT_MUL(a, b):
|
||||
"""Multiply trits"""
|
||||
return a * b
|
||||
|
||||
@staticmethod
|
||||
def WORD_CANCEL(word):
|
||||
"""Cancel all pending trits in a word — the key operation"""
|
||||
return word.cancel_pending()
|
||||
|
||||
@staticmethod
|
||||
def ROUTE_SPAWN(router, request_id, paths):
|
||||
"""Spawn a multi-path route"""
|
||||
return router.route(request_id, paths)
|
||||
|
||||
@staticmethod
|
||||
def ROUTE_RESOLVE(router, request_id, path_id, result):
|
||||
"""First arrival wins"""
|
||||
return router.resolve(request_id, path_id, result)
|
||||
|
||||
|
||||
# ── Demo ──
|
||||
if __name__ == '__main__':
|
||||
print("=== BlackRoad Ternary Runtime ===\n")
|
||||
|
||||
# Basic trit operations
|
||||
print("Trit logic:")
|
||||
print(f" ARRIVED & WAITING = {ARRIVED & WAITING}")
|
||||
print(f" ARRIVED | CANCELLED = {ARRIVED | CANCELLED}")
|
||||
print(f" -ARRIVED = {-ARRIVED}")
|
||||
print(f" ARRIVED * CANCELLED = {ARRIVED * CANCELLED}")
|
||||
print()
|
||||
|
||||
# Ternary word
|
||||
w = TernaryWord(42)
|
||||
print(f"42 in balanced ternary: {w} = {w.to_int()}")
|
||||
w2 = TernaryWord(-13)
|
||||
print(f"-13 in balanced ternary: {w2} = {w2.to_int()}")
|
||||
print()
|
||||
|
||||
# Recursive routing
|
||||
print("Recursive Ternary Routing:")
|
||||
router = TernaryRouter()
|
||||
|
||||
# Simulate: request goes through 3 paths (Tor, WireGuard, direct)
|
||||
root = router.route("req-001", ["tor", "wireguard", "direct"])
|
||||
print(f" Spawned: {root.tree()}")
|
||||
|
||||
# Direct path arrives first
|
||||
import time; time.sleep(0.01)
|
||||
router.resolve("req-001", "direct", result="Hello from Octavia")
|
||||
print(f"\n After resolution:\n{root.tree()}")
|
||||
|
||||
print(f"\n Stats: {router.stats}")
|
||||
print(f"\n The -1 isn't failure. It's intelligence.")
|
||||
print(f" 1/(2e) = {1/(2*2.718281828):.6f} — the irreducible gap.")
|
||||
@@ -988,7 +988,7 @@ function handleLandingPage() {
|
||||
body { background: var(--bg); color: var(--text); font-family: var(--sg); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
|
||||
::-webkit-scrollbar { width:6px; } ::-webkit-scrollbar-track { background:#000; }
|
||||
::-webkit-scrollbar-thumb { background: linear-gradient(180deg,#FF6B2B,#FF2255,#8844FF,#00D4FF); border-radius:3px; }
|
||||
.gradient-text { background: var(--g); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
|
||||
.gradient-text { color: #f5f5f5; }
|
||||
.gradient-border { border:1px solid transparent; background-origin:border-box; background-clip:padding-box,border-box; background-image:linear-gradient(#0a0a0a,#0a0a0a), var(--g); }
|
||||
.gradient-line { height:1px; background: linear-gradient(90deg,transparent,#FF2255,#8844FF,#00D4FF,transparent); }
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ main = "src/worker.js"
|
||||
compatibility_date = "2024-12-01"
|
||||
workers_dev = true
|
||||
|
||||
routes = [
|
||||
{ pattern = "pay.blackroad.io/*", zone_name = "blackroad.io" }
|
||||
]
|
||||
[[routes]]
|
||||
pattern = "pay.blackroad.io/*"
|
||||
zone_name = "blackroad.io"
|
||||
|
||||
[[d1_databases]]
|
||||
binding = "DB"
|
||||
@@ -18,4 +18,4 @@ id = "68e5424a74234de197d5694127d2c3e5"
|
||||
|
||||
[vars]
|
||||
OLLAMA_URL = "https://ollama.blackroad.io"
|
||||
AUTH_API = "https://auth.blackroad.io"
|
||||
AUTH_API = "https://auth-blackroad.amundsonalexa.workers.dev"
|
||||
|
||||
Reference in New Issue
Block a user