Improving writing experience for Typst.app with AI: Typst Side Agent v1.1.0

Continuing the discussion from Typst Side Agent (Chrome Extension for typst.app editor): AI Assistant with line-precise editing, diagnostics loop, and tools:

Hi everyone — I previously introduced Typst Side Agent, an open-source Chromium extension that adds a tool-using AI assistant beside the typst.app editor.

I’ve now released v1.1.0, a substantial update focused on making agent-driven editing easier to inspect, recover, and control.

Review changes before applying them

The agent now shows proposed edits as a unified diff with old and new line numbers. You can Apply or Reject them, while Auto approve remains optional.

Revert responses and restore snapshots

Each editing response creates a local recovery checkpoint. You can revert the changes from that response, preview automatic document snapshots, and restore an earlier state. A rescue copy is created before every snapshot restore.

This does not make LLM output deterministic. Instead, it makes document states inspectable and recoverable: you can see what changed and return to a known state when necessary.

Project-aware multi-file editing

The agent can now inspect the visible Typst file hierarchy, open an exact project file, and remember which file belongs to each message. Runs remain tied to their original tab, project, chat, and file.

The release also improves diagnostics, cancellation, streaming, session storage, external-tool approvals, extension-update recovery, and bundled Typst 0.15/0.15.1 references.

This is a large update, and my real-world testing is still limited. I have already noticed several minor bugs and will work on fixes for a follow-up release soon. If you try it, bug reports, workflow feedback, and feature suggestions are very welcome—either here or through GitHub Issues.

Special thanks to @Romain_Besseau for suggesting a VS Code-style diff before accepting changes, and to @Andrew for encouraging me to describe “document safety” and “reproducibility” more precisely. Both comments directly shaped this update.