aicctv
Self-review (Task 16) follow-up fixes: - PdoEventRepository::recent(): add event_id DESC as a secondary sort key after occurred_at DESC so ties (equal device-reported timestamps) resolve deterministically, matching InMemoryEventRepository's insertion-order tie-break. - PdoZoneRepository::updateOwned(): after the ownership-scoped UPDATE, disambiguate a 0-rowCount() result (MySQL reports "changed" rows, not "matched" rows) with a targeted existence check, so a genuine no-op resubmit (identical level/polygon) still succeeds while a zone deleted concurrently between the ownership check and the UPDATE now throws instead of save() silently reporting success for a zone that no longer exists. Full suite still green: 59 tests, 114 assertions, 4 skipped, 0 failures, 0 warnings/deprecations. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ne4rU4FToTLHcBUMUvUnT1 |
||
|---|---|---|
| cloud | ||
| docs | ||
| edge | ||
| tests | ||
| .gitignore | ||
| pyproject.toml | ||