Yesterday’s Monaco viewer became an editor. /file can now save, running the content through formatWithOxfmt on the way so a save doesn’t immediately fail lint, and resolveWithinCwd refuses any path that escapes the session’s working directory. Saves are also checked for staleness — getFileWriteBody compares against what the editor loaded and rejects the write if the file moved underneath me, rather than silently overwriting an agent’s work. That last one is the whole reason the feature is safe to use while a session is running.

I spent a while on review prompts. Reviewers are now told explicitly never to ask for added comments, and the synthesis step drops comment-add nits if one slips through anyway — the codebase has a self-documenting-code policy and I was tired of reviews arguing with it. PR body guidance got terser too, extracted into prConcisenessGuidance so prs raise and prs edit share one voice, and prs edit now goes through the preview pane instead of writing straight to GitHub.

Session titling got smarter about reference-only prompts. When a prompt is just a Jira key or issue URL, extractContextAfterReference reads past the reference in the transcript and titles the card from what the session actually went on to do.

Two fixes: retrying a session now tears down its worktree and defers the respawn rather than racing the old tree’s teardown, and the config scope toggle shows the write target it’s actually going to hit, via ConfigWriteTargetHint.