{ "id": "phase1-foundation-17", "seq": "17", "title": "Create authentication middleware", "status": "completed", "depends_on": ["10", "12"], "parallel": false, "context_files": [ "/Users/kunthawatgreethong/Gitea/moreminimore-vibe/Websitebuilder/.tmp/sessions/phase1-foundation/context.md", "/Users/kunthawatgreethong/.config/opencode/context/core/essential-patterns.md" ], "acceptance_criteria": [ "requireAuth middleware created", "Verifies access token from cookie", "Attaches user to request", "Returns 401 for unauthenticated requests", "requireRole middleware created", "Checks user role (admin, co_admin, owner, user)", "Returns 403 for unauthorized roles", "requireOrgMembership middleware created", "Verifies user is member of organization", "Returns 403 for non-members", "Error handling for invalid tokens", "Unit tests written with Vitest", "Tests pass with 90%+ coverage" ], "deliverables": [ "src/middleware.ts", "src/lib/auth/middleware.ts", "src/lib/auth/__tests__/middleware.test.ts" ] }