The issue is caused by my docker volume configuration. I have tryton_filestore mounted to /var/lib/trytond, and my trytond.conf sets the web root inside that directory (root = /var/lib/trytond/www).
Because of this volume persistence, when I switched the image tag from 7.6 to 7.8, the container continued to serve the old sao files stored in the volume instead of the new ones provided by the image. That is why I had to manually remove and reinstall the web client.