Skip to content

fix(server): reject empty string list evaluator values#121

Merged
lan17 merged 4 commits intomainfrom
codex/fix-list-empty-values
Mar 17, 2026
Merged

fix(server): reject empty string list evaluator values#121
lan17 merged 4 commits intomainfrom
codex/fix-list-empty-values

Conversation

@lan17
Copy link
Contributor

@lan17 lan17 commented Mar 12, 2026

Summary

  • reject empty-string list entries at list evaluator config validation time
  • defensively filter exact empty strings in the evaluator so legacy invalid configs do not compile into a match-all regex
  • add evaluator and server regression tests for both validation paths

Testing

  • make evaluators-test
  • make server-test
  • make lint
  • make typecheck

Fixes #120

@codecov
Copy link

codecov bot commented Mar 12, 2026

Codecov Report

❌ Patch coverage is 88.88889% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...uiltin/src/agent_control_evaluators/list/config.py 85.71% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@lan17 lan17 changed the title fix: reject empty string list evaluator values fix(server): reject empty string list evaluator values Mar 12, 2026
@lan17 lan17 enabled auto-merge (squash) March 14, 2026 06:31
@lan17 lan17 merged commit 2c55d27 into main Mar 17, 2026
6 checks passed
@lan17 lan17 deleted the codex/fix-list-empty-values branch March 17, 2026 19:46
galileo-automation pushed a commit that referenced this pull request Mar 18, 2026
## [2.0.0](ts-sdk-v1.1.0...ts-sdk-v2.0.0) (2026-03-18)

### ⚠ BREAKING CHANGES

* **server:** implement recursive control condition trees (#115)

### Features

* **docs:** simplify main README quick start v2 ([#100](#100)) ([7701c65](7701c65))
* **docs:** Update README.md to accurately mention Strands Agents SDK ([#105](#105)) ([84dfa57](84dfa57))
* **evaluators:** add Cisco AI Defense evaluator and examples ([#60](#60)) ([52e2416](52e2416))
* **sdk:** add Google ADK framework integration ([#83](#83)) ([f2b53ee](f2b53ee))
* **server:** implement recursive control condition trees ([#115](#115)) ([2ff4c12](2ff4c12))

### Bug Fixes

* **docs:** clarify README quickstart flow ([#119](#119)) ([317c626](317c626))
* **docs:** cleanup readme ([#66](#66)) ([eca0d6b](eca0d6b))
* **docs:** promote Google ADK plugin in README ([#99](#99)) ([f038aa4](f038aa4))
* **evaluators:** address Cisco AI Defense review issues ([#103](#103)) ([81da81b](81da81b))
* **examples:** shut down SDK in short-lived demos ([#85](#85)) ([df43264](df43264))
* **sdk:** fail closed on post-hook evaluation errors ([#114](#114)) ([67f8fc1](67f8fc1)), closes [#112](#112)
* **sdk:** skip evaluation when no controls apply ([#124](#124)) ([d2cd9f9](d2cd9f9))
* **server:** escape ILIKE pattern in evaluator-configs list endpoint ([#108](#108)) ([cb6e89f](cb6e89f))
* **server:** reject empty string list evaluator values ([#121](#121)) ([2c55d27](2c55d27))
* **server:** revert unwanted changes in server config ([#117](#117)) ([d92e168](d92e168))
* **ui:** create flow - name trimming issue ([#93](#93)) ([1a9759d](1a9759d))
@galileo-automation
Copy link
Collaborator

🎉 This PR is included in version 2.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ListEvaluator: values=[""] builds match-all regex, can cause complete agent denial-of-service. Can be handled from UI/Backend.

4 participants