0920cc092d
v1.2.55 - Preserve relay version metadata for API header/title and accept JSON NIP-11 content type
v1.2.56
Your Name2026-03-23 09:09:50 -04:00
a89460be5d
v1.2.54 - Sync relay_version to compiled CRELAY_VERSION on startup and show version in API header/title
v1.2.55
Your Name2026-03-23 09:04:49 -04:00
ff2a3aa335
v1.2.53 - Fix P0 config-value memory leaks in hot paths and add investigation plan
v1.2.54
Your Name2026-03-19 07:59:40 -04:00
94b61e8a7c
v1.2.52 - Update nostr_core_lib to v0.4.13 and route nostr logs through relay callback logger
v1.2.53
Your Name2026-03-13 14:33:08 -04:00
b0c0754e83
v1.2.51 - Fix NIP-01 non-compliance: limit:0 now correctly returns zero stored events instead of falling through to default_limit
v1.2.52
Your Name2026-03-04 11:23:58 -04:00
3265e3d114
v1.2.50 - Fix NIP-42 relay URL verification and add onauth to all publish flows
v1.2.51
Your Name2026-03-01 12:20:44 -04:00
927659ece1
v1.2.49 - Fix: MEM% bar format (bar then MB), move CPU Core row after CPU Usage
v1.2.50
Your Name2026-02-25 07:37:50 -04:00
b6ff4150b4
v1.2.48 - Add CPU% and MEM% ASCII bar graphs to API page stats
v1.2.49
Your Name2026-02-25 07:33:06 -04:00
63bc526163
v1.2.47 - Fix build: use getter function for g_connection_count (was static, can't extern)
v1.2.48
Your Name2026-02-25 07:24:17 -04:00
a1f712236a
v1.2.46 - Fix: move extern g_connection_count to file scope in api.c
v1.2.47
Your Name2026-02-25 07:22:14 -04:00
06e6c17b7b
v1.2.45 - Add WebSocket Connections to system status: api.c sends active_connections, HTML+JS display it
v1.2.46
Your Name2026-02-25 07:18:42 -04:00
0751a7c55c
v1.2.44 - IP Bans: show idle+auth bans in stats/status, fix filter buttons, add idle ban columns to query
v1.2.45
Your Name2026-02-25 07:12:07 -04:00
c11a8ba292
v1.2.41 - Fix IP Bans page: route ip_bans SQL responses to handleIpBansResponse
v1.2.42
Your Name2026-02-25 06:59:22 -04:00
0f124fe575
v1.2.40 - IP Bans page: show whitelisted IPs with star icon, hide Unban button for whitelisted IPs
v1.2.41
Your Name2026-02-25 06:54:35 -04:00
6b20452fab
v1.2.39 - Fix IP Bans page: convert rows+columns SQL response format to objects for display
v1.2.40
Your Name2026-02-25 06:53:50 -04:00
10c19bc243
v1.2.38 - Add idle_ban_whitelist config: comma-separated IPs that are never idle-banned
v1.2.39
Your Name2026-02-25 06:48:41 -04:00
3d7aa2196f
v1.2.37 - Fix: executeSqlQueryRaw uses relayPool/sendAdminCommand instead of undefined pool variable
v1.2.38
Your Name2026-02-25 06:43:29 -04:00
a416c3f275
v1.2.36 - Fix: don't reset relay connection state when external relays time out in subscription onclose
v1.2.37
Your Name2026-02-25 06:33:25 -04:00
bba9baabc3
v1.2.35 - Fix: only record idle ban failures for WebSocket connections, not HTTP requests (NIP-11/embedded files)
v1.2.36
Your Name2026-02-24 17:41:59 -04:00
31187c4c4f
v1.2.34 - Fix: mark HTTP requests (NIP-11, embedded files) as session_active to prevent idle ban on legitimate HTTP clients
v1.2.35
Your Name2026-02-24 17:07:33 -04:00
76c9b3fcf0
v1.2.32 - Set idle_ban_threshold default to 1 and idle_ban_window_sec default to 30
v1.2.33
Your Name2026-02-24 15:45:40 -04:00
929bd09164
v1.2.31 - Fix idle connection timeout: use global connection list + periodic timer instead of lws_set_timeout which was not firing
v1.2.32
Your Name2026-02-24 15:44:11 -04:00
d17f1dd8d5
v1.2.30 - Temporarily bypass admin verification on API page (idle timeout fix pending)
v1.2.31
Your Name2026-02-24 14:55:39 -04:00
207a949835
v1.2.29 - Added idle connection ban system - bans IPs that connect but never send REQ/EVENT (idle timeout or early disconnect) with separate rate limiting from auth failures
v1.2.30
Your Name2026-02-24 14:18:27 -04:00
d08f4e4221
v1.2.28 - Add debug_level config setting: live update every 60s without restart, default 0
v1.2.29
Your Name2026-02-24 08:56:32 -04:00
c96736fa6a
v1.2.27 - Permanent ban escalation: ban_count never resets, IPs with history always get 24h ban on next failure
v1.2.28
Your Name2026-02-23 18:18:55 -04:00
f8ec4ae924
v1.2.26 - Persistent IP ban table: save/load to ip_bans DB, auth success tracking, lifetime stats per IP
v1.2.27
Your Name2026-02-23 18:16:14 -04:00
fe7304ac7f
v1.2.25 - Add NIP-42 AUTH support to web UI: onauth callback in subscribeMany and publish calls
v1.2.26
Your Name2026-02-23 18:03:29 -04:00
e5d39c984b
v1.2.24 - Fix: run ip_ban maintenance unconditionally every 60s regardless of max_connection_seconds setting
v1.2.25
Your Name2026-02-23 17:57:20 -04:00
5e45f21e35
v1.2.23 - ip_ban: retain ban_count for 24 hours after last ban expiry, then fully clean entry
v1.2.24
Your Name2026-02-23 17:16:02 -04:00
5321a238b8
v1.2.22 - Fix ip_ban cleanup: preserve ban_count on cleanup so exponential backoff persists across ban expiry
v1.2.23
Your Name2026-02-23 17:12:15 -04:00
083bc14972
v1.2.21 - Fix IP ban check: use pss->client_ip (proxy-aware) instead of raw socket IP to match failure recording
v1.2.22
Your Name2026-02-23 16:26:23 -04:00
11aaccba9b
v1.2.20 - Add IP auth failure ban system: track failures per IP, ban after threshold with exponential backoff, periodic log stats
v1.2.21
Your Name2026-02-23 16:02:07 -04:00
bd1bbd763d
v1.2.19 - Add IP auth failure ban system: track failures per IP, ban after threshold with exponential backoff, periodic log stats
v1.2.20
Your Name2026-02-23 16:00:53 -04:00
2bd7aa5a10
v1.2.18 - Proactive auth timeout via lws_set_timeout: close idle unauthenticated connections after nip42_auth_timeout_sec even without REQ
v1.2.19
Your Name2026-02-23 15:37:45 -04:00
361912ec85
v1.2.17 - Add nip42_auth_timeout_sec (default 10s): close unauthenticated connections after timeout to prevent connection accumulation
v1.2.18
Your Name2026-02-23 15:22:18 -04:00
0de491382e
v1.2.16 - Fix auth rules UI: change label/placeholder/errors from nsec to npub (public key, not private key)
v1.2.17
Your Name2026-02-23 14:36:19 -04:00
3148bbbee7
v1.2.15 - Admin verification: show 'Waiting for response' with status updates, 60s timeout, no premature access denied
v1.2.16
Your Name2026-02-23 14:26:02 -04:00
3965ba04d8
v1.2.14 - Handle late admin verification response: grant access even if timeout already fired and access-denied overlay was shown
v1.2.15
Your Name2026-02-23 14:24:55 -04:00
b96af938bd
v1.2.13 - Add WoT status to NIP-11 response: restricted_writes, auth_required, and web_of_trust object when WoT enabled
v1.2.14
Your Name2026-02-23 14:22:08 -04:00
89c8248013
v1.2.12 - Increase admin verification timeout from 5s to 30s; continue waiting after publish timeout under heavy load
v1.2.13
Your Name2026-02-23 14:16:56 -04:00
d8f477c6cf
v1.2.11 - Early duplicate check before secp256k1 signature verification — skip crypto for events already in DB
v1.2.12
Your Name2026-02-23 14:01:23 -04:00
040eeadb13
v1.2.10 - Zero-copy message queue: eliminate memcpy in broadcast and REQ paths via queue_message_take_ownership()
v1.2.11
Your Name2026-02-23 13:45:56 -04:00
83f8b0ab88
v1.2.9 - Replace cJSON_GetObjectItem with CaseSensitive variant (178 calls) — eliminates 14% CPU from tolower+linear scan in hot path
v1.2.10
Your Name2026-02-23 13:25:50 -04:00
b82f7eaaf3
v1.2.8 - Add debug build support: _debug suffix in build_static.sh, deploy_lt_debug.sh with perf profiling workflow
v1.2.9
Your Name2026-02-23 13:07:53 -04:00
0dc5b75d7c
v1.2.7 - Add configurable SQLite mmap_size (256MB) and cache_size (64MB) PRAGMAs for ~20% CPU reduction from DB read overhead
v1.2.8
Your Name2026-02-23 09:48:01 -04:00
e94b1a81e3
v1.2.6 - Add MAX_MESSAGE_QUEUE_SIZE=500 limit to prevent OOM from unbounded write queue; fix wasted buf allocation in broadcast
v1.2.7
Your Name2026-02-23 09:12:09 -04:00
1adabdbc4e
v1.2.5 - Add nip17_admin_enabled config toggle (default off) to prevent OOM from NIP-17 gift wrap decryption flood
v1.2.6
Your Name2026-02-23 08:58:10 -04:00
81d44c3d8c
v1.2.4 - Add more characters to valid subscription characters
v1.2.5
Your Name2026-02-11 05:56:09 -04:00
7acc0bdd90
v1.2.3 - Handle rate limiting properly on kind 99999 request
v1.2.4
Your Name2026-02-09 07:49:43 -04:00
18a7deec54
v1.2.0 - Schema v11: Added event_json storage for 2500x performance improvement
v1.2.1
Your Name2026-02-02 20:27:50 -04:00
c794370a3f
v1.1.9 - Add composite index for active_subscriptions_log view optimization (schema v10) - reduces monitoring queries from 540ms to <10ms
v1.2.0
Your Name2026-02-02 11:38:57 -04:00
2ed4b96058
v1.1.8 - Add comprehensive database query logging with timing at debug level 3, fix schema version compatibility (v6-v9), add version logging at startup, allow monitoring throttle=0 to disable monitoring
v1.1.9
Your Name2026-02-02 11:20:11 -04:00
c0051b22be
v1.1.7 - Add per-connection database query tracking for abuse detection
v1.1.8
Your Name2026-02-01 16:26:37 -04:00
4cc2d2376e
v1.1.6 - Optimize: Deduplicate kinds in subscription index to prevent redundant operations
v1.1.7
Your Name2026-02-01 15:59:54 -04:00
30dc4bf67d
v1.1.5 - Fix CRITICAL segfault: Use wrapper nodes for no-kind-filter subscriptions
v1.1.6
Your Name2026-02-01 12:37:07 -04:00
a1928cc5d7
v1.1.4 - Add kind-based index for 10x subscription matching performance improvement
v1.1.5
Your Name2026-02-01 11:15:26 -04:00
7bf0757b1f
v1.1.3 - Rename VERSION to CRELAY_VERSION to avoid conflict with nostr_core_lib
v1.1.4
Your Name2026-02-01 10:02:19 -04:00
11b0a88cdd
v1.1.2 - Fix hardcoded version string in print_version() - use VERSION define from main.h
v1.1.3
Your Name2026-01-31 16:48:11 -04:00
e8f8e3b0cf
v1.1.1 - Fix NOTICE message silent failure - add pss parameter to send_notice_message()
v1.1.2
Your Name2026-01-31 15:48:29 -04:00
35b1461ff6
v1.1.0 - Documentation restructure: New README.md and comprehensive API.md
Your Name2026-01-23 06:58:14 -04:00
f0462929ea
v1.0.9 - Fix active_subscriptions_log view to check ended_at column instead of looking for separate close events (schema v9)
Your Name2025-12-09 06:29:36 -04:00
ef172c8356
v1.0.7 - Added a clean startup to erase subscriptions.
v1.0.8
Your Name2025-12-06 18:26:22 -04:00
ae0370b47f
v1.0.6 - Working on cleaning up subscriptions which were piling up. Set a startup cleanup, and a connection age limit.
v1.0.7
Your Name2025-12-05 07:37:57 -04:00