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
+8
View File
@@ -63,6 +63,14 @@
# include_reason = false
# protocol = "" # terminal protocol: "" = detect, or osc777 / osc9 / bell
# Deletes. `delete_path` moves the path into the desktop's trash (freedesktop
# trash / Finder trash / Recycle Bin) so it can be restored from the file
# manager; `permanent=true` on the call removes it for good, and paths under the
# system temp dir are always deleted outright. `enabled = false` restores the
# old "a delete is final" behaviour for every call. See doc/trash.md.
# [trash]
# enabled = true
# MCP (Model Context Protocol) servers exposed as agent tools.
# Defining a server opts it in; tools appear as mcp__<server>__<tool> with
# LOCAL tags (confirm flow applies). Names in disable stay disconnected.