close worktree transport and lifecycle contract gaps
This commit is contained in:
@@ -54,3 +54,20 @@ func TestDecodeRejectsUnknownKnowledgeFields(t *testing.T) {
|
||||
t.Fatal("expected strict schema error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestVerifyTaskFileRejectsMutation(t *testing.T) {
|
||||
root := t.TempDir()
|
||||
if err := os.WriteFile(filepath.Join(root, "TASK.md"), []byte("task"), 0644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
sum := sha256.Sum256([]byte("task"))
|
||||
if err := VerifyTaskFile(root, hex.EncodeToString(sum[:])); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := os.WriteFile(filepath.Join(root, "TASK.md"), []byte("changed"), 0644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := VerifyTaskFile(root, hex.EncodeToString(sum[:])); err == nil {
|
||||
t.Fatal("expected immutable task check to fail")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user