feat: 完善听力口语辅助状态记录、练习分块与复习抽查间隔机制
This commit is contained in:
@@ -92,6 +92,8 @@ enum EvidenceKind {
|
||||
pending,
|
||||
}
|
||||
|
||||
enum ListeningSupport { none, slow, transcript }
|
||||
|
||||
/// Local dialogue matching is intentionally tri-state. A natural English
|
||||
/// reply that does not match a strict taught-language rule is unknown, not
|
||||
/// automatically wrong.
|
||||
@@ -160,6 +162,10 @@ class AttemptEvidence {
|
||||
this.originalTranscript,
|
||||
this.transcriptConfirmed = false,
|
||||
this.transcriptEdited = false,
|
||||
this.listeningSupport,
|
||||
this.firstTry,
|
||||
this.attemptCount,
|
||||
this.usedSentenceBuild = false,
|
||||
});
|
||||
|
||||
final String id;
|
||||
@@ -182,6 +188,10 @@ class AttemptEvidence {
|
||||
final String? originalTranscript;
|
||||
final bool transcriptConfirmed;
|
||||
final bool transcriptEdited;
|
||||
final ListeningSupport? listeningSupport;
|
||||
final bool? firstTry;
|
||||
final int? attemptCount;
|
||||
final bool usedSentenceBuild;
|
||||
}
|
||||
|
||||
enum AiProviderType { mock, gemini, openAi, compatible }
|
||||
@@ -212,8 +222,9 @@ class DialogueAiResponse {
|
||||
final String? feedback;
|
||||
}
|
||||
|
||||
/// A bounded suggestion only. It never changes completion, mastery, or a
|
||||
/// stage result; those decisions remain on-device and evidence-based.
|
||||
/// A bounded evaluation input. Lesson free-response evidence requires both
|
||||
/// local task matching and an accepted verdict; mastery and stage decisions
|
||||
/// still remain on-device and derive from recorded attempts.
|
||||
class WritingAiFeedback {
|
||||
const WritingAiFeedback({
|
||||
required this.verdict,
|
||||
|
||||
Reference in New Issue
Block a user