mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-08 02:14:59 +03:00
Пункты 4, 6-8 (частично), 17 PLAN-HUB-0001/E09 по SPEC-HUB-0013: - timeline-события звонка в диалоге при переходах lifecycle (без дублей) - API: отмена сотрудником, активный звонок диалога, клиентские state/accept/decline по call access token (throttle call_access) - доставка приглашения TG/MAX через OutboxEvent с ретраями; token ротируется на каждую попытку, сырой token не хранится в БД и payload - Web Chat: приглашение в payload поллинга, баннер входящего звонка, accept открывает /calls/ с access token во фрагменте URL - customer call view /calls/<token>: проверка token до запроса камеры, pre-call preview, терминальные состояния по baseline - internal-ui: кнопка запроса звонка (атомарный takeover), CallOverlay - sweep воркера: MISSED/EXPIRED по истечению invite, FAILED по grace (HUB_CALL_CONNECT_GRACE_SECONDS) - nginx: /calls/ → web-chat call.html (local + production) Backend 218/218; typecheck/build internal-ui и web-chat зелёные. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
14 lines
471 B
HTML
14 lines
471 B
HTML
<!doctype html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<!-- Камера/микрофон разрешаются только самой странице звонка (SPEC-HUB-0013 §12). -->
|
|
<title>Онлайн-звонок | Edevs Hub</title>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/call/main.tsx"></script>
|
|
</body>
|
|
</html>
|