sync: 2026-03-15 21:30 — 17 files from Alexandria
Some checks failed
Lint & Format / detect (push) Failing after 2m6s
Monorepo Lint / lint-shell (push) Failing after 44s
Monorepo Lint / lint-js (push) Failing after 51s
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: dcc4d901c78202e7
RoadChain-Identity: alexa@sovereign
RoadChain-Full: dcc4d901c78202e77b69e5eb2e3480e5920b6e8534ae45dfab07375912f9ce75f64fad259aa631393fb4ed9a7c17c9305eee75af9d32bb46a1820271d381c61b066644f1c51c04a4c16928023eb789941eff01fa8674911adef1dde9d1ad6bab9f6b09a8d2fdb13d83c563fb7cfbe8323b0355802873cd4cdfe5b46e9ead11a5fafc7479c0b4ebaeb26d1f9a2d4ee6649960f31eba2e21c88447a55208d3b62d113f4e35f4f8c7c9f046d233fe190d5a8a5ad840e71d3610f991f99eab08f214d7e1911678a5de59ac4ebee0d7744eaf4bde7333337806ecd297fda456f286cf94b3e28eea9060a240b0913eec2cce9dbedf08f3861e0548bdcaa4a784e516c0
This commit is contained in:
2026-03-15 21:30:01 -05:00
parent ca0d622681
commit 0962fa9ace
17 changed files with 226 additions and 207 deletions

View File

