Summary
Canonical live canvas session does not surface room-active truth into /chat/context/:agent. The node-side runtime stays in_session=false even while a real human user is actively signed in and present on the canvas.
Steps to reproduce
- Open a shared staging login session
- Force canonical host
rn-34faba44-wlgkeq
- Open
/canvas — confirm signed-in user is present and active
- Poll
GET /chat/context/compass repeatedly during the live session
- Observed: all polls return
room_status.in_session = false across 12+ consecutive polls
Root cause (known so far)
The node sets in_session = roomActiveCount > 0 where roomActiveCount comes from listRoomParticipants().length. Cloud proxy GET /api/hosts/:id/presence stayed green during the same window but only shows agent presence, not human room participants.
Next narrowing step (blocked)
Needs one of:
- Heartbeat-token-authenticated
GET /room/participants on rn-34faba44-wlgkeq during a live session
- A surfaced cloud proxy route for room participants
- Fly auth on a surface that already has it
If participants are present while /chat/context stays in_session=false → bug is in room_status derivation on the node
If participants are zero → bug is in room-presence join/write path
Without the authenticated participant probe, root cause cannot be narrowed further from cloud side.
Context
- Canonical host:
rn-34faba44-wlgkeq
- Cloud API route:
GET /api/hosts/:hostId/chat/context/:agentName
- Node route:
GET /chat/context/:agent
- Evidence: gathered by link during live staging session
- Labels: bug
Summary
Canonical live canvas session does not surface room-active truth into
/chat/context/:agent. The node-side runtime staysin_session=falseeven while a real human user is actively signed in and present on the canvas.Steps to reproduce
rn-34faba44-wlgkeq/canvas— confirm signed-in user is present and activeGET /chat/context/compassrepeatedly during the live sessionroom_status.in_session = falseacross 12+ consecutive pollsRoot cause (known so far)
The node sets
in_session = roomActiveCount > 0whereroomActiveCountcomes fromlistRoomParticipants().length. Cloud proxyGET /api/hosts/:id/presencestayed green during the same window but only shows agent presence, not human room participants.Next narrowing step (blocked)
Needs one of:
GET /room/participantsonrn-34faba44-wlgkeqduring a live sessionIf participants are present while
/chat/contextstaysin_session=false→ bug is inroom_statusderivation on the nodeIf participants are zero → bug is in room-presence join/write path
Without the authenticated participant probe, root cause cannot be narrowed further from cloud side.
Context
rn-34faba44-wlgkeqGET /api/hosts/:hostId/chat/context/:agentNameGET /chat/context/:agent