• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vstorm-co / pydantic-ai-backend / 32567394156
100%

Build:
DEFAULT BRANCH: main
Ran 22 Aug 2026 10:22AM UTC
Jobs 1
Files 46
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Aug 2026 10:21AM UTC coverage: 100.0%. Remained the same
32567394156

push

github

web-flow
fix(toolsets): send a return description the way pydantic-ai sends one (#110)

`render` appended a prose `Returns: …` paragraph. pydantic-ai does
something else with a docstring's `Returns:` section — it wraps the
prose in `<summary>` and the return description in `<returns>`:

```
<summary>Draw a chart of numbers you already have, so the user can see them.

Use this whenever the user asks to plot, chart, graph or compare figures …</summary>
<returns>
<description>The chart specification, already on its way to the user.</description>
</returns>
```

So a host that registers these tools beside tools of its own ends up
with two conventions in one tool list: `create_chart`, built from a
docstring, arriving as XML, and `ls` arriving as prose describing the
same kind of thing. That shape was invented here, and inventing it was
the mistake — the framework already had one.

`render` emits the framework's shape now.

The test pins it against a tool pydantic-ai renders itself rather than
against a string literal:

```python
@native.tool_plain
def demo() -> str:
    """Do a thing.

    A second paragraph of usage.

    Returns:
        One line per entry.
    """

assert ToolText(summary=..., usage=..., returns=...).render() == native.tools["demo"].tool_def.description
```

If pydantic-ai changes how it renders that section, this fails here
rather than leaving these tools quietly speaking the old dialect.

A `ToolText` with no `returns` is still plain prose, which is also what
the framework does with a docstring that has no `Returns:` section.

The `*_DESCRIPTION` constants carry the new shape with them. A catalogue
that wanted the prose reads `ToolText.summary` — the sentence it wanted
in the first place, and what agenticos already shows beside its approval
checkboxes.

Verified: 1716 tests pass, coverage 100%, pyright and mypy strict clean.

4 of 4 new or added lines in 1 file covered. (100.0%)

4644 of 4644 relevant lines covered (100.0%)

1.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32567394156.1 22 Aug 2026 10:22AM UTC 46
100.0
GitHub Action Run
Source Files on build 32567394156
  • Tree
  • List 46
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32567394156
  • 3f75409d on github
  • Prev Build on main (#32565375581)
  • Next Build on main (#32567407790)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc