114 lines
4.2 KiB
JSON
114 lines
4.2 KiB
JSON
{
|
|
"version": "1.0",
|
|
"timestamp": "2026-04-30T15:03:14Z",
|
|
"phase": "05",
|
|
"phase_name": "MVP deployment",
|
|
"phase_dir": ".planning/phases/05-mvp-deployment",
|
|
"plan": 0,
|
|
"task": 0,
|
|
"total_tasks": 0,
|
|
"status": "paused",
|
|
"completed_tasks": [
|
|
{
|
|
"id": 1,
|
|
"name": "Fix path-based base_url normalization and add WS debug visibility",
|
|
"status": "done",
|
|
"commit": "7e5f9c2"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": "Add Matrix room recovery, reinvite flow, and default-agent warning behavior",
|
|
"status": "done",
|
|
"commit": "7e5f9c2"
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": "Switch user file handling to workspace-root filenames with copy-style collision suffixes",
|
|
"status": "done",
|
|
"commit": "7e5f9c2"
|
|
},
|
|
{
|
|
"id": 4,
|
|
"name": "Verify recent routing incident cause",
|
|
"status": "done",
|
|
"progress": "Confirmed that config lookup is exact-MXID based; mismatch in homeserver suffix caused fallback to the first agent."
|
|
}
|
|
],
|
|
"remaining_tasks": [
|
|
{
|
|
"id": 5,
|
|
"name": "Build and publish a fresh production image with the current workspace-root attachment contract",
|
|
"status": "not_started"
|
|
},
|
|
{
|
|
"id": 6,
|
|
"name": "Send the new digest to platform and request Matrix bot redeploy",
|
|
"status": "not_started"
|
|
}
|
|
],
|
|
"blockers": [
|
|
{
|
|
"description": "Platform redeploy is still required after the next image publish.",
|
|
"type": "external",
|
|
"workaround": "None until a fresh digest is published."
|
|
},
|
|
{
|
|
"description": "Old Phase 04 planning files still contain placeholder content.",
|
|
"type": "technical",
|
|
"workaround": "Ignore for the current deploy task; clean later as planning debt."
|
|
}
|
|
],
|
|
"human_actions_pending": [
|
|
{
|
|
"action": "Use exact Matrix MXIDs in user_agents, including the real homeserver suffix.",
|
|
"context": "Routing fallback to the first agent occurs whenever the config key does not exactly match the sender.",
|
|
"blocking": true
|
|
},
|
|
{
|
|
"action": "Redeploy matrix-bot after the new image is published.",
|
|
"context": "Config edits alone need a container restart; the file-contract code change needs a new image first.",
|
|
"blocking": true
|
|
}
|
|
],
|
|
"decisions": [
|
|
{
|
|
"decision": "Keep fallback to the first agent for users missing from user_agents.",
|
|
"rationale": "Platform wanted that behavior to remain available, but with explicit user warning.",
|
|
"phase": "05"
|
|
},
|
|
{
|
|
"decision": "Require exact Matrix MXID matching in user_agents.",
|
|
"rationale": "Current routing is deterministic and simple; no fuzzy matching or homeserver aliasing was introduced.",
|
|
"phase": "05"
|
|
},
|
|
{
|
|
"decision": "Use workspace-root filenames for incoming user files and Windows-style copy suffixes on collision.",
|
|
"rationale": "Platform requested removal of incoming/outgoing directory split and timestamp-prefixed names.",
|
|
"phase": "05"
|
|
}
|
|
],
|
|
"uncommitted_files": [
|
|
".planning/HANDOFF.json",
|
|
".planning/STATE.md",
|
|
".planning/phases/05-mvp-deployment/.continue-here.md",
|
|
"README.md",
|
|
"adapter/matrix/agent_registry.py",
|
|
"adapter/matrix/bot.py",
|
|
"adapter/matrix/files.py",
|
|
"adapter/matrix/handlers/auth.py",
|
|
"adapter/matrix/handlers/chat.py",
|
|
"adapter/matrix/reconciliation.py",
|
|
"adapter/matrix/routed_platform.py",
|
|
"config/matrix-agents.example.yaml",
|
|
"docs/deploy-architecture.md",
|
|
"sdk/real.py",
|
|
"tests/adapter/matrix/test_dispatcher.py",
|
|
"tests/adapter/matrix/test_files.py",
|
|
"tests/adapter/matrix/test_invite_space.py",
|
|
"tests/adapter/matrix/test_reconciliation.py",
|
|
"tests/platform/test_real.py",
|
|
"tests/test_deploy_handoff.py"
|
|
],
|
|
"next_action": "Build and publish a fresh production image from the current worktree, then send the digest to the platform for redeploy.",
|
|
"context_notes": "Current runtime logic appears correct. The last reported routing bug was traced to config mismatch between the real Matrix sender and the user_agents key. Do not reuse the previously published recovery image for deployment because it does not include the final workspace-root file contract."
|
|
}
|