@@ -1,50 +1,50 @@
[2026-03-15 20:32:01] [BEAT] [alice] load=2.86 mem=3333/3794MB temp=33.6C disk=90% [2026-03-15 21:03:01] [BEAT] [alice] load=0.68 mem=3348/3794MB temp=34.1C disk=80%
[2026-03-15 20:33:01] [BEAT] [alice] load=1.75 mem=3327/3794MB temp=34.1C disk=90% [2026-03-15 21:04:03] [BEAT] [alice] load=3.13 mem=3342/3794MB temp=34.1C disk=80%
[2026-03-15 20:33:19] [BEAT] [alice] load=1.31 mem=3331/3794MB temp=34.6C disk=90% [2026-03-15 21:05:01] [BEAT] [alice] load=1.95 mem=3338/3794MB temp=35.0C disk=80%
[2026-03-15 20:33:19] [BEAT] [alice] load=1.31 mem=3330/3794MB temp=34.6C disk=90% [2026-03-15 21:05:30] [BEAT] [alice] load=1.36 mem=3341/3794MB temp=34.1C disk=80%
[2026-03-15 20:34:01] [BEAT] [alice] load=0.97 mem=3327/3794MB temp=34.1C disk=85% [2026-03-15 21:05:30] [BEAT] [alice] load=1.36 mem=3341/3794MB temp=33.6C disk=80%
[2026-03-15 20:35:02] [BEAT] [alice] load=5.35 mem=3321/3794MB temp=35.0C disk=85% [2026-03-15 21:06:01] [BEAT] [alice] load=1.33 mem=3344/3794MB temp=36.5C disk=80%
[2026-03-15 20:36:02] [BEAT] [alice] load=9.10 mem=3339/3794MB temp=33.6C disk=85% [2026-03-15 21:07:01] [BEAT] [alice] load=1.03 mem=3347/3794MB temp=33.1C disk=80%
[2026-03-15 20:37:01] [BEAT] [alice] load=3.86 mem=3296/3794MB temp=33.1C disk=84% [2026-03-15 21:08:01] [BEAT] [alice] load=0.95 mem=3343/3794MB temp=35.5C disk=80%
[2026-03-15 20:38:01] [BEAT] [alice] load=4.47 mem=3231/3794MB temp=42.8C disk=84% [2026-03-15 21:09:01] [BEAT] [alice] load=0.47 mem=3350/3794MB temp=33.6C disk=80%
[2026-03-15 20:38:27] [BEAT] [alice] load=4.91 mem=3180/3794MB temp=43.3C disk=84% [2026-03-15 21:10:01] [FLEET] [alice] Starting cross-node health check
[2026-03-15 20:38:28] [BEAT] [alice] load=4.91 mem=3177/3794MB temp=43.3C disk=84% [2026-03-15 21:10:02] [BEAT] [alice] load=0.53 mem=3336/3794MB temp=37.0C disk=80%
[2026-03-15 20:39:01] [BEAT] [alice] load=4.93 mem=3150/3794MB temp=43.8C disk=84% [2026-03-15 21:10:03] [FLEET] [alice] octavia: DOWN (no ping response)
[2026-03-15 20:40:01] [FLEET] [alice] Starting cross-node health check [2026-03-15 21:10:04] [FLEET] [alice] cecilia: UP temp=43C mem=1269MB disk=19%
[2026-03-15 20:40:02] [BEAT] [alice] load=5.04 mem=3061/3794MB temp=44.3C disk=80% [2026-03-15 21:10:06] [FLEET] [alice] gematria: UP temp=C mem=4172MB disk=67%
[2026-03-15 20:40:03] [FLEET] [alice] octavia: DOWN (no ping response) [2026-03-15 21:10:07] [FLEET] [alice] lucidia: UP temp=58C mem=1423MB disk=33%
[2026-03-15 20:40:04] [FLEET] [alice] cecilia: UP temp=42C mem=2963MB disk=19% [2026-03-15 21:10:09] [FLEET] [alice] aria: DOWN (no ping response)
[2026-03-15 20:40:06] [FLEET] [alice] gematria: UP temp=C mem=4170MB disk=67% [2026-03-15 21:10:11] [FLEET] [alice] anastasia: UP temp=C mem=301MB disk=69%
[2026-03-15 20:40:07] [FLEET] [alice] lucidia: UP temp=59C mem=1414MB disk=33% [2026-03-15 21:10:39] [BEAT] [alice] load=0.70 mem=3342/3794MB temp=36.0C disk=80%
[2026-03-15 20:40:09] [FLEET] [alice] aria: DOWN (no ping response) [2026-03-15 21:10:39] [BEAT] [alice] load=0.70 mem=3341/3794MB temp=35.0C disk=80%
[2026-03-15 20:40:11] [FLEET] [alice] anastasia: UP temp=C mem=307MB disk=69% [2026-03-15 21:11:01] [BEAT] [alice] load=0.70 mem=3350/3794MB temp=34.1C disk=80%
[2026-03-15 20:41:01] [BEAT] [alice] load=4.61 mem=3019/3794MB temp=40.4C disk=80% [2026-03-15 21:12:01] [BEAT] [alice] load=0.82 mem=3342/3794MB temp=35.5C disk=80%
[2026-03-15 20:42:01] [BEAT] [alice] load=2.76 mem=3042/3794MB temp=39.4C disk=81% [2026-03-15 21:13:01] [BEAT] [alice] load=0.60 mem=3348/3794MB temp=34.6C disk=80%
[2026-03-15 20:43:09] [BEAT] [alice] load=13.51 mem=3034/3794MB temp=33.6C disk=82% [2026-03-15 21:14:01] [BEAT] [alice] load=0.59 mem=3346/3794MB temp=34.1C disk=80%
[2026-03-15 20:44:08] [BEAT] [alice] load=16.81 mem=3022/3794MB temp=33.1C disk=82% [2026-03-15 21:15:02] [BEAT] [alice] load=0.31 mem=3333/3794MB temp=36.5C disk=80%
[2026-03-15 20:44:08] [BEAT] [alice] load=16.83 mem=3026/3794MB temp=32.6C disk=82% [2026-03-15 21:15:47] [BEAT] [alice] load=0.65 mem=3336/3794MB temp=35.0C disk=80%
[2026-03-15 20:44:26] [BEAT] [alice] load=17.16 mem=3027/3794MB temp=34.1C disk=82% [2026-03-15 21:15:47] [DIAL] [alice] Switchboard unreachable
[2026-03-15 20:45:26] [BEAT] [alice] load=29.27 mem=3016/3794MB temp=34.6C disk=82% [2026-03-15 21:15:47] [BEAT] [alice] load=0.65 mem=3335/3794MB temp=36.0C disk=80%
[2026-03-15 20:46:12] [BEAT] [alice] load=18.91 mem=3335/3794MB temp=33.6C disk=80% [2026-03-15 21:16:01] [BEAT] [alice] load=0.58 mem=3342/3794MB temp=35.5C disk=80%
[2026-03-15 20:46:22] [DIAL] [alice] Switchboard unreachable [2026-03-15 21:16:09] [DIAL] [alice] Switchboard unreachable
[2026-03-15 20:46:22] [DIAL] [alice] Switchboard unreachable [2026-03-15 21:17:01] [BEAT] [alice] load=0.79 mem=3343/3794MB temp=35.0C disk=80%
[2026-03-15 20:47:02] [BEAT] [alice] load=9.72 mem=3311/3794MB temp=35.0C disk=80% [2026-03-15 21:18:02] [BEAT] [alice] load=0.82 mem=3349/3794MB temp=34.1C disk=80%
[2026-03-15 20:48:01] [BEAT] [alice] load=4.16 mem=3347/3794MB temp=34.1C disk=80% [2026-03-15 21:19:01] [BEAT] [alice] load=0.41 mem=3345/3794MB temp=35.5C disk=80%
[2026-03-15 20:49:01] [BEAT] [alice] load=1.88 mem=3342/3794MB temp=35.0C disk=80% [2026-03-15 21:20:01] [FLEET] [alice] Starting cross-node health check
[2026-03-15 20:50:01] [FLEET] [alice] Starting cross-node health check [2026-03-15 21:20:01] [BEAT] [alice] load=0.61 mem=3333/3794MB temp=35.5C disk=80%
[2026-03-15 20:50:01] [BEAT] [alice] load=1.20 mem=3338/3794MB temp=35.5C disk=80% [2026-03-15 21:20:03] [FLEET] [alice] octavia: DOWN (no ping response)
[2026-03-15 20:50:02] [BEAT] [alice] load=1.35 mem=3339/3794MB temp=35.0C disk=80% [2026-03-15 21:20:03] [FLEET] [alice] cecilia: UP temp=41C mem=1283MB disk=19%
[2026-03-15 20:50:03] [BEAT] [alice] load=1.35 mem=3339/3794MB temp=36.0C disk=80% [2026-03-15 21:20:05] [FLEET] [alice] gematria: UP temp=C mem=4191MB disk=67%
[2026-03-15 20:50:03] [FLEET] [alice] octavia: DOWN (no ping response) [2026-03-15 21:20:05] [FLEET] [alice] lucidia: UP temp=54C mem=1566MB disk=33%
[2026-03-15 20:50:04] [FLEET] [alice] cecilia: UP temp=52C mem=1276MB disk=19% [2026-03-15 21:20:07] [FLEET] [alice] aria: DOWN (no ping response)
[2026-03-15 20:50:05] [FLEET] [alice] gematria: UP temp=C mem=4160MB disk=67% [2026-03-15 21:20:08] [FLEET] [alice] anastasia: UP temp=C mem=304MB disk=69%
[2026-03-15 20:50:05] [FLEET] [alice] lucidia: UP temp=59C mem=1382MB disk=33% [2026-03-15 21:20:58] [BEAT] [alice] load=0.93 mem=3339/3794MB temp=37.0C disk=80%
[2026-03-15 20:50:06] [FLEET] [alice] aria: DOWN (no ping response) [2026-03-15 21:20:58] [BEAT] [alice] load=0.93 mem=3339/3794MB temp=37.5C disk=80%
[2026-03-15 20:50:07] [FLEET] [alice] anastasia: UP temp=C mem=304MB disk=69% [2026-03-15 21:21:01] [BEAT] [alice] load=0.94 mem=3336/3794MB temp=37.5C disk=80%
[2026-03-15 20:51:01] [BEAT] [alice] load=0.85 mem=3343/3794MB temp=34.6C disk=80% [2026-03-15 21:22:02] [BEAT] [alice] load=1.09 mem=3342/3794MB temp=34.6C disk=80%
[2026-03-15 20:52:01] [BEAT] [alice] load=4.53 mem=3350/3794MB temp=33.1C disk=80% [2026-03-15 21:23:01] [BEAT] [alice] load=0.85 mem=3340/3794MB temp=37.0C disk=80%
[2026-03-15 20:53:02] [BEAT] [alice] load=2.29 mem=3337/3794MB temp=34.6C disk=80% [2026-03-15 21:24:01] [BEAT] [alice] load=0.65 mem=3349/3794MB temp=33.6C disk=80%
[2026-03-15 20:54:01] [BEAT] [alice] load=1.13 mem=3343/3794MB temp=34.1C disk=80% [2026-03-15 21:25:01] [BEAT] [alice] load=0.90 mem=3341/3794MB temp=37.0C disk=80%
[2026-03-15 20:55:01] [BEAT] [alice] load=0.98 mem=3337/3794MB temp=35.0C disk=80% [2026-03-15 21:26:01] [BEAT] [alice] load=1.03 mem=3339/3794MB temp=35.0C disk=80%
[2026-03-15 20:55:11] [BEAT] [alice] load=1.39 mem=3338/3794MB temp=32.6C disk=80% [2026-03-15 21:26:06] [BEAT] [alice] load=0.95 mem=3329/3794MB temp=35.5C disk=80%
[2026-03-15 20:55:12] [BEAT] [alice] load=1.39 mem=3338/3794MB temp=33.1C disk=80% [2026-03-15 21:26:06] [BEAT] [alice] load=0.95 mem=3342/3794MB temp=36.0C disk=80%

