ZARA-017: repair todo correctness #57

Merged
lost-rob0t merged 2 commits from fix/zara-017-todo-correctness into master 2026-07-19 08:03:39 +00:00
lost-rob0t commented 2026-07-19 08:00:48 +00:00 (Migrated from github.com)

Closes #18.

What changed

  • adds explicit preserve/change/clear patch semantics for todo updates
  • validates todo domain values before writes
  • implements calendar-correct recurrence and duration-aware conflict checks in storage
  • makes todo/tag/occurrence changes transactional
  • exposes complete and reopen through the public Python and agent tool surfaces
  • documents supported recurrence and scheduling behavior

Why

The prior storage contract could not intentionally clear optional values, accepted invalid data, approximated month/year recurrence, and detected only identical scheduling timestamps.

Validation

  • nix develop -c pytest -q t/test_todos.py — 19 passed
  • full required gate after merging current master — 155 passed and every scripts/test-*.sh passed
  • nix build — all five derivations built

Current origin/master was merged into this branch with a normal merge commit. No rebase was used.

Closes #18. ## What changed - adds explicit preserve/change/clear patch semantics for todo updates - validates todo domain values before writes - implements calendar-correct recurrence and duration-aware conflict checks in storage - makes todo/tag/occurrence changes transactional - exposes complete and reopen through the public Python and agent tool surfaces - documents supported recurrence and scheduling behavior ## Why The prior storage contract could not intentionally clear optional values, accepted invalid data, approximated month/year recurrence, and detected only identical scheduling timestamps. ## Validation - `nix develop -c pytest -q t/test_todos.py` — 19 passed - full required gate after merging current master — 155 passed and every `scripts/test-*.sh` passed - `nix build` — all five derivations built Current `origin/master` was merged into this branch with a normal merge commit. No rebase was used.
Sign in to join this conversation.
No description provided.