Logs for posterity. I haven't been able to reproduce this with IPython 8, even with the published sopel-ipython 0.0.2 release (uploaded before #2 disabled the console history).
Exception ignored in atexit callback: <bound method InteractiveShell.atexit_operations of <IPython.terminal.embed.InteractiveShellEmbed object at 0x7f0e2198c430>>
Traceback (most recent call last):
File "/home/dgw/.local/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3908, in atexit_operations
self.history_manager.end_session()
File "/home/dgw/.local/lib/python3.10/site-packages/IPython/core/history.py", line 574, in end_session
self.writeout_cache()
File "/home/dgw/.local/lib/python3.10/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "/home/dgw/.local/lib/python3.10/site-packages/IPython/core/history.py", line 58, in needs_sqlite
return f(self, *a, **kw)
File "/home/dgw/.local/lib/python3.10/site-packages/IPython/core/history.py", line 780, in writeout_cache
self._writeout_input_cache(conn)
File "/home/dgw/.local/lib/python3.10/site-packages/IPython/core/history.py", line 761, in _writeout_input_cache
with conn:
sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 139698651924032 and this is thread id 139698756259840.
$ pip list | grep ipython
ipython 7.34.0
sopel-ipython 0.0.2
I think the best "fix" for this is to hold until Sopel 8.0 is finished, then release a new version of sopel-ipython with #2 reverted (turning history back on), support for Sopel<8 and Python<3.8 dropped, and requiring IPython>=8.
That's a lot of 8sā¦ But turning off the console history was already just a kludge-y workaround, and there's no reason to lose that feature from the plugin permanently unless I can reproduce the error with Python 3.8+ and a current version of IPython.