View File

@@ -1 +1 @@
{"node":"alice","ts":"2026-03-16T01:55:12Z","load":1.39,"mem_free_mb":3338,"mem_total_mb":3794,"temp_c":33.1,"disk_pct":80,"throttle":"0x0"} {"node":"alice","ts":"2026-03-16T02:26:06Z","load":0.95,"mem_free_mb":3342,"mem_total_mb":3794,"temp_c":36.0,"disk_pct":80,"throttle":"0x0"}

View File

@@ -17,7 +17,7 @@ LISTEN 0 5 0.0.0.0:8184 0.0.0.0:*
LISTEN 0 5 0.0.0.0:4010 0.0.0.0:* users:(("python3",pid=607,fd=3)) LISTEN 0 5 0.0.0.0:4010 0.0.0.0:* users:(("python3",pid=607,fd=3))
LISTEN 0 511 0.0.0.0:8083 0.0.0.0:* users:(("node /usr/lib/n",pid=4750,fd=20)) LISTEN 0 511 0.0.0.0:8083 0.0.0.0:* users:(("node /usr/lib/n",pid=4750,fd=20))
LISTEN 0 5 0.0.0.0:8095 0.0.0.0:* users:(("python3",pid=606,fd=3)) LISTEN 0 5 0.0.0.0:8095 0.0.0.0:* users:(("python3",pid=606,fd=3))
LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=10949,fd=5)) LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=19832,fd=5))
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* LISTEN 0 511 127.0.0.1:6379 0.0.0.0:*
LISTEN 0 511 *:8787 *:* LISTEN 0 511 *:8787 *:*
LISTEN 0 244 [::1]:5432 [::]:* LISTEN 0 244 [::1]:5432 [::]:*

View File

@@ -1,19 +1,19 @@
{ {
"hostname": "alice", "hostname": "alice",
"ts": "2026-03-16T01:55:13Z", "ts": "2026-03-16T02:26:09Z",
"uptime_seconds": 88896, "uptime_seconds": 90752,
"kernel": "6.1.21-v8+", "kernel": "6.1.21-v8+",
"temp_c": 32.6, "temp_c": 34.6,
"memory_mb": { "memory_mb": {
"total": 3794, "total": 3794,
"used": 368, "used": 366,
"free": 3336 "free": 3339
}, },
"disk": "11G/15G (80%)", "disk": "11G/15G (80%)",
"load": [ "load": [
1.36, 0.95,
3.46, 0.83,
4.55 1.31
], ],
"ollama_models": [ "ollama_models": [
"qwen2.5:3b", "qwen2.5:3b",

View File

@@ -11,7 +11,7 @@ LISTEN 0 5 0.0.0.0:8787 0.0.0.0:* users:(("python3",pid
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=3461172,fd=8),("nginx",pid=3461171,fd=8)) LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=3461172,fd=8),("nginx",pid=3461171,fd=8))
LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=589,fd=4),("systemd",pid=1,fd=127)) LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=589,fd=4),("systemd",pid=1,fd=127))
LISTEN 0 4096 *:8080 *:* users:(("headscale",pid=2341808,fd=12)) LISTEN 0 4096 *:8080 *:* users:(("headscale",pid=2341808,fd=12))
LISTEN 0 511 *:3000 *:* users:(("node /srv/hello",pid=1747172,fd=19)) LISTEN 0 511 *:3000 *:* users:(("node /srv/hello",pid=1753152,fd=19))
LISTEN 0 511 *:3001 *:* users:(("node",pid=757,fd=21)) LISTEN 0 511 *:3001 *:* users:(("node",pid=757,fd=21))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=991,fd=8)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=991,fd=8))
LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=3461172,fd=9),("nginx",pid=3461171,fd=9)) LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=3461172,fd=9),("nginx",pid=3461171,fd=9))

View File

