vojo/docs/ai/desired_features.md

65 lines
No EOL
7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

1. Звонки по аудиосвязи в чатах
2. Понятное сообщение при регистрации на сервере с забаненным ником
3. Хочу скинуть ник-диплинк и чтобы сразу открылся сразу чат с юзером в приложении
4. Разобраться с текущими доменами и навести там порядок. Сейчас caddy заведен неправильно, web тоже не совсем правильно. Предложение
Тогда структура:
vojo.chat — красивый лендинг с описанием проекта, скриншоты, кнопка "Попробовать"
app.vojo.chat — сам мессенджер (Cinny)
docs.vojo.chat — документация
matrix.vojo.chat — Matrix API (технический поддомен, пользователи туда не ходят)
matrix-rtc.vojo.chat — LiveKit (технический)
5. Связанное ограничение по федерации (сейчас в env lk-jwt-service):
`LIVEKIT_FULL_ACCESS_HOMESERVERS: "vojo.chat"` — инициировать звонки могут только
юзеры `@…:vojo.chat`, федеративные — только join к существующим. При первых
реальных кросс-homeserver кейсах ослабить до `"*"` или whitelist (правка в env,
клиент не меняется).
6. Миграция unstable-префикса MSC4143 → stable, когда спека финализируется.
Сейчас `.well-known/matrix/client` объявляет RTC-фокусы под ключом
`org.matrix.msc4143.rtc_foci` (unstable prefix). Когда MSC4143 примут, ключ
станет `m.rtc_foci`. Что понадобится:
- В `~/vojo/caddy/Caddyfile` блок `.well-known/matrix/client` — добавить
оба ключа на переходный период, потом выпилить старый.
- В клиенте [src/app/hooks/useLivekitSupport.ts](src/app/hooks/useLivekitSupport.ts)
сейчас читается только `org.matrix.msc4143.rtc_foci` — расширить на оба
ключа (или дождаться matrix-js-sdk апдейта, который сделает это сам).
- Этот же паттерн относится к о всем msc-событиям в RTC-стеке: MSC4075
(`org.matrix.msc4075.rtc.notification`), MSC4195, MSC4310
(`org.matrix.msc4310.rtc.decline`). При stable-переходе спек все
префиксы поменяются синхронно — миграцию делать вместе.
7. Пофиксить follow страницы с чатами 1-1. Потому что сейчас они не автоскролятся вниз. Происходит это на нативе когда открываешь клавиатуру (она не сдвигает ui вверх как это делают обычные приложения с клавиатурой, по ощущениям просто перекрывает часть страницы сдвигая просто форму с вводом)
8. **(из Phase 2 DM-звонков, 2026-04-19)** Верифицировать на сервере: шифрует ли
Element Call widget **сам** `m.rtc.notification` при отправке в encrypted room
(ring от A → B). Теоретически SDK шифрует любой `sendEvent` в encrypted room
прозрачно, и widget должен идти через тот же путь — но `sendRtcDecline`
(наш, не widget) делегирует в `client.sendEvent` и это проверено
([client.js:2457](../../node_modules/matrix-js-sdk/lib/client.js#L2457)),
а `m.rtc.notification` widget шлёт через свой postMessage канал — не
перепроверяли. Как проверить: в encrypted DM у A нажать startCall,
в DevTools Network tab смотреть PUT на `/rooms/{roomId}/send/...` — body
должно быть encrypted (ключи `algorithm`, `ciphertext`, `sender_key`,
`session_id`), не plain JSON с `"m.rtc.notification"`. Если plain —
widget игнорит encryption, нужен апстрим-фикс Element Call либо наша
обёртка. См. [docs/plans/dm_calls_techdebt.md](../plans/dm_calls_techdebt.md) 5.9.
9. Когда открываешь чат уведомления из пуш бара не исчезают
10. Пофиксить цвет полос снизу и сверху при разных бекграундах цветовых (Сейчас они не синхронны на темной теме)
11. Как то по умнее схлопывать переходы назад. Возможно уникальные переходы схлопывать. Контекст такой: приложение сохраняет все походы юзера по экрану и так можно навигироваться без конца. Особенно это странно работает при входящих уведомлениях из одного чата: можно положить в этот стеш очень много ивентов этого окна и сидеть жать кнопку назад очень долго
12. Не очень понятно что делать со звонками в пуше на андроиде. Если пришел пуш-звонок, надо показывать на экране чата внизу сам эвент со звонком как на вебе?
13. UI friendly боты (в т.ч. телеграм бот)
14. Убрать странное читат чат
15. ~~Баг с присоединться в комнату, перекидывает не в чат, а в комнаты. При чем у одного юзера отображается чат, а у другого комната. Из-за этого нельзя позовнить например~~ — пофикшено: глобальный `useAutoDirectSync` listener, прямая навигация в Invites, smart push routing, HomeRouteRoomProvider redirect.
16. **Тех-долг:** one-shot repair для исторически сломанных DM-комнат. После фикса #15 новые join-ы корректно обновляют `m.direct`, но комнаты у юзеров, которые уже приняли инвайт до фикса, остаются в "Комнатах". Нужна миграция или команда `/repairDMs`, которая пройдёт по joined rooms, проверит `getDMInviter()`, и добавит в `m.direct`. Осложнение: `prev_content.is_direct` не исчезает после `/converttoroom`, поэтому наивный sweep откатит ручную конвертацию — нужен tombstone-маркер или whitelist.