surfaces/.planning/HANDOFF.json

86 lines
3.5 KiB
JSON

{
"version": "1.0",
"timestamp": "2026-04-28T18:39:43.064Z",
"phase": "05",
"phase_name": "MVP Deployment",
"phase_dir": ".planning/phases/05-mvp-deployment",
"plan": 4,
"task": 0,
"total_tasks": 0,
"status": "paused",
"completed_tasks": [
{
"id": 1,
"name": "Finalize multi-agent surface image handoff",
"status": "done",
"commit": "5b53788"
},
{
"id": 2,
"name": "Publish Docker image for the Matrix surface",
"status": "done",
"artifact": "mput1/surfaces-bot:latest",
"digest": "sha256:26ba3a49290ab7c1cf0fa97f3de3fefdc70b59df7e6f1e0c2255728f8e2369be"
},
{
"id": 3,
"name": "Verify multi-agent file-volume routing contract",
"status": "done",
"evidence": "tests cover /agents/17/incoming and /agents/17/output routing"
}
],
"remaining_tasks": [
{
"id": 1,
"name": "Platform team integrates the published surface image into their 25-30 agent deployment",
"status": "external"
},
{
"id": 2,
"name": "Run a real platform smoke test with production Matrix credentials, matrix-agents.yaml, and shared /agents volume",
"status": "not_started"
}
],
"blockers": [
{
"description": "Full production verification depends on the platform team's real 25-30 agent orchestration and volume mounts.",
"type": "external",
"workaround": "Use docker-compose.fullstack.yml only as local E2E harness; production uses mput1/surfaces-bot:latest plus platform-managed agents."
}
],
"human_actions_pending": [
{
"action": "Send platform the image tag, digest, deploy docs, and matrix-agents.yaml contract",
"context": "The bot is published as a single surface container; platform supplies agents, base_url values, and /agents/N volume mounts.",
"blocking": true
},
{
"action": "Platform prepares production config/matrix-agents.yaml",
"context": "Each external agent needs agent_id, base_url, and workspace_path such as /agents/17.",
"blocking": true
}
],
"decisions": [
{
"decision": "Ship one generic Matrix surface image, not a compose stack with 25-30 agents.",
"rationale": "The platform owns agent lifecycle/orchestration; the surface only needs base_url and workspace_path per agent.",
"phase": "05"
},
{
"decision": "Make SURFACES_BOT_IMAGE explicit and document the published mput1/surfaces-bot image.",
"rationale": "Docker Hub push access is namespace-specific; hardcoding mrkan0 caused insufficient_scope.",
"phase": "05"
},
{
"decision": "Keep docker-compose.fullstack.yml as internal E2E only.",
"rationale": "It validates the bot plus one local agent, but is not a model of production multi-agent orchestration.",
"phase": "05"
}
],
"uncommitted_files": [
".planning/HANDOFF.json",
".planning/phases/05-mvp-deployment/.continue-here.md"
],
"next_action": "Resume by coordinating platform integration: confirm they use mput1/surfaces-bot:latest, mount /agents, provide config/matrix-agents.yaml, then run a real Matrix smoke test.",
"context_notes": "Phase 05 implementation and handoff commit 5b53788 are pushed. The Docker image was successfully built and pushed by the user as mput1/surfaces-bot:latest with digest sha256:26ba3a49290ab7c1cf0fa97f3de3fefdc70b59df7e6f1e0c2255728f8e2369be. Existing unrelated .planning dirt and a local jpg remain in the worktree and were intentionally not included in the handoff commit."
}