@@ -1,19 +1,19 @@
{ {
"hostname": "anastasia", "hostname": "anastasia",
"ts": "2026-03-16T01:55:14Z", "ts": "2026-03-16T02:26:08Z",
"uptime_seconds": 6768006, "uptime_seconds": 6769860,
"kernel": "5.14.0-651.el9.x86_64", "kernel": "5.14.0-651.el9.x86_64",
"temp_c": 0, "temp_c": 0,
"memory_mb": { "memory_mb": {
"total": 765, "total": 765,
"used": 456, "used": 432,
"free": 308 "free": 332
}, },
"disk": "18G/25G (69%)", "disk": "18G/25G (69%)",
"load": [ "load": [
0.0, 0.08,
0.06, 0.09,
0.03 0.08
], ],
"ollama_models": [], "ollama_models": [],
"throttle": "N/A", "throttle": "N/A",

View File

@@ -1 +1 @@
{"node":"aria","status":"down","ts":"2026-03-16T01:55:12Z"} {"node":"aria","status":"down","ts":"2026-03-16T02:26:06Z"}

View File

@@ -1,50 +1,50 @@
[2026-03-15 20:35:02] [BEAT] [cecilia] load=2.04 mem=2951/8058MB temp=51.8C disk=19% [2026-03-15 21:05:29] [BEAT] [cecilia] load=1.41 mem=1338/8058MB temp=40.2C disk=19%
[2026-03-15 20:35:02] [HEAL] [cecilia] High swap: 1041MB — clearing inactive [2026-03-15 21:06:01] [BEAT] [cecilia] load=0.90 mem=1339/8058MB temp=40.2C disk=19%
[2026-03-15 20:36:01] [BEAT] [cecilia] load=2.29 mem=3037/8058MB temp=45.2C disk=19% [2026-03-15 21:07:01] [BEAT] [cecilia] load=0.53 mem=1344/8058MB temp=40.2C disk=19%
[2026-03-15 20:37:01] [BEAT] [cecilia] load=0.95 mem=3039/8058MB temp=43.5C disk=19% [2026-03-15 21:08:01] [BEAT] [cecilia] load=0.43 mem=1338/8058MB temp=41.4C disk=19%
[2026-03-15 20:38:01] [BEAT] [cecilia] load=0.92 mem=3037/8058MB temp=43.5C disk=19% [2026-03-15 21:09:01] [BEAT] [cecilia] load=0.48 mem=1336/8058MB temp=40.8C disk=19%
[2026-03-15 20:38:26] [BEAT] [cecilia] load=0.94 mem=3029/8058MB temp=43.0C disk=19% [2026-03-15 21:10:02] [FLEET] [cecilia] Starting cross-node health check
[2026-03-15 20:38:26] [BEAT] [cecilia] load=0.94 mem=3029/8058MB temp=41.9C disk=19% [2026-03-15 21:10:02] [BEAT] [cecilia] load=0.42 mem=1296/8058MB temp=41.9C disk=19%
[2026-03-15 20:39:01] [BEAT] [cecilia] load=0.63 mem=3015/8058MB temp=43.0C disk=19% [2026-03-15 21:10:02] [HEAL] [cecilia] High swap: 1069MB — clearing inactive
[2026-03-15 20:40:01] [FLEET] [cecilia] Starting cross-node health check [2026-03-15 21:10:02] [FLEET] [cecilia] alice: UP temp=38C mem=3322MB disk=80%
[2026-03-15 20:40:01] [BEAT] [cecilia] load=0.41 mem=2982/8058MB temp=42.5C disk=19% [2026-03-15 21:10:04] [FLEET] [cecilia] octavia: DOWN (no ping response)
[2026-03-15 20:40:01] [HEAL] [cecilia] High swap: 1038MB — clearing inactive [2026-03-15 21:10:06] [FLEET] [cecilia] gematria: UP temp=C mem=4190MB disk=67%
[2026-03-15 20:40:03] [FLEET] [cecilia] alice: UP temp=44C mem=3060MB disk=80% [2026-03-15 21:10:07] [FLEET] [cecilia] lucidia: UP temp=58C mem=1423MB disk=33%
[2026-03-15 20:40:05] [FLEET] [cecilia] octavia: DOWN (no ping response) [2026-03-15 21:10:09] [FLEET] [cecilia] aria: DOWN (no ping response)
[2026-03-15 20:40:06] [FLEET] [cecilia] gematria: UP temp=C mem=4170MB disk=67% [2026-03-15 21:10:10] [FLEET] [cecilia] anastasia: UP temp=C mem=301MB disk=69%
[2026-03-15 20:40:07] [FLEET] [cecilia] lucidia: UP temp=59C mem=1414MB disk=33% [2026-03-15 21:10:38] [BEAT] [cecilia] load=0.29 mem=1341/8058MB temp=40.8C disk=19%
[2026-03-15 20:40:09] [FLEET] [cecilia] aria: DOWN (no ping response) [2026-03-15 21:10:38] [BEAT] [cecilia] load=0.29 mem=1340/8058MB temp=40.8C disk=19%
[2026-03-15 20:40:10] [FLEET] [cecilia] anastasia: UP temp=C mem=307MB disk=69% [2026-03-15 21:11:01] [BEAT] [cecilia] load=0.39 mem=1336/8058MB temp=40.2C disk=19%
[2026-03-15 20:41:01] [BEAT] [cecilia] load=0.31 mem=3048/8058MB temp=41.4C disk=19% [2026-03-15 21:12:01] [BEAT] [cecilia] load=0.85 mem=1334/8058MB temp=41.4C disk=19%
[2026-03-15 20:42:01] [BEAT] [cecilia] load=0.87 mem=3062/8058MB temp=41.4C disk=19% [2026-03-15 21:13:01] [BEAT] [cecilia] load=0.52 mem=1327/8058MB temp=41.9C disk=19%
[2026-03-15 20:43:01] [BEAT] [cecilia] load=2.60 mem=3057/8058MB temp=41.9C disk=19% [2026-03-15 21:14:01] [BEAT] [cecilia] load=0.57 mem=1320/8058MB temp=41.4C disk=19%
[2026-03-15 20:43:35] [BEAT] [cecilia] load=2.10 mem=3060/8058MB temp=40.8C disk=19% [2026-03-15 21:15:01] [BEAT] [cecilia] load=0.56 mem=1275/8058MB temp=40.2C disk=19%
[2026-03-15 20:43:35] [BEAT] [cecilia] load=2.10 mem=3060/8058MB temp=41.9C disk=19% [2026-03-15 21:15:01] [HEAL] [cecilia] High swap: 1052MB — clearing inactive
[2026-03-15 20:44:01] [BEAT] [cecilia] load=2.09 mem=3062/8058MB temp=40.2C disk=19% [2026-03-15 21:15:46] [DIAL] [cecilia] Switchboard unreachable
[2026-03-15 20:45:01] [BEAT] [cecilia] load=0.90 mem=2960/8058MB temp=41.4C disk=19% [2026-03-15 21:15:47] [BEAT] [cecilia] load=0.34 mem=1305/8058MB temp=39.7C disk=19%
[2026-03-15 20:45:02] [HEAL] [cecilia] High swap: 1021MB — clearing inactive [2026-03-15 21:15:47] [BEAT] [cecilia] load=0.34 mem=1303/8058MB temp=40.2C disk=19%
[2026-03-15 20:45:47] [DIAL] [cecilia] Switchboard unreachable [2026-03-15 21:16:01] [BEAT] [cecilia] load=0.27 mem=1297/8058MB temp=40.2C disk=19%
[2026-03-15 20:46:01] [BEAT] [cecilia] load=0.68 mem=3004/8058MB temp=39.7C disk=19% [2026-03-15 21:17:01] [BEAT] [cecilia] load=0.28 mem=1301/8058MB temp=39.7C disk=19%
[2026-03-15 20:47:01] [BEAT] [cecilia] load=0.58 mem=2992/8058MB temp=39.7C disk=19% [2026-03-15 21:17:58] [DIAL] [cecilia] Switchboard unreachable
[2026-03-15 20:47:53] [DIAL] [cecilia] Switchboard unreachable [2026-03-15 21:18:01] [BEAT] [cecilia] load=0.34 mem=1227/8058MB temp=41.4C disk=19%
[2026-03-15 20:48:01] [BEAT] [cecilia] load=2.48 mem=1411/8058MB temp=49.0C disk=19% [2026-03-15 21:19:01] [BEAT] [cecilia] load=0.24 mem=1228/8058MB temp=39.7C disk=19%
[2026-03-15 20:49:01] [BEAT] [cecilia] load=3.85 mem=1276/8058MB temp=49.0C disk=19% [2026-03-15 21:20:01] [FLEET] [cecilia] Starting cross-node health check
[2026-03-15 20:50:01] [FLEET] [cecilia] Starting cross-node health check [2026-03-15 21:20:01] [BEAT] [cecilia] load=0.34 mem=1198/8058MB temp=40.8C disk=19%
[2026-03-15 20:50:01] [BEAT] [cecilia] load=4.22 mem=1307/8058MB temp=52.4C disk=19% [2026-03-15 21:20:01] [HEAL] [cecilia] High swap: 1052MB — clearing inactive
[2026-03-15 20:50:01] [HEAL] [cecilia] High swap: 1079MB — clearing inactive [2026-03-15 21:20:02] [FLEET] [cecilia] alice: UP temp=37C mem=3336MB disk=80%
[2026-03-15 20:50:02] [FLEET] [cecilia] alice: UP temp=36C mem=3332MB disk=80% [2026-03-15 21:20:04] [FLEET] [cecilia] octavia: DOWN (no ping response)
[2026-03-15 20:50:02] [BEAT] [cecilia] load=4.22 mem=1308/8058MB temp=51.8C disk=19% [2026-03-15 21:20:05] [FLEET] [cecilia] gematria: UP temp=C mem=4191MB disk=67%
[2026-03-15 20:50:02] [BEAT] [cecilia] load=4.22 mem=1305/8058MB temp=51.8C disk=19% [2026-03-15 21:20:06] [FLEET] [cecilia] lucidia: UP temp=55C mem=1574MB disk=33%
[2026-03-15 20:50:04] [FLEET] [cecilia] octavia: DOWN (no ping response) [2026-03-15 21:20:08] [FLEET] [cecilia] aria: DOWN (no ping response)
[2026-03-15 20:50:05] [FLEET] [cecilia] gematria: UP temp=C mem=4160MB disk=67% [2026-03-15 21:20:09] [FLEET] [cecilia] anastasia: UP temp=C mem=304MB disk=69%
[2026-03-15 20:50:06] [FLEET] [cecilia] lucidia: UP temp=59C mem=1336MB disk=33% [2026-03-15 21:20:56] [BEAT] [cecilia] load=0.25 mem=1318/8058MB temp=39.7C disk=19%
[2026-03-15 20:50:08] [FLEET] [cecilia] aria: DOWN (no ping response) [2026-03-15 21:20:56] [BEAT] [cecilia] load=0.25 mem=1315/8058MB temp=39.7C disk=19%
[2026-03-15 20:50:09] [FLEET] [cecilia] anastasia: UP temp=C mem=319MB disk=69% [2026-03-15 21:21:01] [BEAT] [cecilia] load=0.25 mem=1313/8058MB temp=39.1C disk=19%
[2026-03-15 20:51:02] [BEAT] [cecilia] load=3.30 mem=1356/8058MB temp=45.2C disk=19% [2026-03-15 21:22:01] [BEAT] [cecilia] load=0.19 mem=1315/8058MB temp=39.7C disk=19%
[2026-03-15 20:52:01] [BEAT] [cecilia] load=1.34 mem=1353/8058MB temp=43.0C disk=19% [2026-03-15 21:23:01] [BEAT] [cecilia] load=1.65 mem=1422/8058MB temp=47.4C disk=19%
[2026-03-15 20:53:01] [BEAT] [cecilia] load=0.64 mem=1372/8058MB temp=40.8C disk=19% [2026-03-15 21:24:01] [BEAT] [cecilia] load=1.10 mem=1454/8058MB temp=40.8C disk=19%
[2026-03-15 20:54:01] [BEAT] [cecilia] load=0.85 mem=1377/8058MB temp=40.8C disk=19% [2026-03-15 21:25:01] [BEAT] [cecilia] load=2.37 mem=1411/8058MB temp=43.0C disk=19%
[2026-03-15 20:55:01] [BEAT] [cecilia] load=0.59 mem=1342/8058MB temp=41.9C disk=19% [2026-03-15 21:25:01] [HEAL] [cecilia] High swap: 1161MB — clearing inactive
[2026-03-15 20:55:01] [HEAL] [cecilia] High swap: 1078MB — clearing inactive [2026-03-15 21:26:01] [BEAT] [cecilia] load=2.60 mem=1450/8058MB temp=40.8C disk=19%
[2026-03-15 20:55:11] [BEAT] [cecilia] load=0.57 mem=1337/8058MB temp=39.7C disk=19% [2026-03-15 21:26:05] [BEAT] [cecilia] load=2.39 mem=1446/8058MB temp=40.8C disk=19%
[2026-03-15 20:55:11] [BEAT] [cecilia] load=0.57 mem=1331/8058MB temp=40.2C disk=19% [2026-03-15 21:26:05] [BEAT] [cecilia] load=2.39 mem=1444/8058MB temp=40.2C disk=19%

View File

@@ -1 +1 @@
{"node":"cecilia","ts":"2026-03-16T01:55:11Z","load":0.57,"mem_free_mb":1331,"mem_total_mb":8058,"temp_c":40.2,"disk_pct":19,"throttle":"N/A"} {"node":"cecilia","ts":"2026-03-16T02:26:05Z","load":2.39,"mem_free_mb":1444,"mem_total_mb":8058,"temp_c":40.2,"disk_pct":19,"throttle":"N/A"}

View File

@@ -2,7 +2,7 @@ LISTEN 0 5 0.0.0.0:4010 0.0.0.0:* users:(("python3",pid
LISTEN 0 511 0.0.0.0:8080 0.0.0.0:* LISTEN 0 511 0.0.0.0:8080 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:* LISTEN 0 4096 127.0.0.1:20241 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:8088 0.0.0.0:* LISTEN 0 4096 127.0.0.1:8088 0.0.0.0:*
LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=2315145,fd=5)) LISTEN 0 5 0.0.0.0:7890 0.0.0.0:* users:(("python3",pid=2340686,fd=5))
LISTEN 0 32 10.10.2.1:53 0.0.0.0:* LISTEN 0 32 10.10.2.1:53 0.0.0.0:*
LISTEN 0 511 0.0.0.0:3100 0.0.0.0:* LISTEN 0 511 0.0.0.0:3100 0.0.0.0:*
LISTEN 0 5 0.0.0.0:11435 0.0.0.0:* users:(("python3",pid=1366,fd=3)) LISTEN 0 5 0.0.0.0:11435 0.0.0.0:* users:(("python3",pid=1366,fd=3))

View File

@@ -1,19 +1,19 @@
{ {
"hostname": "cecilia", "hostname": "cecilia",
"ts": "2026-03-16T01:55:12Z", "ts": "2026-03-16T02:26:06Z",
"uptime_seconds": 88873, "uptime_seconds": 90727,
"kernel": "6.12.62+rpt-rpi-2712", "kernel": "6.12.62+rpt-rpi-2712",
"temp_c": 38.6, "temp_c": 41.4,
"memory_mb": { "memory_mb": {
"total": 8058, "total": 8058,
"used": 6729, "used": 6616,
"free": 1329 "free": 1442
}, },
"disk": "79G/457G (19%)", "disk": "79G/457G (19%)",
"load": [ "load": [
0.57, 2.39,
1.39, 1.38,
1.97 1.03
], ],
"ollama_models": [ "ollama_models": [
"deepseek-r1:1.5b", "deepseek-r1:1.5b",

View File

@@ -1,19 +1,19 @@
{ {
"hostname": "gematria", "hostname": "gematria",
"ts": "2026-03-16T01:55:15Z", "ts": "2026-03-16T02:26:11Z",
"uptime_seconds": 5425307, "uptime_seconds": 5427163,
"kernel": "5.15.0-113-generic", "kernel": "5.15.0-113-generic",
"temp_c": 0, "temp_c": 0,
"memory_mb": { "memory_mb": {
"total": 7937, "total": 7937,
"used": 3272, "used": 3580,
"free": 4237 "free": 3888
}, },
"disk": "52G/78G (67%)", "disk": "52G/78G (67%)",
"load": [ "load": [
3.06, 4.06,
3.07, 3.33,
3.08 3.16
], ],
"ollama_models": [ "ollama_models": [
"qwen2.5:7b", "qwen2.5:7b",
@@ -26,5 +26,5 @@
], ],
"throttle": "N/A", "throttle": "N/A",
"voltage": "N/A", "voltage": "N/A",
"services_running": 31 "services_running": 32
} }

View File

@@ -1,50 +1,50 @@
[2026-03-15 20:35:02] [BEAT] [lucidia] load=1.70 mem=1375/8063MB temp=60.0C disk=33% [2026-03-15 21:05:29] [BEAT] [lucidia] load=3.67 mem=1462/8063MB temp=58.4C disk=33%
[2026-03-15 20:35:02] [HEAL] [lucidia] High swap: 1620MB — clearing inactive [2026-03-15 21:06:01] [BEAT] [lucidia] load=4.53 mem=1448/8063MB temp=60.0C disk=33%
[2026-03-15 20:36:01] [BEAT] [lucidia] load=1.94 mem=1436/8063MB temp=56.2C disk=33% [2026-03-15 21:07:01] [BEAT] [lucidia] load=3.84 mem=1524/8063MB temp=50.7C disk=33%
[2026-03-15 20:37:01] [BEAT] [lucidia] load=2.13 mem=1396/8063MB temp=60.0C disk=33% [2026-03-15 21:08:01] [BEAT] [lucidia] load=2.84 mem=1487/8063MB temp=54.0C disk=33%
[2026-03-15 20:38:01] [BEAT] [lucidia] load=1.96 mem=1443/8063MB temp=54.0C disk=33% [2026-03-15 21:09:01] [BEAT] [lucidia] load=3.00 mem=1457/8063MB temp=57.9C disk=33%
[2026-03-15 20:38:27] [BEAT] [lucidia] load=2.25 mem=1444/8063MB temp=61.7C disk=33% [2026-03-15 21:10:01] [FLEET] [lucidia] Starting cross-node health check
[2026-03-15 20:38:27] [BEAT] [lucidia] load=2.25 mem=1442/8063MB temp=61.1C disk=33% [2026-03-15 21:10:01] [BEAT] [lucidia] load=1.20 mem=1450/8063MB temp=55.1C disk=33%
[2026-03-15 20:39:01] [BEAT] [lucidia] load=1.92 mem=1453/8063MB temp=55.1C disk=33% [2026-03-15 21:10:01] [HEAL] [lucidia] High swap: 1618MB — clearing inactive
[2026-03-15 20:40:01] [FLEET] [lucidia] Starting cross-node health check [2026-03-15 21:10:02] [FLEET] [lucidia] alice: UP temp=37C mem=3334MB disk=80%
[2026-03-15 20:40:01] [BEAT] [lucidia] load=2.95 mem=1451/8063MB temp=62.8C disk=33% [2026-03-15 21:10:04] [FLEET] [lucidia] octavia: DOWN (no ping response)
[2026-03-15 20:40:02] [HEAL] [lucidia] High swap: 1620MB — clearing inactive [2026-03-15 21:10:05] [FLEET] [lucidia] cecilia: UP temp=41C mem=1268MB disk=19%
[2026-03-15 20:40:04] [FLEET] [lucidia] alice: UP temp=45C mem=3060MB disk=80% [2026-03-15 21:10:06] [FLEET] [lucidia] gematria: UP temp=C mem=4193MB disk=67%
[2026-03-15 20:40:06] [FLEET] [lucidia] octavia: DOWN (no ping response) [2026-03-15 21:10:08] [FLEET] [lucidia] aria: DOWN (no ping response)
[2026-03-15 20:40:06] [FLEET] [lucidia] cecilia: UP temp=41C mem=2966MB disk=19% [2026-03-15 21:10:09] [FLEET] [lucidia] anastasia: UP temp=C mem=301MB disk=69%
[2026-03-15 20:40:09] [FLEET] [lucidia] gematria: UP temp=C mem=4171MB disk=67% [2026-03-15 21:10:38] [BEAT] [lucidia] load=2.51 mem=1476/8063MB temp=54.0C disk=33%
[2026-03-15 20:40:11] [FLEET] [lucidia] aria: DOWN (no ping response) [2026-03-15 21:10:38] [BEAT] [lucidia] load=2.51 mem=1476/8063MB temp=54.0C disk=33%
[2026-03-15 20:40:12] [FLEET] [lucidia] anastasia: UP temp=C mem=307MB disk=69% [2026-03-15 21:11:33] [BEAT] [lucidia] load=16.91 mem=1460/8063MB temp=51.2C disk=33%
[2026-03-15 20:41:25] [BEAT] [lucidia] load=15.76 mem=1421/8063MB temp=52.4C disk=33% [2026-03-15 21:12:01] [BEAT] [lucidia] load=12.96 mem=1472/8063MB temp=62.2C disk=33%
[2026-03-15 20:42:02] [BEAT] [lucidia] load=11.33 mem=1444/8063MB temp=62.2C disk=33% [2026-03-15 21:13:01] [BEAT] [lucidia] load=6.87 mem=1458/8063MB temp=54.0C disk=33%
[2026-03-15 20:43:01] [BEAT] [lucidia] load=5.69 mem=1442/8063MB temp=52.4C disk=33% [2026-03-15 21:14:01] [BEAT] [lucidia] load=3.36 mem=1472/8063MB temp=54.0C disk=33%
[2026-03-15 20:43:35] [BEAT] [lucidia] load=5.64 mem=1428/8063MB temp=59.0C disk=33% [2026-03-15 21:15:01] [BEAT] [lucidia] load=3.41 mem=1451/8063MB temp=63.4C disk=33%
[2026-03-15 20:43:35] [BEAT] [lucidia] load=5.64 mem=1426/8063MB temp=57.9C disk=33% [2026-03-15 21:15:02] [HEAL] [lucidia] High swap: 1618MB — clearing inactive
[2026-03-15 20:44:01] [BEAT] [lucidia] load=4.06 mem=1441/8063MB temp=55.1C disk=33% [2026-03-15 21:15:47] [DIAL] [lucidia] Switchboard unreachable
[2026-03-15 20:45:01] [BEAT] [lucidia] load=11.56 mem=1410/8063MB temp=54.0C disk=33% [2026-03-15 21:15:47] [BEAT] [lucidia] load=3.42 mem=1486/8063MB temp=56.8C disk=33%
[2026-03-15 20:45:01] [HEAL] [lucidia] High swap: 1620MB — clearing inactive [2026-03-15 21:15:47] [BEAT] [lucidia] load=3.42 mem=1485/8063MB temp=56.8C disk=33%
[2026-03-15 20:45:47] [DIAL] [lucidia] Switchboard unreachable [2026-03-15 21:16:01] [BEAT] [lucidia] load=2.73 mem=1462/8063MB temp=55.1C disk=33%
[2026-03-15 20:47:00] [BEAT] [lucidia] load=30.28 mem=1431/8063MB temp=51.8C disk=33% [2026-03-15 21:17:01] [BEAT] [lucidia] load=2.45 mem=1487/8063MB temp=55.6C disk=33%
[2026-03-15 20:47:00] [BEAT] [lucidia] load=30.28 mem=1417/8063MB temp=55.6C disk=33% [2026-03-15 21:17:29] [DIAL] [lucidia] Switchboard unreachable
[2026-03-15 20:47:45] [DIAL] [lucidia] Switchboard unreachable [2026-03-15 21:18:01] [BEAT] [lucidia] load=2.12 mem=1570/8063MB temp=62.2C disk=33%
[2026-03-15 20:48:01] [BEAT] [lucidia] load=12.88 mem=1415/8063MB temp=52.4C disk=33% [2026-03-15 21:19:01] [BEAT] [lucidia] load=1.64 mem=1598/8063MB temp=55.1C disk=33%
[2026-03-15 20:49:01] [BEAT] [lucidia] load=6.55 mem=1455/8063MB temp=56.2C disk=33% [2026-03-15 21:20:01] [FLEET] [lucidia] Starting cross-node health check
[2026-03-15 20:50:01] [FLEET] [lucidia] Starting cross-node health check [2026-03-15 21:20:01] [BEAT] [lucidia] load=1.69 mem=1585/8063MB temp=55.1C disk=33%
[2026-03-15 20:50:01] [BEAT] [lucidia] load=3.69 mem=1456/8063MB temp=58.4C disk=33% [2026-03-15 21:20:01] [HEAL] [lucidia] High swap: 1718MB — clearing inactive
[2026-03-15 20:50:01] [HEAL] [lucidia] High swap: 1620MB — clearing inactive [2026-03-15 21:20:04] [FLEET] [lucidia] alice: UP temp=37C mem=3322MB disk=80%
[2026-03-15 20:50:02] [FLEET] [lucidia] alice: UP temp=36C mem=3332MB disk=80% [2026-03-15 21:20:06] [FLEET] [lucidia] octavia: DOWN (no ping response)
[2026-03-15 20:50:03] [BEAT] [lucidia] load=4.44 mem=1454/8063MB temp=59.0C disk=33% [2026-03-15 21:20:06] [FLEET] [lucidia] cecilia: UP temp=40C mem=1270MB disk=19%
[2026-03-15 20:50:03] [BEAT] [lucidia] load=4.44 mem=1448/8063MB temp=59.0C disk=33% [2026-03-15 21:20:07] [FLEET] [lucidia] gematria: UP temp=C mem=4186MB disk=67%
[2026-03-15 20:50:05] [FLEET] [lucidia] octavia: DOWN (no ping response) [2026-03-15 21:20:09] [FLEET] [lucidia] aria: DOWN (no ping response)
[2026-03-15 20:50:05] [FLEET] [lucidia] cecilia: UP temp=53C mem=1283MB disk=19% [2026-03-15 21:20:10] [FLEET] [lucidia] anastasia: UP temp=C mem=305MB disk=69%
[2026-03-15 20:50:07] [FLEET] [lucidia] gematria: UP temp=C mem=4161MB disk=67% [2026-03-15 21:20:56] [BEAT] [lucidia] load=2.61 mem=1611/8063MB temp=56.2C disk=33%
[2026-03-15 20:50:09] [FLEET] [lucidia] aria: DOWN (no ping response) [2026-03-15 21:20:56] [BEAT] [lucidia] load=2.61 mem=1609/8063MB temp=56.2C disk=33%
[2026-03-15 20:50:10] [FLEET] [lucidia] anastasia: UP temp=C mem=319MB disk=69% [2026-03-15 21:21:01] [BEAT] [lucidia] load=2.48 mem=1590/8063MB temp=55.6C disk=33%
[2026-03-15 20:51:01] [BEAT] [lucidia] load=2.87 mem=1423/8063MB temp=54.0C disk=33% [2026-03-15 21:22:01] [BEAT] [lucidia] load=1.94 mem=1614/8063MB temp=60.6C disk=33%
[2026-03-15 20:52:01] [BEAT] [lucidia] load=2.72 mem=1438/8063MB temp=52.9C disk=33% [2026-03-15 21:23:01] [BEAT] [lucidia] load=3.11 mem=1780/8063MB temp=54.0C disk=33%
[2026-03-15 20:53:01] [BEAT] [lucidia] load=2.42 mem=1448/8063MB temp=59.0C disk=33% [2026-03-15 21:24:04] [BEAT] [lucidia] load=7.84 mem=2147/8063MB temp=65.5C disk=33%
[2026-03-15 20:54:01] [BEAT] [lucidia] load=2.19 mem=1402/8063MB temp=48.5C disk=33% [2026-03-15 21:25:27] [BEAT] [lucidia] load=31.87 mem=2530/8063MB temp=55.6C disk=33%
[2026-03-15 20:55:01] [BEAT] [lucidia] load=3.99 mem=1418/8063MB temp=54.0C disk=33% [2026-03-15 21:25:33] [HEAL] [lucidia] High swap: 2561MB — clearing inactive
[2026-03-15 20:55:01] [HEAL] [lucidia] High swap: 1619MB — clearing inactive [2026-03-15 21:26:09] [BEAT] [lucidia] load=44.75 mem=2491/8063MB temp=53.5C disk=33%
[2026-03-15 20:55:11] [BEAT] [lucidia] load=4.26 mem=1398/8063MB temp=52.4C disk=33% [2026-03-15 21:26:10] [BEAT] [lucidia] load=44.75 mem=2478/8063MB temp=58.4C disk=33%
[2026-03-15 20:55:11] [BEAT] [lucidia] load=4.26 mem=1398/8063MB temp=52.4C disk=33% [2026-03-15 21:26:10] [BEAT] [lucidia] load=44.75 mem=2476/8063MB temp=57.3C disk=33%

View File

@@ -1 +1 @@
{"node":"lucidia","ts":"2026-03-16T01:55:11Z","load":4.26,"mem_free_mb":1398,"mem_total_mb":8063,"temp_c":52.4,"disk_pct":33,"throttle":"N/A"} {"node":"lucidia","ts":"2026-03-16T02:26:09Z","load":44.75,"mem_free_mb":2476,"mem_total_mb":8063,"temp_c":57.3,"disk_pct":33,"throttle":"N/A"}

View File

@@ -1,19 +1,19 @@
{ {
"hostname": "octavia", "hostname": "octavia",
"ts": "2026-03-16T01:55:12Z", "ts": "2026-03-16T02:26:19Z",
"uptime_seconds": 88876, "uptime_seconds": 90743,
"kernel": "6.12.62+rpt-rpi-2712", "kernel": "6.12.62+rpt-rpi-2712",
"temp_c": 51.2, "temp_c": 56.2,
"memory_mb": { "memory_mb": {
"total": 8063, "total": 8063,
"used": 6677, "used": 5705,
"free": 1385 "free": 2357
}, },
"disk": "73G/235G (33%)", "disk": "73G/235G (33%)",
"load": [ "load": [
4.24, 39.93,
4.97, 16.77,
5.57 8.64
], ],
"ollama_models": [ "ollama_models": [
"qwen2.5:3b", "qwen2.5:3b",

View File

@@ -1 +1 @@
{"node":"octavia","status":"down","ts":"2026-03-16T01:55:12Z"} {"node":"octavia","status":"down","ts":"2026-03-16T02:26:06Z"}

View File

@@ -179,17 +179,18 @@ async function initDB(db) {
try { await db.prepare(sql).run(); } catch (e) { console.log('Schema skip:', e.message); } try { await db.prepare(sql).run(); } catch (e) { console.log('Schema skip:', e.message); }
} }
// Seed if empty // Upsert ALL seed pages every time (not just when empty)
const count = await db.prepare('SELECT COUNT(*) as c FROM pages').first(); let upserted = 0;
if (count.c === 0) {
for (const page of SEED_PAGES) { for (const page of SEED_PAGES) {
await db.prepare( await db.prepare(
'INSERT OR IGNORE INTO pages (url, title, description, content, domain, category, tags) VALUES (?, ?, ?, ?, ?, ?, ?)' `INSERT INTO pages (url, title, description, content, domain, category, tags)
VALUES (?, ?, ?, ?, ?, ?, ?)
ON CONFLICT(url) DO UPDATE SET title=excluded.title, description=excluded.description,
content=excluded.content, domain=excluded.domain, category=excluded.category, tags=excluded.tags`
).bind(page.url, page.title, page.description, page.content, page.domain, page.category, page.tags).run(); ).bind(page.url, page.title, page.description, page.content, page.domain, page.category, page.tags).run();
upserted++;
} }
return SEED_PAGES.length; return upserted;
}
return 0;
} }
// ─── Search ─────────────────────────────────────────────────────────── // ─── Search ───────────────────────────────────────────────────────────
@@ -430,6 +431,20 @@ async function handleIndex(request, env) {
return Response.json({ ok: true, indexed }); return Response.json({ ok: true, indexed });
} }
// ─── Rebuild FTS Index ───────────────────────────────────────────────
async function handleRebuild(env) {
await env.DB.prepare('DELETE FROM pages_fts').run();
const rows = await env.DB.prepare('SELECT rowid, title, description, content, tags FROM pages').all();
let rebuilt = 0;
for (const r of (rows.results || [])) {
await env.DB.prepare(
'INSERT INTO pages_fts(rowid, title, description, content, tags) VALUES (?, ?, ?, ?, ?)'
).bind(r.rowid, r.title, r.description, r.content, r.tags).run();
rebuilt++;
}
return Response.json({ ok: true, rebuilt });
}
// ─── Lucky (I'm Feeling Lucky — redirect to top result) ────────────── // ─── Lucky (I'm Feeling Lucky — redirect to top result) ──────────────
async function handleLucky(request, env) { async function handleLucky(request, env) {
const q = new URL(request.url).searchParams.get('q')?.trim(); const q = new URL(request.url).searchParams.get('q')?.trim();
@@ -945,6 +960,10 @@ export default {
response = Response.json({ ok: true, seeded }); response = Response.json({ ok: true, seeded });
break; break;
case url.pathname === '/rebuild':
response = await handleRebuild(env);
break;
case url.pathname === '/search' || url.pathname === '/api/search': case url.pathname === '/search' || url.pathname === '/api/search':
response = await handleSearch(request, env); response = await handleSearch(request, env);
break; break;