betterwithage commited on
Commit
66c3edc
·
verified ·
1 Parent(s): 5384703

chore(sync): mirror backend .py + Dockerfile to Space (hf-sync-backend)

Browse files

Automated backend sync from szl-holdings/a11oy main via hf-sync-backend.
Updated (differed from the Space): routers/series_a_control_plane.py
Deleted (gone from the repo + Dockerfile COPY set): (none)

Keeps the Space-built backend (serve.py + the Dockerfile-COPY'd .py
modules) identical to GitHub main so the Space never rebuilds from a
stale backend, new endpoints don't 404 there, and orphaned modules
removed from the repo don't linger in the Space tree.

Files changed (1) hide show
  1. routers/series_a_control_plane.py +31 -5
routers/series_a_control_plane.py CHANGED
@@ -1067,6 +1067,13 @@ def _event_cursor(request: Request) -> int:
1067
  return cursor
1068
 
1069
 
 
 
 
 
 
 
 
1070
  def register(app: FastAPI, ns: str = "a11oy", *, db_path: str | None = None) -> dict[str, Any]:
1071
  if any(getattr(route, "path", None) == f"/api/{ns}/v1/series-a/status" for route in app.router.routes):
1072
  return {"ok": True, "state": "ALREADY_REGISTERED", "routes": []}
@@ -1077,17 +1084,36 @@ def register(app: FastAPI, ns: str = "a11oy", *, db_path: str | None = None) ->
1077
  async def page(request: Request) -> Response:
1078
  if request.method == "HEAD":
1079
  return Response(status_code=200, media_type="text/html")
1080
- return HTMLResponse(_asset("index.html"), headers={"cache-control": "no-store"})
 
1081
 
1082
  async def js(request: Request) -> Response:
 
1083
  if request.method == "HEAD":
1084
- return Response(status_code=200, media_type="application/javascript")
1085
- return Response(_asset("app.js"), media_type="application/javascript", headers={"cache-control": "public,max-age=300"})
 
 
 
 
 
 
 
 
1086
 
1087
  async def css(request: Request) -> Response:
 
1088
  if request.method == "HEAD":
1089
- return Response(status_code=200, media_type="text/css")
1090
- return Response(_asset("styles.css"), media_type="text/css", headers={"cache-control": "public,max-age=300"})
 
 
 
 
 
 
 
 
1091
 
1092
  async def status(request: Request) -> Response:
1093
  payload = service.latest_status()
 
1067
  return cursor
1068
 
1069
 
1070
+ def _asset_cache_control(request: Request) -> str:
1071
+ revision = _git_revision()
1072
+ if revision != "UNKNOWN" and request.query_params.get("v") == revision:
1073
+ return "public,max-age=31536000,immutable"
1074
+ return "no-store"
1075
+
1076
+
1077
  def register(app: FastAPI, ns: str = "a11oy", *, db_path: str | None = None) -> dict[str, Any]:
1078
  if any(getattr(route, "path", None) == f"/api/{ns}/v1/series-a/status" for route in app.router.routes):
1079
  return {"ok": True, "state": "ALREADY_REGISTERED", "routes": []}
 
1084
  async def page(request: Request) -> Response:
1085
  if request.method == "HEAD":
1086
  return Response(status_code=200, media_type="text/html")
1087
+ html = _asset("index.html").replace("__SOURCE_REVISION__", _git_revision())
1088
+ return HTMLResponse(html, headers={"cache-control": "no-store"})
1089
 
1090
  async def js(request: Request) -> Response:
1091
+ headers = {"cache-control": _asset_cache_control(request)}
1092
  if request.method == "HEAD":
1093
+ return Response(
1094
+ status_code=200,
1095
+ media_type="application/javascript",
1096
+ headers=headers,
1097
+ )
1098
+ return Response(
1099
+ _asset("app.js"),
1100
+ media_type="application/javascript",
1101
+ headers=headers,
1102
+ )
1103
 
1104
  async def css(request: Request) -> Response:
1105
+ headers = {"cache-control": _asset_cache_control(request)}
1106
  if request.method == "HEAD":
1107
+ return Response(
1108
+ status_code=200,
1109
+ media_type="text/css",
1110
+ headers=headers,
1111
+ )
1112
+ return Response(
1113
+ _asset("styles.css"),
1114
+ media_type="text/css",
1115
+ headers=headers,
1116
+ )
1117
 
1118
  async def status(request: Request) -> Response:
1119
  payload = service.latest_status()