The frame and card share member ids; the client builds the sentence from the directory and locale. Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.8 KiB
Markdown
35 lines
1.8 KiB
Markdown
# Фаза 45. Кружок в присутствии
|
|
|
|
## Зависимости
|
|
|
|
- [Фаза 42](42-talk-circles.md)
|
|
- [Фаза 19](19-presence-screen.md)
|
|
|
|
## Зачем
|
|
|
|
В панели локации видно, с кем и о чём говорят, без открытия карточки.
|
|
|
|
## Задачи
|
|
|
|
- [x] Кадр присутствия: у человека, который в кружке, список id участников и id темы.
|
|
Имена не строкой. Клиент собирает «говорит с Машей о футболе» из справочника и локали
|
|
- [x] Версия протокола +1. `ProtocolCodec.cs`, `protocol.ts`, `docs/protocol.md` в одном коммите
|
|
- [x] Не в кружке — пустой список, как сейчас только id/узел/состояние
|
|
- [x] Вкладка «Сейчас» на карточке согласована с тем же составом
|
|
- [x] Старый клиент отваливается Hello, как обычно
|
|
|
|
## Тесты, без которых фаза не закрыта
|
|
|
|
- [x] Круглый трип и байтовая раскладка человека с кружком и без — на обеих сторонах
|
|
- [x] Имя человека не встречается в кадре присутствия
|
|
- [x] Клиентский тест: локация показывает тему и имя напарника из directory, не из кадра
|
|
|
|
## Критерий готовности
|
|
|
|
- Клик по коридору на перемене: в «персонажах» видно, кто с кем говорит
|
|
- `dotnet test` и `npm test` / `build` проходят
|
|
|
|
## Стоп
|
|
|
|
Не политика речи. Не пак.
|