Looking at the logs, the issue is related to epub and kepub.
The log shows two metadata plugboards:
Code:
Device using plugboard epub KOBOTOUCHEXTENDED [["{authors:'re($, ' & ', ', ')'}", 'authors']]
Device using plugboard kepub KOBOTOUCHEXTENDED [["{title}{#endvol:'test($, strcat(' [', re(field('series_index'), '\\.?0*$', ''), ' - ', re($, '\\.?0*$', ''), ']'), '')'}", 'title']]
The first is for epubs and has the authors being set. The first is for kepubs and does not set the author. When it is used, the authors will be set to whatever is in the library.
Your problem is caused by how the KoboTouchExtended driver works. When you send an epub to the device, calibre sees it as an epub and applies the epub metadata plugboard. The KoboTouchExtended driver does the transformation to kepub after this.
When the device is connected again, the driver sees kepubs. It doesn't know whether book was an epub or a kepub when it was sent to the device. When it updates the metadata, the metadata plugboard used is the kepub metadata plugboard. And your kepub metadata plugboard does not set the author, so it becomes the value that is in the library.
There is an exception to this. When I coded the metadata update, I knew about this. If the book on the device is a kepub, it will look for a kepub plugboard. But, if there is none, it will look for an epub plugboard.
What you can do is one of:
- Add the author code to the kepub plugboard.
- Remove the kepub plugboard. And decide if you want the title setting code on the epubs.
- Use an "any_format" plugboard. That will be used with all formats both when sending the book and updating the metadata. Again, you need to device what to do about the title.