返回 DeepSeek-Reasonix
extension_resume.go
根目录 / internal / recovery / extension_resume.go
1 package recovery
2
3 import "reasonix/internal/extension"
4
5 // AssessRuntimeResume returns whether checkpoint/session resume can claim a
6 // clean rollback for the published (or given) runtime generation.
7 //
8 // Policy is owned by extension.DecideResume: irreversible work never yields
9 // CleanRollback=true; resume itself remains allowed with awareness.
10 func AssessRuntimeResume(gen uint64) extension.ResumeDecision {
11 if gen == 0 {
12 gen = extension.DefaultPublishGate().Published()
13 }
14 return extension.DecideResumeDefault(gen)
15 }
16
17 // ResumeNotesForGeneration formats doctor-facing notes for a generation.
18 func ResumeNotesForGeneration(gen uint64) []string {
19 d := AssessRuntimeResume(gen)
20 out := make([]string, 0, len(d.Notes)+2)
21 if d.HasIrreversible {
22 out = append(out, "irreversible external effects present; clean rollback is not claimed")
23 }
24 if !d.CleanRollback {
25 out = append(out, "resume allowed with awareness; compensation incomplete or not applicable")
26 }
27 out = append(out, d.Notes...)
28 return out
29 }
30
30 lines GO