DNS traffic (requests and responses) has been encrypted by DNSCrypt. In this case, is hostname (https://www.example.com /destination IP adress) readable in transit by a third party during my TLS session? Actually i would like to clarify what does make hostname visible to others - unencrypted DNS traffic only or both unencrypted DNS and initial request to the destination server in the TLS session context?
From the DNSCrypt website:
DNSCrypt is a protocol that authenticates communications between a DNS client and a DNS resolver. It prevents DNS spoofing. It uses cryptographic signatures to verify that responses originate from the chosen DNS resolver and haven't been tampered with.
Please note that DNSCrypt is not a replacement for a VPN, as it only authenticates DNS traffic, and doesn't prevent "DNS leaks", or third-party DNS resolvers from logging your activity.
So yes, your DNS requests will still be readable since they are just authenticated and not encrypted.
What makes DNS request readable is that's it is not an encrypted protocol to start with. In the case of the TLS session, the IP of the server (you got from the DNS answer) is used to establish the connection. Thus a reverse DNS lookup can reveal the address of the server your are connecting to anyway. Though the content of the communication will remain confidential in normal conditions of operation.