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 INTO pages (url, title, description, content, domain, category, tags)
'INSERT OR IGNORE INTO pages (url, title, description, content, domain, category, tags) VALUES (?, ?, ?, ?, ?, ?, ?)' VALUES (?, ?, ?, ?, ?, ?, ?)
).bind(page.url, page.title, page.description, page.content, page.domain, page.category, page.tags).run(); ON CONFLICT(url) DO UPDATE SET title=excluded.title, description=excluded.description,
} content=excluded.content, domain=excluded.domain, category=excluded.category, tags=excluded.tags`
return SEED_PAGES.length; ).bind(page.url, page.title, page.description, page.content, page.domain, page.category, page.tags).run();
upserted++;
} }
return 0; return upserted;
} }
// ─── 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;