Files
meeting-room/.tasks/STATUS.md

6.5 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


🔵 [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) upgrade project в ~/projects/meeting-room/ (без точки — обычная репа, не путать с .meeting-room). Запустить скил project-bootstrap v1.10.0 — не делать ручной Edit (incident на pilonuxt 2026-05-07). 2) Подтвердить план: 2 файла — CLAUDE.md (+3: follow tdd-criteria, delegate to interns when allowed, recommend, don't menu) + .wiki/concepts/bootstrap-manifest.md (manifest 1.x → 1.10.0). 3) Прогнать. 4) Verify: git diff --stat показывает 2 файла. Если 1 — переоткрыть. Reference: books@5ca16d9. 5) Коммит chore(bootstrap): upgrade CLAUDE.md — add tdd-criteria, interns, recommend-dont-menu triggers + body. 6) Повторный — no-op. 7) tasks_close. Blocker: bootstrap-rollout-canonical-triggers Branch: n/a