find_file_edits
Find file edits across coding agent sessions and agents, with redaction for sensitive data and optional full content retrieval.
Instructions
Find every file edit across sessions, cross-agent by default.
redact=True (default) masks secrets in emitted record fields as
[REDACTED_<TYPE>] and adds a redactions type→count dict when
any replacement happened; redact=False returns raw content.
Reference-by-default: to keep an audit listing small, each record does
not inline the full edit body. Instead it carries a light-weight
reference — input_sha256 (hash of the body) and input_chars (its
length) — so you can see a body exists and how big it is. Fetch the body
on demand with get_body / read_session (keyed by session_uuid
message_index). Passinclude_input=Trueto inline the full body underinputinstead.
Size-bounded output: over-long intent / assistant fields are cut
with a …[truncated] marker (named in the per-record
truncated_fields) and emission stops at a total byte budget
(output_truncated — distinct from the count-based truncated).
Default time window: a call with NO narrowing filter at all (no
agent / since / until) is scoped to the last
7 days instead of the whole corpus; the response then carries
default_since (the applied bound) plus a note saying so. Any
explicit scope disables the default — pass e.g. since="1970-01-01"
to deliberately scan the full history.
Thin wrapper over :func:ai_r.find_file_edits.find_file_edits
that translates the core ValueError contract into the
{"error": "invalid_argument", "message": str(exc)} shape the
MCP client expects.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| agent | No | ||
| limit | No | ||
| since | No | ||
| until | No | ||
| redact | No | ||
| include_input | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||