surfaces/.planning/HANDOFF.json

90 lines
5.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"version": "1.0",
"timestamp": "2026-04-23T11:46:45.938Z",
"phase": "04",
"phase_name": "Matrix MVP: shared agent context and context management commands",
"phase_dir": ".planning/phases/04-matrix-mvp-shared-agent-context-and-context-management-comma",
"plan": 3,
"task": 3,
"total_tasks": 3,
"status": "paused",
"completed_tasks": [
{
"id": 1,
"name": "Стабилизировать Matrix MVP runtime: numeric platform_chat_id mapping, staged attachments, clean vendored platform repos",
"status": "done",
"commit": "4524a6a"
},
{
"id": 2,
"name": "Локализовать missing-first-chunk bug, оформить финальный bug report и очистить runtime до thin upstream integration boundary",
"status": "done",
"commit": "0c2884c"
},
{
"id": 3,
"name": "Перейти на direct upstream AgentApi per request, убрать local wrapper из prod path и зафиксировать AGENT_BASE_URL как основной runtime contract",
"status": "done",
"commit": "7d58dd1"
}
],
"remaining_tasks": [
{
"id": 4,
"name": "Решить, закрываем ли Phase 04 окончательно или продолжаем Matrix через live smoke в реальном окружении",
"status": "not_started"
},
{
"id": 5,
"name": "Если двигаемся дальше по Matrix, прогнать text/tool/file smoke на direct AgentApi per-request path и проверить отсутствие regressions",
"status": "not_started"
},
{
"id": 6,
"name": "Если начинаем новую surface, открыть follow-up phase для prod messenger architecture без собственного transport layer",
"status": "not_started"
}
],
"blockers": [
{
"description": "В worktree остаётся посторонний локальный diff в core/handlers/message.py, не связанный с direct AgentApi fix",
"type": "technical",
"workaround": "Не смешивать с runtime/surface работой без отдельной задачи; handoff commit этот файл не включает"
}
],
"human_actions_pending": [
{
"action": "Выбрать следующий трек: Matrix live validation или планирование новой prod surface вроде Telegram/Max",
"context": "Кодовый фикс уже сделан и запушен; дальше работа зависит от продуктового направления, а не от transport-debug",
"blocking": false
},
{
"action": "При следующем отдельном planning/cleanup коммите привести STATE/roadmap в полное соответствие с direct upstream per-request решением",
"context": "Локальный STATE уже обновлён как checkpoint, но handoff WIP commit включает только HANDOFF и .continue-here",
"blocking": false
}
],
"decisions": [
{
"decision": "Для prod path Matrix surface больше не держит собственный transport layer; используется прямой upstream AgentApi с fresh connection per request",
"rationale": "Это убрало reuse-sensitive загрязнение между запросами, после чего missing-first-chunk симптом перестал воспроизводиться локально",
"phase": "04"
},
{
"decision": "AGENT_BASE_URL принят как основной runtime contract; AGENT_WS_URL оставлен только как backward-compat fallback в env wiring",
"rationale": "Так surface говорит с платформой по их реальному API contract, а не через локальный ws shim",
"phase": "04"
},
{
"decision": "Для следующих surfaces не строить custom transport wrapper поверх платформы",
"rationale": "Surface должна владеть integration/session boundary, а не альтернативной stream semantics",
"phase": "04"
}
],
"uncommitted_files": [
".planning/STATE.md",
"core/handlers/message.py"
],
"next_action": "При возобновлении сначала прочитать обновлённый handoff, затем выбрать один из двух треков: либо Matrix live smoke на direct AgentApi per-request path, либо новая phase/spec для prod surface без собственного transport layer",
"context_notes": "Старый checkpoint про platform triage устарел. После диалога с платформой runtime переведён на прямой upstream AgentApi с fresh connection per request, локальный wrapper убран из prod path, tests прошли, commit 7d58dd1 запушен в origin/feat/matrix-direct-agent-prototype. Важный вывод для будущей архитектуры surfaces: upstream transport считать authoritative, а локально держать только lifecycle, serialization, attachment forwarding, error mapping и reconciliation."
}