← back to Ticket System
office: harden agent placement — clear stale atWork glow on drop-out, guard NaN dates (session-close lint)
338a454d71631a02579f4979e49d29bb5b333822 · 2026-07-27 09:39:16 -0700 · Steve Abrams
Files touched
Diff
commit 338a454d71631a02579f4979e49d29bb5b333822
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Jul 27 09:39:16 2026 -0700
office: harden agent placement — clear stale atWork glow on drop-out, guard NaN dates (session-close lint)
---
office.html | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/office.html b/office.html
index 65fce39..879c215 100644
--- a/office.html
+++ b/office.html
@@ -353,9 +353,9 @@ function agentPlacement(tk){
best.set(name,{ ts, ticketId:t.id, rank, working:t.status==='doing' });
};
for(const t of tk){
- (t.actions ||[]).forEach(a=>put(a.agent,+new Date(a.ts),t, t.assignee===a.agent));
- (t.comments||[]).forEach(c=>put(c.agent,+new Date(c.ts),t, t.assignee===c.agent));
- if(t.assignee) put(t.assignee,+new Date(t.updated_at),t,true);
+ (t.actions ||[]).forEach(a=>put(a.agent,+new Date(a.ts??0),t, t.assignee===a.agent));
+ (t.comments||[]).forEach(c=>put(c.agent,+new Date(c.ts??0),t, t.assignee===c.agent));
+ if(t.assignee) put(t.assignee,+new Date(t.updated_at??0),t,true);
}
return best; }
@@ -400,6 +400,7 @@ function updateRoom(room,t){ const u=room.userData, prev=u.ticket; u.ticket=t;
function slotInRoom(p,i,n){ if(n<=1) return new THREE.Vector3(p.x,0,p.z+1.2);
const r=Math.min(2.6,1.2+n*0.15),a=(i/n)*Math.PI*2; return new THREE.Vector3(p.x+Math.cos(a)*r,0,p.z+Math.sin(a)*r); }
function placeAvatars(tk){ const place=agentPlacement(tk), perRoom=new Map(), assign=[];
+ for(const av of avatarByName.values()) av.userData.atWork=false; // clear stale glow before re-seating
for(const [name,info] of place){ const room=roomByTicket.get(info.ticketId);
const rid=(room&&room.visible)?info.ticketId:null; assign.push({name,rid,working:info.working&&!!rid});
if(rid) perRoom.set(rid,(perRoom.get(rid)||0)+1); }
← ee1e135 office: seat working agents in their doing room (rank active
·
back to Ticket System
·
auto-save: 2026-07-27T11:50:21 (2 files) — office.html serve 4d5b85d →