Ширина не 100%.
100% считаются от ширины родительского блока.
Но в родительском блоке есть еще img.
Значит нужно задать ширину за вычетом ширины картинки.
Виталий, вам не угодишь. Но так или иначе, мой ответ является решением. В вопросе то не было слов о том, чтобы не использовать display: contents!!!))))
Невозможным через css добавить три точки к тексту, который не умещается в свое пространство, из-за display: flex. Надо переверстать тогда верстку на использование display: grid и text-overflow: ellipsis; будет работать.
Firsov36, Я не критикую, свойство реально полезное с этим не поспоришь, но оно почти во всех браузерах экспериментальное и я бы сейчас на продакшен такое не советовал выкатывать.