1 Commits

Author SHA1 Message Date
Misaka
a75a3c2198 feat(server): expose active_sites in /status
The frontend needs to know which sites are actually mounted this
session (debug mode mounts only target_site). /status now returns
active_sites = ctx.sites_to_watch, so the dashboard can stop counting
stale login_state values from previous sessions as online.
2026-08-12 21:41:11 +08:00

View File

@@ -322,10 +322,19 @@ def run_compare(req: CompareRequest):
@app.get("/status")
def get_status():
"""各站登录态 + 数据态 + 入库态(前端状态盘用),另含 worker 就绪状态。"""
"""各站登录态 + 数据态 + 入库态(前端状态盘用),另含 worker 就绪状态。
active_sites本次会话实际挂载的站点= ctx.sites_to_watch
调试模式config.yaml debug.enabled下仅挂载 target_site未挂载站点
的 login_state 是 state.db 里上一会话的残留值,前端须以 active_sites 为准
判定"在线",不能只看 login_state。
"""
ctx = worker_state.get("ctx")
active_sites = list(ctx.sites_to_watch) if ctx is not None else []
return {
"worker_ready": worker_state["ready"],
"worker_error": worker_state["error"],
"active_sites": active_sites,
"sites": state_store.get_all_status(),
"ingest": state_store.get_all_ingest_state(),
}