fix: rate limiter, graph/vector/query/server бъгове

Поправени проблеми:
- Rate limiter: globalRate вече се enforce-ва; cleanupStaleClients() за memory leak
- Graph engine: addEdge проверява дали src/dst nodes съществуват
- Vector engine: distance() хвърля ValueError при dimension mismatch
- Query: aggregate + * на empty result вече не crash-ва
- Query: exprToSql funcCall вече работи с 0 аргумента
- Query: INSERT trigger вече не crash-ва при празни VALUES
- Server: recvWithTimeout() за всички network reads
- Server: защита от negative activeConnections

292 теста, 0 failure-а.
This commit is contained in:
2026-05-12 23:15:09 +03:00
parent 6aaabb518d
commit 80d57a36bd
5 changed files with 72 additions and 11 deletions
+2
View File
@@ -82,6 +82,8 @@ proc manhattanDistance*(a, b: Vector): float64 =
return sum
proc distance*(a, b: Vector, metric: DistanceMetric): float64 =
if a.len != b.len:
raise newException(ValueError, "Vector dimension mismatch: " & $a.len & " != " & $b.len)
case metric
of dmCosine: cosineDistance(a, b)
of dmEuclidean: euclideanDistance(a, b)