?
TRCKR-382
bug
Created: 2025-12-16 Updated: 2025-12-16
Relationships Loading...
Attachments
Loading...
Comments (4)
plow-manager · 2025-12-16
## Resolution Summary ### Investigation Findings The original report described a comment with ID `fdc559c624142773e4c38e99702074c2` (32 hex chars) that wasn't in sync_log. This ID format differs from our standard UUID format (36 chars with dashes like `722b507e-fe99-4ef9-8e81-b6d1b599b7e7`). **Conclusion:** The reported comment was likely received via sync FROM the server, not created locally. Server-originated entities are inserted via `_insert_from_server()` which intentionally skips sync_log (they don't need to sync back). ### Real Bug Found & Fixed During investigation, we discovered **relationship operations were NOT being logged to sync_log**: - `create_relationship()` - missing `_log_sync_change()` call - `delete_relationship()` - missing `_log_sync_change()` call This meant any `trckr issue link` or `trckr issue unlink` commands would appear to work locally but never sync to the server. ### Changes Made (commit c642307) 1. **client/store.py:2187-2193** - Added sync_log call to `create_relationship()` 2. **client/store.py:2290-2310** - Added sync_log call to `delete_relationship()` 3. **tests/test_sync_log.py** - Added 19 comprehensive tests covering sync_log for comments, issues, projects, milestones, and relationships ### Verification - All 776 unit tests pass including 19 new sync_log tests - Functional testing confirmed relationship operations now create sync_log entries - Branch merged to master and deployed ### Why We're Satisfied 1. The original symptom (comment not in sync_log) was explained by server-origin ID format 2. A real bug (relationships not logged) was found and fixed 3. Comprehensive test coverage prevents regression 4. Fix verified both via unit tests and manual functional testing
qa-agent · 2025-12-16
## QA PASSED See QA report document: 059fa81f-1390-4154-a22d-4016750250d2 **Verification Summary:** - All 19 new sync_log tests pass - CLI create_relationship now logs to sync_log (verified via sqlite3) - CLI delete_relationship now logs to sync_log (verified via sqlite3) - No regressions found (175 related tests pass) - Fix required reinstall to take effect Fix verified working.
agent · 2025-12-16
## Investigation Findings ### Root Cause Analysis The reported comment ID `fdc559c624142773e4c38e99702074c2` is 32 hex characters without dashes, which does NOT match the format generated by `generate_id()` which uses `str(uuid4())` (36 chars with dashes like `722b507e-fe99-4ef9-8e81-b6d1b599b7e7`). This strongly suggests the comment was received via sync from the server rather than created locally via CLI. When entities are synced FROM the server, they are inserted directly via `_insert_from_server()` which intentionally does NOT log to sync_log (as server-originating entities don't need to sync back). ### Bug Found and Fixed During investigation, I discovered a real sync_log bug: **relationship operations were NOT being logged to sync_log**. Both `create_relationship()` and `delete_relationship()` in `client/store.py` were missing the `_log_sync_change()` call. This meant relationships created locally would never sync to the server. ### Changes Made 1. **client/store.py:2187-2193** - Added sync_log call to `create_relationship()` 2. **client/store.py:2290-2306** - Added sync_log call to `delete_relationship()` 3. **tests/test_sync_log.py** - Added comprehensive test coverage (19 tests) ### Test Results All 776 unit tests pass including the 19 new sync_log tests. ### Recommendation The original reported issue appears to be a misunderstanding about which entities were locally-created vs server-synced. The 32-char hex ID format is a strong indicator the comment originated from an external system.
triage-agent · 2025-12-16
## Bug Triage Complete **Reproduction:** CANNOT REPRODUCE **Summary:** Extensive testing of the sync_log recording mechanism shows it is working correctly. The bug could not be reproduced in any scenario tested (single connection, multiple connections, failed sync, CLI path, TUI path). **Key Finding:** The reported comment ID (32-char hex) differs from the standard UUID format (36-char with dashes) generated by `generate_id()`. This suggests the comment may have been received via sync from the server rather than created locally, which would explain why there's no local sync_log entry (by design). **TDD Approach:** 1. Add test coverage for comment sync_log recording 2. Add debug logging to track sync_log creation 3. Add sync verification command to detect missing entries **Recommendation:** Keep as urgent priority. Request more details from reporter. Consider the possibility that the comment was server-originated rather than locally created. See attached triage report (doc b5845639-1a20-4cc1-a3b9-e85278d9147f) for full details.