AI-CLO PTITHCM — V12.1 Stability Fix

Ngày: 05/09/2026

V12.1 tập trung sửa 3 lỗi P1 phát hiện khi audit V12.0. Không bổ sung nghiệp vụ mới.

1. Ma trận V12 được lưu bền vững

V12.0 cho phép hai kiểu cấu trúc bài kiểm tra:

V12.1 bổ sung vào exams:

Frontend mới lưu và khôi phục blueprint từ Supabase thay vì phụ thuộc localStorage. Local draft chỉ còn là lớp phục hồi dự phòng.

RPC populate_attempt_questions() được nâng cấp:

Bài cũ được backfill theo hành vi an toàn topic_clo. Nếu trình duyệt còn local draft V12 có cấu trúc chapter_pool, frontend V12.1 có thể phục hồi blueprint đó lên server khi mở bài.

2. Sửa Làm thử của giảng viên

attempt-autosave.js không còn ghi đè các hàm preview giảng viên theo chữ ký V10.3.

Preview giảng viên tiếp tục do assessment.js quản lý và đọc từ exam_question_pool đã đóng băng, tránh lệch câu/đáp án nếu ngân hàng câu hỏi được chỉnh sau đó.

Autosave trong file này chỉ còn phụ trách lượt làm của sinh viên.

3. AI dùng cùng phạm vi với Kết quả CLO

Các phân tích tổng hợp theo học phần được đồng bộ với counts_toward_grade:

AI cho một exam cụ thể hoặc một attempt cụ thể vẫn hoạt động kể cả khi bài đó không tính vào kết quả CLO học phần.

File thay đổi chính

Thứ tự cập nhật Supabase

  1. Đảm bảo đã chạy supabase/migrations/assessment-v12.0-migration.sql.
  2. Chạy supabase/migrations/assessment-v12.1-migration.sql trong Supabase SQL Editor.
  3. Deploy lại Edge Function analyze-assessment bằng file supabase/functions/analyze-assessment/index.ts.
  4. Deploy lại Edge Function analyze-student-clo bằng file supabase/functions/analyze-student-clo/index.ts.
  5. Sau đó mới kiểm thử frontend V12.1 trên GitHub Pages.

Kiểm thử khuyến nghị

Ma trận

Làm thử giảng viên

AI

Backup

Backup trước khi triển khai V12.1:

backup-before-v12.1-stability-20260905