6.3 KiB
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
🔵 [bootstrap-upgrade-canonical-triggers] — Прогнать project-bootstrap v1.10.0 в upgrade-режиме на этом проекте. Цель — дописать в CLAUDE.md 3 недостающих канонических триггера: follow tdd-criteria, delegate to interns when allowed, recommend, don't menu. Уже присутствуют: pull remote before work, follow project discipline, we're on Windows. ВНИМАНИЕ: это meeting-room (без точки) — обычный код-проект, не путать с .meeting-room workspace-комнатой (которая в раскатку не входит). Аудит 2026-05-07 через bulk_text_read. Контекст — координатор [bootstrap-rollout-canonical-triggers] в _meta (commit dd933fd). Пилот на books подтвердил идемпотентность (158fc95).
Status: blocked
Where I stopped: Создана 2026-05-07. Blocked — ждёт разблокировки от координатора bootstrap-rollout-canonical-triggers.
Next action: 1) Открыть свежую сессию в ~/projects/meeting-room/ (без точки). 2) upgrade project. 3) Подтвердить план — должно быть ровно 3 вставки (follow tdd-criteria, delegate to interns when allowed, recommend, don't menu). 4) Прогнать. 5) git diff CLAUDE.md — 3 вставки, остальное нетронуто. 6) Повторный прогон — no-op. 7) Закрыть таску при успехе; при кривом результате — фикс-таска в claude-skills.
Blocker: bootstrap-rollout-canonical-triggers
Branch: n/a