I've been thinking about a much simpler setup for a bash notebook — create a docker layer after every command.
Works for a shell since there are no active processes between commands. (Get's complicated if you want to run background jobs.)
The native format for such a notebook could be Dockerfile!
I'm not sure whether a rewindable shell is actually something I'd want for day-to-day work.
E.g. if the command was interactively editing a file, rewinding the world and re-launching the editor is not very useful! So I'd also want something like git rebase, or be careful about what I do inside the rewindable container vs outside.
Also, I would not want to rewind my whole computer.
Anyway, this setup checkpointing a live process is much more impressive.
I'm not sure whether a rewindable shell is actually something I'd want for day-to-day work. E.g. if the command was interactively editing a file, rewinding the world and re-launching the editor is not very useful! So I'd also want something like git rebase, or be careful about what I do inside the rewindable container vs outside. Also, I would not want to rewind my whole computer.
Anyway, this setup checkpointing a live process is much more impressive.