fix(ingest): process socket log payloads synchronously and return verified promotion counts to client
CI Test Suite / Run Component Tests & Pipeline Verification (push) Successful in 1m25s

This commit is contained in:
2026-09-30 16:56:40 +02:00
parent c03bb348b5
commit 6cb9631958
2 changed files with 10 additions and 17 deletions
+4 -3
View File
@@ -22,14 +22,15 @@ out/
*.db
*.sqlite
*.sqlite3
client_state.json
*.tmp
# Live configuration with generated private keys & tokens (samples are tracked)
server_config.json
client_config.json
client_state.json
local_collector_state.json
test_*.json
test_*.db
test_pipeline_master_ca/
test_pipeline_certs/
master_ca_certs/
.env
*.env
+6 -14
View File
@@ -1879,20 +1879,12 @@ async def handle_socket_client(reader: asyncio.StreamReader, writer: asyncio.Str
if client_id and "server" not in log_payload:
log_payload["server"] = client_id
INGEST_QUEUE.push(log_payload)
if len(INGEST_QUEUE._buffer) >= INGEST_QUEUE.batch_size:
res = INGEST_QUEUE.flush(
db_path=SERVER_STATE["config"]["db_path"],
window_hours=SERVER_STATE["config"]["evaluation_window_hours"],
min_runs=SERVER_STATE["config"]["min_persistence_runs"]
)
else:
res = {
"status": "success",
"buffered": True,
"processed": len(log_payload.get("logs", [])),
"queue_size": len(INGEST_QUEUE._buffer)
}
res = process_ingested_logs(
log_payload,
db_path=SERVER_STATE["config"]["db_path"],
window_hours=SERVER_STATE["config"]["evaluation_window_hours"],
min_runs=SERVER_STATE["config"]["min_persistence_runs"]
)
resp_bytes = json.dumps(res).encode("utf-8")
writer.write(struct.pack(">I", len(resp_bytes)) + resp_bytes)