aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-server-database/src/lib.rs
diff options
context:
space:
mode:
authorMichelle Tilley <michelle@michelletilley.net>2026-04-21 10:53:31 -0700
committerGitHub <noreply@github.com>2026-04-21 10:53:31 -0700
commit33c779aa9894e1347aeaa4c73e536cf842aee684 (patch)
treebfe0f60252518798ccf4621c7bea06021e64d2f4 /crates/atuin-server-database/src/lib.rs
parentfeat: AI tool rendering overhaul + edit_file tool (#3423) (diff)
downloadatuin-33c779aa9894e1347aeaa4c73e536cf842aee684.zip
feat: Implement write_file tool with overwrite safety (#3432)
## Summary Implements the `write_file` client-side tool — creates new files or overwrites existing ones with an explicit `overwrite` flag for safety. - **Overwrite flag**: Writing to an existing file without `overwrite: true` returns an error directing the LLM to set the flag or use `edit_file` for targeted changes. Prevents accidental overwrites. - **Snapshots**: Existing files are backed up before overwriting (same infrastructure as `edit_file`). - **Content preview**: Completed writes show the first 10 lines in gray with line numbers, plus "+ N more lines" for longer files. - **Atomic writes**: Uses `tempfile` + fsync + rename (same as `edit_file`). - **File tracker update**: After writing, the file is registered in the tracker so subsequent `edit_file` calls work without a separate read. - **Permission**: Shares the `"Write"` rule with `edit_file` — one permission covers both tools.
Diffstat (limited to 'crates/atuin-server-database/src/lib.rs')
0 files changed, 0 insertions, 0 deletions