Spaces:
Running
Running
| # Roadmap (P0–P3) | |
| This file is the repo-level roadmap for `autonomy-labs`. It’s intentionally opinionated and ordered by risk reduction first, then maintainability, then feature expansion. | |
| ## Always ensure mobile view too | |
| ## P0 — Security + correctness (blockers) | |
| - Gate **all dangerous endpoints** server-side (not just UI): | |
| - `/ws/terminal` | |
| - `/api/codex*` | |
| - `/api/mcp*` | |
| - any indexing endpoints (docs/web/GitHub) | |
| - Define a clear auth transport for WebSockets (cookie or token) and verify on the server. | |
| - Add capability flags with safe defaults: | |
| - `ENABLE_TERMINAL`, `ENABLE_CODEX`, `ENABLE_MCP`, `ENABLE_INDEXING`, `ENABLE_ROOMS` | |
| - Add `SECURITY.md` with threat model + safe deployment guidance. | |
| ## P1 — Backend refactor + lifecycle | |
| - Split `main.py` into routers/services: | |
| - `app/auth.py`, `app/chat.py`, `app/terminal.py`, `app/codex.py`, `app/mcp.py`, `app/settings.py`, `app/admin.py`, `app/indexing.py` | |
| - Add FastAPI lifespan management: | |
| - subprocess lifecycle (Codex MCP server) | |
| - cleanup policies (device-login attempts, job registries) | |
| - Unify Codex integration (prefer CLI-first for device-auth consistency; keep SDK only if needed). | |
| - Standardize API error schema (UI should not parse strings to detect failure modes). | |
| ## P2 — UI/UX, settings, admin, landing | |
| - Split `static/dashboard.html` into modules: | |
| - `static/dashboard.js`, `static/terminal.js`, `static/agent.js`, `static/settings.js`, `static/admin.js`, `static/mcp.js`, `static/rag.js` | |
| - `static/theme.css` | |
| - Fix UI inconsistencies: | |
| - theme tokens shared across login + dashboard | |
| - consistent spacing, typography, button states, error banners | |
| - terminal sizing/fit reliability (debounce + visible-only fitting) | |
| - Separate Settings vs Admin dashboard: | |
| - Settings: provider configs, tokens status, terminal layout, workspace directory, MCP registry | |
| - Admin: user/role management, global toggles, indexing jobs, audit logs | |
| - Create a “blazing” landing page: | |
| - `/` marketing/intro + CTA | |
| - keep `/login` and `/app` as dedicated routes (or similar) | |
| ## P2 — Provider auth parity (Codex/Gemini/Claude) | |
| - Keep provider auth out of git; source from env/HF Secrets. | |
| - Support “Codex-like” auth file generation when a CLI requires it: | |
| - Codex: `~/.codex/.auth.json` and `~/.codex/auth.json` from `CODEX_*` (or fallback envs). | |
| - Gemini/Claude: prefer env (`GEMINI_API_KEY`, `ANTHROPIC_API_KEY`); add file-based auth only if required and documented. | |
| - Optional: SSH key support via Secrets: | |
| - `SSH_PRIVATE_KEY` (+ optional `SSH_PUBLIC_KEY`, `SSH_KNOWN_HOSTS`) | |
| ## P2 — Codex workspace directory (UI) | |
| - Add a per-user “workspace directory” setting. | |
| - Enforce an allowlisted root (e.g. `/data/codex/workspace/<user>`), prevent traversal, ensure it exists. | |
| ## P2 — Stream Codex events in Agent mode | |
| - Use `/api/codex/cli/stream` for agent execution. | |
| - UI: render streaming events progressively (agent text, tool events, final summary + usage). | |
| - Add stop/reconnect handling. | |
| ## P2/P3 — MCP registry | |
| - Add a first-class MCP registry: | |
| - per-user servers + optional global templates | |
| - “test connection”, “list tools”, allow/deny tool lists | |
| - import/export `mcp.json` | |
| ## P3 — RAG + indexing (docs/web/GitHub) + “password manager” | |
| - Clarify “password manager” scope: | |
| - secure vault for secrets (high-risk; encryption + audit required), or | |
| - indexed notes (lower-risk but still private) | |
| - Implement indexing connectors: | |
| - document uploads | |
| - website crawl (depth, allowlist, robots, rate limits) | |
| - GitHub repo indexing (branch/path filters, token support via Secrets) | |
| - Build a jobs UI: progress, retries, errors, and access controls. | |
| Note: see `docs/PASSWORD_MANAGER_SCOPE.md` for the current (non-vault) stance and recommended path forward. | |
| ## P3 — P2P pubsub chat + account manager | |
| - Implement account manager concepts: | |
| - identities/devices, room/topic membership, permissions, moderation tools | |
| - Transport: | |
| - WebRTC DataChannel (P2P) + server signaling | |
| - fallback to server pubsub when P2P fails | |
| - UX: | |
| - rooms, presence, delivery status, network mode indicators | |
| ## Engineering hygiene (ongoing) | |
| - Add `.env.example`, `docs/TROUBLESHOOTING.md`, `docs/ARCHITECTURE.md`, `docs/SECURITY_DEPLOYMENT.md` | |
| - Add lint/tests + CI: | |
| - Python: `ruff`, `pytest` | |
| - basic security smoke tests for endpoint gating | |
| ## Feature suggestions (By User) | |
| - Support GitHub token auth via HF Secrets (`GITHUB_TOKEN`/`GITHUB_PAT`) and document it in `.env.example`. | |
| - Merge Aunomous mode and chat mode to single chat UI. | |
| - Include password reset by email too. | |
| - Also include one password manager/passowrd vault too. | |
| - Get started on landing page should go to a documentaion page. | |
| - Open App and Login should point to login page. | |
| - Provider setting on path /app should be only on settings page. | |
| - Forget password not working. Fix. | |
| - Remove provider settings from dashboard UI (configure via `DEFAULT_*` secrets). | |