Add active user session tracking from agent user :0 2026-07-16 15:46

user     pts/0        2026-07-16 15:50 (:0)
user     pts/1        2026-07-16 16:46 (:0)
user     pts/2        2026-07-17 09:05 (:0) to server UI
This commit is contained in:
2026-07-17 09:44:39 +07:00
parent 8e62eaf3f3
commit 7b2e5172ea
9 changed files with 195 additions and 5 deletions
+5
View File
@@ -69,6 +69,10 @@ def heartbeat(
computer.current_ram_percent = payload.ram_percent
computer.current_ram_total_gb = payload.ram_total_gb
sessions = payload.sessions
if sessions:
sessions = [s.model_dump() for s in sessions]
heartbeat = Heartbeat(
computer_id=computer.id,
timestamp=now,
@@ -83,6 +87,7 @@ def heartbeat(
cpu_temp=payload.cpu_temp,
load_avg=payload.load_avg,
processes=payload.processes or [],
sessions=sessions,
)
db.add(heartbeat)
db.commit()
+5
View File
@@ -115,6 +115,7 @@ def computer_page(computer_id: int, request: Request, db: Session = Depends(get_
)
hb_data = []
latest_sessions = []
for h in heartbeats:
hb_data.append({
"timestamp": h.timestamp.isoformat() if h.timestamp else None,
@@ -124,7 +125,10 @@ def computer_page(computer_id: int, request: Request, db: Session = Depends(get_
"ram_percent": h.ram_percent,
"cpu_temp": h.cpu_temp,
"processes": h.processes or [],
"sessions": h.sessions or [],
})
if not latest_sessions and h.sessions:
latest_sessions = h.sessions
return templates.TemplateResponse(
"computer.html",
@@ -133,6 +137,7 @@ def computer_page(computer_id: int, request: Request, db: Session = Depends(get_
"user": current_user,
"computer": computer,
"heartbeats": hb_data,
"latest_sessions": latest_sessions,
"unread_count": get_unread_count(db),
},
)