Filesystem updates
The current file listing implementation does not allow for asynchronous updates of the file list once its been retrieved. It would be possible to use either Inotify or a simple busy-wait loop (polling) to implement a mechanism that flags the file list as "outdated". The client could then retrieve either the full file list again or the missing files based on the "outdated" flag.
Suggested implementation would be to try to use inotify with for instance:
https://github.com/trendels/gevent_inotifyx
To listen to file system events and send the "outdated" event over socketio-io. The client can then retrieve the full list again.
The potential problem with this solution is that the "update" rate might become quite high if sampling frequency is high. So some logic that only sends updates at a reasonable rate needs to implemented.
If this does not work or turns out to be to complicated polling can be used to ensure a "fixed" update rate.