v0.2.0 — Phase 2: Template Generation via Gemini 2.5 Pro
What is in this release
Phase 2 of EasyLab is complete. The application can now take a user-annotated reference image and generate a semantic template by calling Gemini 2.5 Pro, which enriches each annotated field with a semantic_description stored in template_fields.
Changes
Worker (FastAPI):
- Stage A pipeline: EXIF-transpose preprocessing, Gemini 2.5 Pro call with response_json_schema via Pydantic, retry with tenacity, degraded fallback when Gemini fails twice
- Spend controls enforced before any Gemini call (workspace_quota check + global token budget)
Web (Next.js):
- API routes: project CRUD, image upload (signed URLs), image confirm, reference image selection, field management, job enqueue, job status polling
- Pages: Dashboard, Upload, Annotate (react-konva canvas), and Process (polling + status display)
Phase boundary
Closes the Phase 2 milestone. Phase 3 (full detection + extraction, review table population) is next.