Files
pad/docs
xarmian 58c53d68eb feat(web): agent roster on /messages with Start chat, and a sign-out redirect (TASK-4044) (#2324)
* feat(web): ensureConversation client call, carried from the chat window work (TASK-4044)

Claude-Session: https://claude.ai/code/session_017ofcsFmgnoVDPxeHwuxCjg

* feat(web): chat roster, ensureDM and a reference-counted presence poll (TASK-4044)

Ruling 018faf64: counter clamped at 0, DM keys filtered to kind dm, ensure fenced by identity.

Claude-Session: https://claude.ai/code/session_017ofcsFmgnoVDPxeHwuxCjg

* feat(web): roster rows with Start chat on /messages, and a sign-out redirect (TASK-4044)

Claude-Session: https://claude.ai/code/session_017ofcsFmgnoVDPxeHwuxCjg

* test(web): census entry for the roster each (TASK-4044)

Claude-Session: https://claude.ai/code/session_017ofcsFmgnoVDPxeHwuxCjg

* fix(web): roster keeps DMs by the server's 'direct' kind; presence owners are balanced (TASK-4044)

The roster filtered on kind 'dm', which the server never writes
(migration 158 allows 'direct' and 'group'), so against a real server
every conversation dropped off the roster. Fixtures are corrected to
'direct', the Q3 row now uses a group conversation, and an e2e spec reads
the server's real value. The chatInbox afterEach asserts no presence
timer is left armed before one safety drain, so a leaked owner fails.

Claude-Session: https://claude.ai/code/session_017ofcsFmgnoVDPxeHwuxCjg

* fix(web): roster ensure does not navigate after the page is left (TASK-4044)

Claude-Session: https://claude.ai/code/session_017ofcsFmgnoVDPxeHwuxCjg
2026-10-26 08:35:18 -04:00
..