···8899# Test with failures only to focus on failures and hanging tests
1010test-quiet *paths='':
1111- flutter test {{ paths }} --reporter=failures-only --timeout=120s
1111+ flutter test {{ paths }} --reporter=failures-only --fail-fast --timeout=120s
12121313# Run all tests
1414test *paths='':
1515- flutter test {{ paths }} --timeout=120s
1515+ flutter test {{ paths }} --fail-fast --timeout=120s
16161717# Run code gen
1818gen:
···137137 /// Used during sync merge operations to update sort order, pin status, and
138138 /// sync timestamps without requiring all fields. This only affects existing
139139 /// records - it will not insert a new record if the feed doesn't exist.
140140+ ///
141141+ /// We only apply sync updates if the user hasn't modified it locally since
142142+ /// the sync started (implied by localUpdatedAt being null).
143143+ ///
144144+ /// If clearLocalModification is true, we clear the localUpdatedAt timestamp
145145+ /// after successful remote sync.
140146 Future<int> updateSyncState({
141147 required String uri,
142148 required int sortOrder,
···147153 }) {
148154 return (update(savedFeeds)
149155 ..where((t) => t.uri.equals(uri))
150150- ..where((t) => t.ownerDid.equals(ownerDid)))
156156+ ..where((t) => t.ownerDid.equals(ownerDid))
157157+ ..where((t) => t.localUpdatedAt.isNull()))
151158 .write(
152159 SavedFeedsCompanion(
153160 sortOrder: Value(sortOrder),