8 Commits
Author SHA1 Message Date
f2389a893c Add .macroscope/ignore.md to skip mechanical files in review (#387)
* Add .macroscope/ignore.md to skip mechanical files in code review

Macroscope's managed review bills per KB of diff reviewed. This drops the
mechanical, non-hand-reviewed files from the reviewed/billed diff: uv.lock
(large on dependency bumps), recorded VCR cassettes, and doc images.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Preserve Macroscope default ignores; keep test code reviewed

A custom .macroscope/ignore.md replaces Macroscope's built-in defaults rather
than extending them. Copy their default base patterns verbatim and add this
repo's VCR cassettes on top. The default test-file patterns are omitted so
Macroscope still reviews test code; cassettes stay ignored via the explicit
rule.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Bill Easton <bill@pydantic.dev>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 11:45:22 -05:00
50638595fd Add "Part of the Pydantic Stack" footer to README (#297)
Links the marketing pages for Pydantic AI, Pydantic Logfire, and
Logfire AI Gateway so readers can discover the rest of the stack
in one place. UTM params attribute traffic back to this repo.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-20 14:39:27 -05:00
d347d08e3c feat(subagents): add SubAgents capability for delegating to child agents (#267)
SubAgents exposes a single delegate_task(agent_name, task) tool that runs
a named child agent in a fresh, isolated run, with the available agents
listed in the system prompt as a cache-stable instruction.

- deps are forwarded to every sub-agent; usage is shared by default
  (forward_usage) so usage limits apply across the whole agent tree
- inherit_tools (opt-in) exposes the parent's tools to sub-agents, with
  the delegate tool filtered out so they can't recurse into delegation
- shared_capabilities are applied to every sub-agent run
- event_stream_handler is forwarded to every sub-agent run so sub-agent
  events surface to the caller
- soft sub-agent failures (ModelRetry / UnexpectedModelBehavior) convert
  into a parent ModelRetry it can react to; hard limits propagate

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-09 11:12:20 -05:00
ae371bbdaf docs: ban em-dashes and codify writing style (#270)
Add a Writing style section to AGENTS.md so docs, comments, and PR text
read as human-written: no em-dashes (use `--`), no marketing superlatives
or editorializing adjectives, sparing bold, no decorative Unicode.

Bring the tree into compliance by converting every em-dash to `--` across
16 files. All occurrences are in prose, comments, docstrings, and tool
descriptions. The only runtime effect is that model-facing tool
descriptions now use `--` (punctuation only, no semantic change); no test
snapshots depend on the character. The one literal em-dash left is in
AGENTS.md, where it names the banned character.

https://claude.ai/code/session_01LQ9NTr8q95A99UnVcq6Nzf

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-09 11:08:14 -05:00
3d3247110c feat(planning): add Planning capability with cache-safe plan reminders (#266)
Planning gives the model a single write_plan(items) tool that owns the plan
via whole-plan replacement (no fragile indices). The current plan is surfaced
back as an ephemeral reminder appended to the request tail in
wrap_model_request, behind a CachePoint:

- the reminder reaches the model but is never written to the durable message
  history, so no stale copies accumulate
- the CachePoint sits before the reminder, so the cached prefix (tools +
  system + real conversation) stays byte-identical across turns and only the
  small reminder falls outside the cache

Static usage guidance goes in the system prompt (cache-stable); the mutable
plan is never injected there.

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-09 11:05:19 -05:00
e1654ccfe2 feat: add FileSystem and Shell capabilities (#260)
* feat: add FileSystem and Shell capabilities with exhaustive testing

- FileSystemToolset: 8 tools (read, write, edit, list, search, find, mkdir, info)
  with path-traversal prevention, allow/deny patterns, optimistic concurrency
- ShellToolset: 1 tool (run_command) with command validation, timeout handling,
  and async subprocess execution via anyio

---

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: David Sanchez <64162682+dsfaccini@users.noreply.github.com>
2026-06-01 20:47:07 -05:00
Bill EastonandGitHub d4be271de9 Revert "feat: add FileSystem and Shell capabilities with exhaustive testing (…" (#259)
This reverts commit 7fd372d9fd.
2026-05-26 20:01:42 -05:00
Bill EastonandGitHub 7fd372d9fd feat: add FileSystem and Shell capabilities with exhaustive testing (#258)
- FileSystemToolset: 8 tools (read, write, edit, list, search, find, mkdir, info)
  with path-traversal prevention, allow/deny patterns, optimistic concurrency
- ShellToolset: 1 tool (run_command) with command validation, timeout handling,
  and async subprocess execution via anyio
- 152 tests passing on asyncio backend, 100% branch coverage
- Mutation testing: 524/584 killed (89.7%), 60 equivalent mutants documented
- All survivors proven equivalent (trampoline defaults, encoding case-insensitivity,
  unreachable except blocks, dead branches, name=None fallback behavior)
2026-05-26 19:56:47 -05:00