それはすべてこのブロックについてです:
<div class="panel done-{{ todo.done }}" ng-repeat="todo in todos()" ng-click="changeStatus(todo)">
<input type="checkbox" ng-model="todo.done"> {{ todo.title }}
</div>
チェックボックスの外側の ng-click を削除すると正常に機能しますが、そうしないと ng-click だけが機能します。Ng-click はチェックボックスの値を変更しますが、チェックボックスは状態を変更しません。
$scope.changeStatus = function(todo) {
todo.done = ! todo.done;
};