The /ai/chat authoring loop used to be ephemeral: if you closed the tab between turns you lost any in-progress template. That's gone. Every successful DSL iteration now writes to your /templates list automatically — first iteration creates a new row, subsequent iterations update it in place. Your render-data textarea rides along on every save, so the template and the data you've been iterating against stay in sync.
Each save also captures a one-sentence description of what changed in that turn ("Adds a totals row with grid-aligned amount column.", "Switches header from row to column."), and each save is now a proper revision — not just a value that gets blown away on the next turn.
Click into any template (the cards on /templates now open a per-template page at /templates/<id>) and you'll see two tabs in the left column: Chat and History. The History tab lists every save against that template, newest first, with the timestamp and the change description. Linkable too — /templates/<id>?tab=history opens straight to the list.
Re-opening a saved template via Modify Template rehydrates the chat exactly as you left it: same DSL in the workspace, same render data in the panel, same template id under the hood, so the next AI iteration goes straight to update mode. There's no separate "save" or "publish" step — every change is a save, and every save is a revision you can scroll back through.
If you've typed render data between AI turns and try to close the tab, the browser's standard "Leave site?" prompt will still warn you, since data-only edits aren't bundled into a save until the next DSL change ships them through.