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

masci / banks
95%

Build:
DEFAULT BRANCH: main
Repo Added 29 Sep 2024 04:08PM UTC
Files 24
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

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • clelia/add-pydantic-input-and-xml-filter
  • copilot/migrate-project-config-away-from-hatch
  • docs/rename-claude-to-agents
  • docs/template-security-warning
  • feat-accept-bytes-for-filters
  • feat-support-documents
  • feat-support-video
  • fix-unknown-role-error-message
  • fix/chat-role-injection
  • fix/directory-registry-path-validation
  • fix/media-path-validation
  • fix/safe-tool-callable-resolution
  • issue_70
  • logan/fix-deps
  • logan/fix_content_block_parsing
  • logan/optional_deps
  • main
  • massi/3.9
  • massi/34
  • massi/36
  • massi/54
  • massi/56
  • massi/58
  • massi/audio
  • massi/audio-filter
  • massi/audiourl
  • massi/bump-python
  • massi/deps
  • massi/fix-latest-hatch-lint
  • massi/img-bug
  • massi/typos
  • massi/xml-support
  • patch-1
  • update-readme-chat-example

08 Aug 2026 03:52PM UTC coverage: 94.529% (-0.08%) from 94.607%
31265541410

push

github

web-flow
fix: only parse marked output as chat messages (#78)

* fix: only parse marked output as chat messages

Prompt.chat_messages() parsed every line of the rendered template as a
possible ChatMessage, so template data that rendered to message JSON was
returned as a privileged system, assistant or tool message.

Each Prompt now carries a secret sentinel in its render context. The chat
tag, the tool filter and the media filters mark everything they emit with
it, and the parsers accept only marked lines and markers; anything else
stays plain text. The sentinel is per instance rather than per render
because the render cache keys on the context, so a sentinel that changed
between renders would make cached text unparseable. text() strips it, so
its output is unchanged and the marker cannot leak to whoever supplies
the data.

The same round trip through rendered text also affected
CompletionExtension._body_to_messages(), where data could inject tool
definitions as well as messages, and chat_message_from_text(), where data
could inject content blocks such as remote image URLs through the
no-chat-block fallback. Both are covered.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix formatter

* fix: match sentinel past leading indentation

Only block tags get their indentation trimmed by lstrip_blocks, so a
`{{ ... | tool }}` line inside a completion block renders indented. The
sentinel check required the marker at the start of the line and silently
dropped those tools, breaking function calling. The JSON parser used to
tolerate the indentation, so this was a regression.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

113 of 119 branches covered (94.96%)

Branch coverage included in aggregate %.

96 of 97 new or added lines in 12 files covered. (98.97%)

4 existing lines in 2 files now uncovered.

941 of 996 relevant lines covered (94.48%)

0.94 hits per line

Relevant lines Covered
Build:
Build:
996 RELEVANT LINES 941 COVERED LINES
0.94 HITS PER LINE
Source Files on main
  • Tree
  • List 24
  • Changed 12
  • Source Changed 12
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
31265541410 main fix: only parse marked output as chat messages (#78) * fix: only parse marked output as chat messages Prompt.chat_messages() parsed every line of the rendered template as a possible ChatMessage, so template data that rendered to message JSON was... push 08 Aug 2026 03:53PM UTC web-flow github
94.53
31264984157 fix/chat-role-injection Merge e1d147f59 into ae351d771 Pull #78 08 Aug 2026 03:40PM UTC web-flow github
94.53
31264644850 fix/chat-role-injection Merge 4c8d76015 into ae351d771 Pull #78 08 Aug 2026 03:32PM UTC web-flow github
94.25
28851132359 main fix: validate prompt paths in DirectoryPromptRegistry (#77) * fix: validate prompt paths in DirectoryPromptRegistry Prevent path traversal when resolving prompt file names and versions, and reject poisoned index entries that escape the registry ... push 07 Jul 2026 08:05AM UTC web-flow github
94.61
28850132171 fix/directory-registry-path-validation Merge 1ddabc27d into 3ab65baca Pull #77 07 Jul 2026 07:46AM UTC web-flow github
94.61
28849815681 fix/directory-registry-path-validation Merge 8cf68b30e into 3ab65baca Pull #77 07 Jul 2026 07:40AM UTC web-flow github
94.75
28243335110 main fix: restrict media filter file paths to the current working directory (#76) * fix: restrict media filter file paths to the current working directory Resolves absolute and traversal paths by canonicalizing them and verifying they stay within CWD... push 26 Jun 2026 02:09PM UTC web-flow github
94.57
28242516066 fix/media-path-validation Merge 2e8227a82 into 1ef6c8739 Pull #76 26 Jun 2026 01:55PM UTC web-flow github
94.57
28233796943 fix/media-path-validation Merge 9606d8673 into 1ef6c8739 Pull #76 26 Jun 2026 11:00AM UTC web-flow github
94.87
27767342822 main fix: resolve tool callables from an explicit registry instead of importlib (#75) The `tool` filter now registers each callable by name in `CompletionExtension._callable_registry` at render time. `_get_tool_callable` looks up callables exclusively... push 18 Jun 2026 02:41PM UTC web-flow github
94.8
See All Builds (164)
  • Repo on GitHub
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