From 1dffaae822083c813c77f86374d23770142ba2d4 Mon Sep 17 00:00:00 2001 From: vitya Date: Mon, 4 May 2026 08:50:04 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20Phase=202=20=E2=80=94=20web=20server,?= =?UTF-8?q?=20REST=20API,=20WebSocket/SSE,=20UI=20[v0.2.0]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AsyncEventBridge bridges sync EventEmitter to asyncio consumers. FastAPI app with session management, discussion control, roles/providers. WebSocket for real-time events + inject, SSE for read-only streaming. Minimal dark-theme HTML/JS UI. `meeting-room serve` CLI subcommand. Co-Authored-By: Claude Opus 4.7 --- .tasks/STATUS.md | 39 ++- .tasks/v2-p2-async-bridge.md | 26 ++ .tasks/v2-p2-fastapi-app.md | 22 ++ .tasks/v2-p2-serve-command.md | 17 ++ .tasks/v2-p2-web-ui.md | 18 ++ .tasks/v2-p2-websocket-sse.md | 17 ++ meeting_room/cli.py | 17 ++ meeting_room/events.py | 124 +++++++++- meeting_room/server.py | 423 +++++++++++++++++++++++++++++++++ meeting_room/static/index.html | 306 ++++++++++++++++++++++++ pyproject.toml | 2 +- tests/test_async_bridge.py | 225 ++++++++++++++++++ tests/test_server.py | 163 +++++++++++++ 13 files changed, 1393 insertions(+), 6 deletions(-) create mode 100644 .tasks/v2-p2-async-bridge.md create mode 100644 .tasks/v2-p2-fastapi-app.md create mode 100644 .tasks/v2-p2-serve-command.md create mode 100644 .tasks/v2-p2-web-ui.md create mode 100644 .tasks/v2-p2-websocket-sse.md create mode 100644 meeting_room/server.py create mode 100644 meeting_room/static/index.html create mode 100644 tests/test_async_bridge.py create mode 100644 tests/test_server.py diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index d947a2e..1dba92b 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1,6 +1,41 @@ # Task Board _Updated: 2026-05-04_ +## 🟢 v2-p2-async-bridge — AsyncEventBridge: sync EventEmitter → asyncio.Queue +**Status:** done +**Where I stopped:** Complete +**Next action:** N/A + +--- + +## 🟢 v2-p2-fastapi-app — FastAPI app + REST API (sessions, start, inject, roles, providers) +**Status:** done +**Where I stopped:** Complete +**Next action:** N/A + +--- + +## 🟢 v2-p2-websocket-sse — WebSocket + SSE streaming endpoints +**Status:** done +**Where I stopped:** Complete +**Next action:** N/A + +--- + +## 🟢 v2-p2-web-ui — Minimal HTML/CSS/JS frontend +**Status:** done +**Where I stopped:** Complete +**Next action:** N/A + +--- + +## 🟢 v2-p2-serve-command — `meeting-room serve` CLI subcommand +**Status:** done +**Where I stopped:** Complete +**Next action:** N/A + +--- + ## 🟢 v2-p1-deps — Обновить зависимости (pydantic, pytest, [web]) **Status:** done **Branch:** feat/v2-phase1-core-refactor @@ -44,8 +79,8 @@ _Updated: 2026-05-04_ ---