The description is a nullable field (link), so whenever clicking editing button for not edited or not set description here it causes changing value from undefined to undefined and a result nothing changes. We're not entering this branch which renders TextInput.
For thin threads, it works only because for some reason keyserver is replacing undefined description with an empty string here.
The alternative solution is to create a thick thread with an empty string as a description (instead of undefined), but I don't like this because types still allow for descryption to be nullable so this bug might be caused again in the future.
It might look uncommon to have interface declaration and implementation next to each other in a single file but in fact we don't need to expose CommServicesAuthMetadataIOSWrapper. If we want to call sendAuthMetadataToJS from Objective - C we can use the common C++ API so let's avoid creating unnecessary files and duplication the same API.