Files
meeting-room/.tasks/STATUS.md

4.4 KiB
Raw Blame History

Task Board

Updated: 2026-05-04

🟢 v2-p2-async-bridge — AsyncEventBridge: sync EventEmitter → asyncio.Queue

Status: done Where I stopped: Complete


🟢 v2-p2-fastapi-app — FastAPI app + REST API (sessions, start, inject, roles, providers)

Status: done Where I stopped: Complete


🟢 v2-p2-websocket-sse — WebSocket + SSE streaming endpoints

Status: done Where I stopped: Complete


🟢 v2-p2-web-ui — Minimal HTML/CSS/JS frontend

Status: done Where I stopped: Complete


🟢 v2-p2-serve-command — meeting-room serve CLI subcommand

Status: done Where I stopped: Complete


🟢 code-review-p2 — Code review fixes after Phase 2

Status: done Where I stopped: All critical/important issues fixed Next action: N/A


🟢 v2-p1-deps — Обновить зависимости (pydantic, pytest, [web])

Status: done


🟢 v2-p1-models — Pydantic модели данных

Status: done


🟢 v2-p1-events — EventEmitter и типы событий

Status: done


🟢 v2-p1-api-client — Рефактор APIClient

Status: done


🟢 v2-p1-tools — Рефактор ToolRegistry

Status: done


🟢 v2-p1-engine — DiscussionEngine

Status: done


🟢 v2-p1-config-cli — config.py + CLI рефактор

Status: done


[secrets-path-off-by-one] — Bug в meeting_room/config.py:35 — off-by-one в количестве вызовов os.path.dirname(). PACKAGE_DIR = ~\projects\meeting-room\meeting_room (resolved через os.path.abspath(__file__) в строке 17). Текущий код: _common_root = os.path.dirname(os.path.dirname(os.path.dirname(PACKAGE_DIR))) — 3 вызова — резолвит в ~\ (user home), а должно быть в ~\projects\. Соответственно _secrets_path = os.path.join(_common_root, ".common", "secrets", "interns.env") указывает на ~\.common\secrets\interns.env, который не существует. Реальный файл: ~\projects\.common\secrets\interns.env (создан в рамках [unify-llm-secrets], закрыт 2026-05-05). Эффект: load_dotenv(_secrets_path) молча возвращает False, OLLAMA_CLOUD_API_KEY env-var НЕ загружается, regex-substitution в _env_replace (config.py:46-50) оставляет литеральную строку ${OLLAMA_CLOUD_API_KEY} в providers.ollama_cloud.api_key, OpenAI-client дёргает Ollama с этой строкой как Bearer-токеном → 401. Тесты не ловят: tests/test_config.py:107,114,242 используют monkeypatch.setenv() — путь до secrets-файла не задействуется. Surfaced код-ревью 2026-05-07. Fix: либо dirname дважды (os.path.dirname(os.path.dirname(PACKAGE_DIR))~\projects\), либо паритет с interns-mcp/server.py:17: Path(__file__).resolve().parents[2]. Acceptance: убрать env-var из shell, прогнать python -c "from meeting_room.config import load_config; print(load_config()['providers']['ollama_cloud']['api_key'][:10])" — должен вернуть начало реального ключа 02a8f6e9f9..., а не ${OLLAMA_CLOU. Добавить regression-тест: монкипатч-PACKAGE_DIR и ассерт что resolved path попадает в <projects>/.common/secrets/interns.env. Регрессия impacted closure: [unify-llm-secrets] в common/.tasks/STATUS.md (closed 2026-05-05) — claim'ил «meeting-room config.py → load_dotenv()» но fixture-only-tested.

Status: ready Where I stopped: (not started) Next action: Открыть ~\projects\meeting-room\meeting_room\config.py:35. Заменить тройной os.path.dirname(...) на двойной (или Path(__file__).resolve().parents[2]). Добавить regression-тест в tests/test_config.py который реально читает env-var из временного .common/secrets/interns.env через monkeypatch.chdir + временный layout. Пуш PATCH bump в meeting-room/pyproject.toml. Branch: n/a