dded cutoff = utcnow() - timedelta(minutes=15)
This commit is contained in:
parent
c71b96421f
commit
ea62e387a4
|
|
@ -5,7 +5,7 @@ from __future__ import annotations
|
|||
import asyncio
|
||||
import json
|
||||
from collections import deque
|
||||
from datetime import UTC, datetime
|
||||
from datetime import UTC, datetime, timedelta
|
||||
from typing import TYPE_CHECKING, Any
|
||||
from uuid import UUID
|
||||
|
||||
|
|
@ -257,12 +257,14 @@ async def get_activity_ticker(
|
|||
) -> list[ActivityTickerItem]:
|
||||
"""Return recent activity items shaped for the navbar ticker."""
|
||||
board_ids = await list_accessible_board_ids(session, member=ctx.member, write=False)
|
||||
cutoff = utcnow() - timedelta(minutes=15)
|
||||
|
||||
statement = (
|
||||
select(ActivityEvent, Agent)
|
||||
.outerjoin(Agent, col(ActivityEvent.agent_id) == col(Agent.id))
|
||||
.outerjoin(Task, col(ActivityEvent.task_id) == col(Task.id))
|
||||
.where(func.length(func.trim(col(ActivityEvent.message))) > 0)
|
||||
.where(col(ActivityEvent.created_at) >= cutoff)
|
||||
.order_by(desc(col(ActivityEvent.created_at)))
|
||||
.limit(limit)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -215,6 +215,11 @@ textarea::placeholder {
|
|||
100% { transform: translateX(-50%); }
|
||||
}
|
||||
|
||||
@keyframes live-pulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.2; }
|
||||
}
|
||||
|
||||
@keyframes progress-shimmer {
|
||||
0% {
|
||||
transform: translateX(-100%);
|
||||
|
|
@ -272,6 +277,9 @@ textarea::placeholder {
|
|||
.animate-ticker:hover {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
.animate-live-pulse {
|
||||
animation: live-pulse 1.4s ease-in-out infinite;
|
||||
}
|
||||
.shadow-lush {
|
||||
box-shadow: var(--shadow-panel);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,8 +62,11 @@ export function AgentActivityTicker() {
|
|||
|
||||
return (
|
||||
<div className="border-t border-[color:var(--border)] bg-[color:var(--surface-muted)] overflow-hidden h-8 flex items-center">
|
||||
<span className="shrink-0 px-3 text-[11px] font-semibold uppercase tracking-widest text-[color:var(--text-quiet)] select-none border-r border-[color:var(--border)] h-full flex items-center">
|
||||
Live
|
||||
<span className="shrink-0 px-3 select-none border-r border-[color:var(--border)] h-full flex items-center">
|
||||
<span className="inline-flex items-center gap-1.5 bg-red-600 text-white text-[10px] font-black tracking-[0.2em] uppercase px-2 py-0.5 rounded-sm shadow-sm shadow-red-900/40">
|
||||
<span className="animate-live-pulse w-1.5 h-1.5 rounded-full bg-white" />
|
||||
Live
|
||||
</span>
|
||||
</span>
|
||||
<div className="flex-1 overflow-hidden h-full flex items-center">
|
||||
<div className="flex whitespace-nowrap animate-ticker">
|
||||
|
|
|
|||
Loading…
Reference in New Issue