dsh-overleaf v0.3.1
dsh-overleaf v0.3.1
Tab-switch keep-alive + hands-off agent output insertion
Three field-reported issues fixed:
1. Get the generated content without switching tabs
The composed prompt now instructs the agent to write its final content into the workspace file dsh-overleaf-insert.md; the panel polls the new read-insert-file route every 4 seconds and auto-inserts new content at the caret — no tab switching, no copy-paste. (Host-side reads are restricted to that single fixed filename inside the session cwd.)
2. Tab switches no longer lose the open project
The conversation view unmounts on tab switches, which destroyed a React-owned iframe (reload → back to the project list). The persistent iframe now lives at body level for the whole page lifetime and is positioned over the stage with fixed geometry (ResizeObserver + interval re-sync); unmount merely hides it. The open project, login state, and scroll position survive every tab switch. The reload button uses location.reload() on the persistent frame.
3. Talk about the project text
The AI-write section gained an "attach full document text (truncated)" option — context radius extends to 200k characters so the agent can reason about the whole document, not just the caret neighborhood.
Upgrade
dsh plugin --profile web add github:gychen-NJU/dsh-overleaf(already installed? remove first, re-add, restart the web service, then hard-refresh the DSH page with Ctrl+F5)