From aedd22436e87a037cd6fd598132742a4a1a7aa08 Mon Sep 17 00:00:00 2001 From: Laan Tungir Date: Sat, 25 Jul 2026 10:07:08 -0400 Subject: [PATCH] v2.1.16 - Implemented api-worker timer + LISTEN/NOTIFY monitoring (Phases 1,2,5) and fixed thread-connection binding bug that stopped dashboard updates --- Dockerfile.alpine-musl | 1 + Makefile | 4 +- api/index.html | 125 + api/index.js | 376 +- crelay.log | 9970 ---------------------- plans/api_upgrade_implementation_plan.md | 178 + plans/caching_relay_daemon_plan.md | 503 ++ plans/caching_relay_integration_plan.md | 543 ++ projects.txt | 10 - src/api.c | 335 +- src/api.h | 2 - src/caching_inbox_poller.c | 253 + src/caching_inbox_poller.h | 27 + src/caching_service_launcher.c | 265 + src/caching_service_launcher.h | 37 + src/config.c | 533 +- src/db_ops.c | 54 + src/db_ops.h | 19 + src/db_ops_postgres.c | 313 + src/db_ops_postgres.h | 11 + src/db_ops_sqlite.c | 9 + src/default_config_event.h | 32 +- src/embedded_web_content.c | 8 +- src/main.c | 361 +- src/main.h | 46 +- src/pg_schema.h | 127 +- src/pg_schema.sql | 125 +- src/sqlite_db_ops.h | 3 + src/subscriptions.c | 42 +- src/subscriptions.h | 1 + src/websockets.c | 10 + test_results_20260402_113406.log | 18 - test_results_20260403_055357.log | 18 - tests/test_api_worker_monitoring.mjs | 164 + 34 files changed, 4308 insertions(+), 10215 deletions(-) delete mode 100644 crelay.log create mode 100644 plans/api_upgrade_implementation_plan.md create mode 100644 plans/caching_relay_daemon_plan.md create mode 100644 plans/caching_relay_integration_plan.md delete mode 100644 projects.txt create mode 100644 src/caching_inbox_poller.c create mode 100644 src/caching_inbox_poller.h create mode 100644 src/caching_service_launcher.c create mode 100644 src/caching_service_launcher.h delete mode 100644 test_results_20260402_113406.log delete mode 100644 test_results_20260403_055357.log create mode 100644 tests/test_api_worker_monitoring.mjs diff --git a/Dockerfile.alpine-musl b/Dockerfile.alpine-musl index 770a163..b63d820 100644 --- a/Dockerfile.alpine-musl +++ b/Dockerfile.alpine-musl @@ -130,6 +130,7 @@ RUN if [ "$DEBUG_BUILD" = "true" ]; then \ src/main.c src/config.c src/dm_admin.c src/request_validator.c \ src/nip009.c src/nip011.c src/nip013.c src/nip040.c src/nip042.c \ src/websockets.c src/subscriptions.c src/api.c src/embedded_web_content.c src/ip_ban.c \ + src/caching_inbox_poller.c src/caching_service_launcher.c \ src/db_ops.c src/db_ops_sqlite.c src/db_ops_postgres.c src/thread_pool.c \ -o /build/c_relay_pg_static \ c_utils_lib/libc_utils.a \ diff --git a/Makefile b/Makefile index 0bc8238..0439f07 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ CC = gcc CFLAGS = -Wall -Wextra -std=c99 -g -O2 -INCLUDES = -I. -Ic_utils_lib/src -Inostr_core_lib -Inostr_core_lib/nostr_core -Inostr_core_lib/cjson -Inostr_core_lib/nostr_websocket +INCLUDES = -I. -Ic_utils_lib/src -Inostr_core_lib -Inostr_core_lib/nostr_core -Inostr_core_lib/cjson -Inostr_core_lib/nostr_websocket -I/usr/include/postgresql LIBS = -lsqlite3 -lwebsockets -lz -ldl -lpthread -lm -L/usr/local/lib -lsecp256k1 -lssl -lcrypto -L/usr/local/lib -lcurl -Lc_utils_lib -lc_utils DB_BACKEND ?= sqlite @@ -11,7 +11,7 @@ DB_BACKEND ?= sqlite BUILD_DIR = build # Source files -MAIN_SRC = src/main.c src/config.c src/dm_admin.c src/request_validator.c src/nip009.c src/nip011.c src/nip013.c src/nip040.c src/nip042.c src/websockets.c src/subscriptions.c src/api.c src/embedded_web_content.c src/ip_ban.c src/thread_pool.c +MAIN_SRC = src/main.c src/config.c src/dm_admin.c src/request_validator.c src/nip009.c src/nip011.c src/nip013.c src/nip040.c src/nip042.c src/websockets.c src/subscriptions.c src/api.c src/embedded_web_content.c src/ip_ban.c src/thread_pool.c src/caching_inbox_poller.c src/caching_service_launcher.c DB_OPS_SRC = src/db_ops.c ifeq ($(DB_BACKEND),postgres) diff --git a/api/index.html b/api/index.html index 0344667..9cbd7de 100644 --- a/api/index.html +++ b/api/index.html @@ -18,6 +18,7 @@
  • +
  • @@ -579,6 +580,130 @@ WEB OF TRUST + + +