Trạng thái dự án AI-CLO PTITHCM — 08/09/2026

Trạng thái tổng quát

Assessment hiện hành

Student Attempt

Teacher Detail

AI-CLO | LIVE

LIVE là subpage trong app.html, không phải trang HTML riêng.

Teacher xem được:

Teacher không xem A/B/C/D đang chọn.

Backend Live

Source migration:

supabase/migrations/assessment-v12.6.34-live-monitoring.sql
supabase/migrations/assessment-v12.6.35-ios-live-sync.sql

Các object chính:

attempt_live_state.attempt_id và attempt_monitor_events.attempt_id đều cascade theo exam_attempts; xóa lượt làm sẽ xóa nhật ký giám sát của đúng lượt đó.

Cần xác nhận production Supabase đã chạy đủ V12.6.34 + V12.6.35 trước khi coi Live backend hoàn tất.

Browser-tab persistence contract

Contract hiện hành:

Không được dùng visibilitychange, pageshow hoặc auth focus event để dựng lại view đang sống.

Question Bank hiện hành

Provenance

Backend giữ giá trị kỹ thuật:

origin_type = 'gemini'

UI hiển thị:

✦ AI hỗ trợ

Không đổi Supabase chỉ để đổi nhãn.

Bulk import

Danh sách / hover

Quy tắc kỹ thuật đang áp dụng

  1. Một behavior = một owner runtime.
  2. Sửa đúng owner, không tạo wrapper/monkey patch nếu không cần.
  3. Frontend-only không yêu cầu SQL Supabase.
  4. Migration/RPC phải nằm dưới supabase/migrations/ và ghi rõ thao tác cần chạy.
  5. Edge Function tự chứa, không phụ thuộc _shared giữa các function.
  6. Fullscreen web/Live telemetry là tín hiệu giám sát, không phải secure browser/kiosk tuyệt đối.
  7. Không cho teacher Live xem lựa chọn đáp án đang làm.
  8. Mobile không được kéo toàn app tràn ngang; bảng rộng phải scroll trong vùng bảng hoặc chuyển card.

Smoke test ưu tiên