from __future__ import annotations
import json
import os
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
HTML = b"""
BLUM startup
BLUM | TRADER BRAIN
BLUM is restoring its learning memory
The service is healthy but not ready. The API starts automatically after persisted market history is restored. No learning data is being discarded.
"""
class RestoreStatusHandler(BaseHTTPRequestHandler):
def do_GET(self) -> None: # noqa: N802 - BaseHTTPRequestHandler contract
if self.path.split("?", 1)[0] in {"/health", "/startup/status"}:
payload = json.dumps(
{
"status": "restoring",
"healthy": True,
"api_ready": False,
"ui_ready": True,
"current_stage": "database_restore",
}
).encode("utf-8")
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.send_header("Content-Length", str(len(payload)))
self.end_headers()
self.wfile.write(payload)
return
self.send_response(200)
self.send_header("Content-Type", "text/html; charset=utf-8")
self.send_header("Content-Length", str(len(HTML)))
self.end_headers()
self.wfile.write(HTML)
def log_message(self, format: str, *args: object) -> None:
return
if __name__ == "__main__":
port = int(os.getenv("PORT", "7860"))
ThreadingHTTPServer(("0.0.0.0", port), RestoreStatusHandler).serve_forever()