feat(web): restore managed-cloud mvp surface - #121
Conversation
There was a problem hiding this comment.
Code Review
This pull request implements the YonerAI Managed Cloud MVP, introducing a 3-mode architecture and updating branding across the repository. Key technical additions include Google OAuth integration, session management, and public chat endpoints with Server-Sent Events (SSE) support. The database schema was expanded to include user identities, web sessions, and API usage tracking. New static assets and documentation for OpenAI CUA sidecar adoption were also added. Review feedback identifies a missing import for "JSONResponse" and suggests utilizing the new static page helper function in the setup UI for consistency.
| token = (request.cookies.get(WEB_SESSION_COOKIE) or "").strip() | ||
| if token: | ||
| await get_store().revoke_web_session(session_hash=_session_hash(token)) | ||
| response = JSONResponse({"ok": True}) | ||
| response.delete_cookie(WEB_SESSION_COOKIE, path="/") | ||
| return response |
| def _serve_static_page(filename: str) -> FileResponse: | ||
| path = os.path.join(static_dir, filename) | ||
| if not os.path.exists(path): | ||
| raise HTTPException(status_code=404, detail=f"{filename} is missing.") | ||
| return FileResponse(path) |
There was a problem hiding this comment.
The _serve_static_page helper function is defined but not used in the setup_ui function, which still uses FileResponse directly. Consider using this helper for consistency.
| def _serve_static_page(filename: str) -> FileResponse: | |
| path = os.path.join(static_dir, filename) | |
| if not os.path.exists(path): | |
| raise HTTPException(status_code=404, detail=f"{filename} is missing.") | |
| return FileResponse(path) | |
| return _serve_static_page("setup.html") |
Summary
Test
Notes