docs: describe deletes that go to the trash

A new page, `doc/trash.md`, covers what a delete does now: where a path lands on
each platform, what is still deleted outright (an explicit `permanent=true`, a
host that cleared `[trash]`, scratch paths under the OS temp dir, the
`copy_path` / `move_path` overwrite, the temporary-workspace cleanup), what
happens when a trashing is refused — the file stays and the error says how to
delete it on purpose — and the two things the trash cannot help with: a shell
`rm` and anything a plugin or MCP server does on its own.

`[trash]` joins the example config and the README snippet, the README gains the
one-paragraph version, `AGENTS.md` the tool/config notes (including the confirm
wording a delete now uses), and the default tool playbook tells the model that
`delete_path` is undoable and what `permanent=true` costs.
This commit is contained in:
2026-10-21 20:25:27 +08:00
parent 2369592473
commit 0e8b0f8bd4
6 changed files with 121 additions and 3 deletions
+2
View File
@@ -50,6 +50,8 @@ retrying that path.
fix `old_string` or `max_replaces`; shell workarounds rarely help.
- `write_file` refuses to replace an existing file (read it, or change it with \
`edit_replace` / `edit_lineno`); a full replacement needs `overwrite=true`, which asks the human.
- `delete_path` moves the path into the system trash, so a delete stays undoable \
(`permanent=true` deletes for good; scratch paths under the OS temp dir always do).
- `edit_replace` defaults to the first match; if remaining matches are reported, \
raise `max_replaces` or narrow `old_string`.
- `edit_lineno` edits only lines you read via `read_file(path, with_lineno=true)`; \