Version: 1.0.0-beta.1
Last reconciled: 2026-08-13
| Phase | Scope | Status | Evidence |
|---|---|---|---|
| 0 | Configuration, startup, contract documentation | ✅ complete | scripts/exit_phase0.py PASS: configuration, startup, health, fake mode, live validation, Responses configuration. |
| 1 | Workspace indexing and persistence | ✅ complete | scripts/exit_phase1.py PASS; indexing, retrieval, ask, quiz, artifacts, citation integrity, and source reopening are exercised. backend/main.py exposes get_workspace_manager(), get_run_manager(), and get_workspace_repository_for_manager() dependency providers, so workspace/run/repository state can be overridden in tests without touching route logic. |
| 2 | Local retrieval and grounded execution | ✅ complete | BM25/vector/hybrid retrieval, reranking, planner/executor, local sandbox, artifacts, telemetry, and regression coverage are in runtime. Citation chips require a minimum confidence threshold, so zero-score fallback passages never surface as conf=0.00 citations. Study-plan scheduling caps the horizon to avoid plan-item explosion on far-future exam dates. |
| 3 | Production frontend | ✅ complete | React workspace, streaming chat, citations, notebook, quiz, source viewer, developer diagnostics, teacher dashboard, and progress tracking are implemented. |
| 4 | Study loop | ✅ complete | Briefs, quiz attempts, concept updates, notebook artifacts, citation reopening, and study-progress aggregation (quiz history, concepts mastered, streaks) are persisted and surfaced in the UI. |
| 5 | Release hardening and beta validation | 🟡 in progress | Release and benchmark scripts, demo workspace, onboarding, troubleshooting, and known issues exist. Cross-platform release verification and external beta evidence remain. |
| 6 | Auth and roles | ✅ complete | Backend JWT/OAuth (Google/GitHub), cookie sessions, CSRF, and workspace roles (owner, teacher, student, viewer) enforced by assert_workspace_access. Frontend login/signup screen gates the workspace shell; session state lives in frontend/src/lib/appState. |
| 7 | Extensions (imports, voice, OCR, offline, i18n) | ✅ complete | GitHub/YouTube/Google Docs/OpenAlex/arXiv importers; speech-to-text + TTS; Tesseract OCR image ingestion; offline service worker; i18n (en+es) scaffolding. See "Feature status" below. |
| 8 | Public submission | ⬜ not started | Not a repository implementation task. |
| Date | Command | Result |
|---|---|---|
| 2026-08-13 | FIELDNOTES_USE_FAKE_LLM=1 python -m unittest discover -s tests |
Ran 177 tests / OK (skipped=3) |
| 2026-08-13 | cd frontend && npm test |
5 files / 26 tests PASS (including axe accessibility) |
| 2026-08-13 | cd frontend && npm run build |
PASS |
| 2026-08-07 | FIELDNOTES_USE_FAKE_LLM=1 python -m unittest discover -s tests |
Ran 172 tests / OK (skipped=3) |
| 2026-07-21 | FIELDNOTES_USE_FAKE_LLM=1 python -m unittest discover -s tests |
Ran 135 tests in 45.681s / OK (skipped=4) |
| 2026-07-20 | .venv312/bin/python scripts/exit_phase0.py |
PASS (7 checks, live probe skipped without credentials) |
| 2026-07-20 | .venv312/bin/python scripts/exit_phase1.py |
PASS (10 checks) |
- Validate
scripts/release_check.pyin a Python environment where npm is discoverable onPATH. - Complete external beta feedback and platform evidence before declaring a stable
1.0.0release. - The Vercel check is satisfied via
vercel.jsonscoped tofrontend/static build; Render (render.yaml) remains the primary deploy target.
Backend pieces:
backend/auth/— JWT (jwt.py), OAuth (oauth.py), cookies (cookies.py), dependencies (dependencies.py), security (security.py).- Roles:
owner,teacher,student,viewerenforced viaassert_workspace_accessacross ask/quiz/notebook/study/flashcard/integration/teacher routes. - Local mode (no
FIELDNOTES_AUTH_ENABLED=1) still runs as synthetic single-user local owner.
Frontend pieces:
- Login/signup screen (
frontend/src/components/LoginScreen.tsx) wired to existing OAuth + JWT cookie flow; gates the app shell when auth is enabled and unauthenticated. - Session state in
frontend/src/lib/appState(auth status refresh on mount, login/logout handlers). - Teacher dashboard (
frontend/src/routes/TeacherDashboardRoute.tsx) lists owned/taught workspaces, students, class progress, and bulk share (viewer/student role grants). - Progress tracking UI (
frontend/src/routes/StudyProgressRoute.tsx) surfaces quiz history, concepts mastered, streaks, and topic mastery.
| Feature | Status | Notes |
|---|---|---|
| Teacher dashboard + classroom sharing | ✅ | backend/routers/teacher.py + frontend/src/routes/TeacherDashboardRoute.tsx |
| Progress tracking UI | ✅ | /study-progress now returns quiz_history + concepts_mastered; dashboard renders them |
| GitHub importer | ✅ | README/raw-file fetch via repo API, backend/services/importers.py |
| YouTube transcript importer | ✅ | Captions API ingestion to local .txt |
| Google Docs importer | ✅ | Export via existing Google OAuth Drive token |
| OpenAlex / arXiv search + PDF fetch | ✅ | Search endpoints + arXiv PDF download into workspace |
| Voice mode | ✅ | Web Speech API STT on composer; TTS "Speak" per answer |
| OCR for handwritten notes | ✅ | Tesseract (pytesseract) image parser with graceful fallback; requires tesseract binary |
| Offline service worker | ✅ | frontend/public/sw.js caches shell + last-loaded workspace data (read-only) |
| i18n scaffolding | ✅ | react-i18next with English + Spanish; language toggle in header and login screen |
No completed implementation phase is marked as not started.