Skip to content

feat(evaluators): add starts_with/ends_with mode to list evaluator#154

Merged
lan17 merged 4 commits into
mainfrom
lev/list_starts_with
Mar 30, 2026
Merged

feat(evaluators): add starts_with/ends_with mode to list evaluator#154
lan17 merged 4 commits into
mainfrom
lev/list_starts_with

Conversation

@lan17

@lan17 lan17 commented Mar 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add starts_with and ends_with match modes to the built-in list evaluator so policies can be expressed as plain prefix and suffix lists instead of synthesized regexes
  • expose the new modes in the UI evaluator form and update the shared UI types
  • expand evaluator coverage for prefix and suffix matching, allowlist-style no_match usage, path-like inputs, ordinary strings, escaping, and list-input semantics
  • document the new list evaluator modes in the evaluator overview README

Scope

  • User-facing/API changes: list evaluator configs now accept match_mode: "starts_with" and match_mode: "ends_with"; the UI exposes both as selectable options
  • Internal changes: compile the new match modes into anchored prefix/suffix regexes in the evaluator implementation and add targeted evaluator tests
  • Out of scope: changing prefix or suffix semantics to be path-boundary-aware; this PR preserves generic string-prefix and string-suffix behavior

Risk and Rollout

  • Risk level: low
  • Rollback plan: revert commits 5d29b8a, 4ddef38, 567f25f, and ef694b2, which removes the new match modes, coverage, and docs updates

Testing

  • Added or updated automated tests
  • Ran make check (or explained why not)
  • Manually verified behavior

Checklist

  • Linked issue/spec (if applicable)
  • Updated docs/examples for user-facing changes
  • Included any required follow-up tasks

@codecov

codecov Bot commented Mar 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@lan17 lan17 enabled auto-merge (squash) March 30, 2026 18:15
Comment thread evaluators/builtin/src/agent_control_evaluators/list/config.py Outdated
@lan17 lan17 changed the title feat(evaluators): add starts_with mode to list evaluator feat(evaluators): add starts_with/ends_with mode to list evaluator Mar 30, 2026
@lan17 lan17 disabled auto-merge March 30, 2026 23:35
@lan17 lan17 merged commit bf1f7d7 into main Mar 30, 2026
8 checks passed
@lan17 lan17 deleted the lev/list_starts_with branch March 30, 2026 23:35
galileo-automation pushed a commit that referenced this pull request Apr 7, 2026
## [2.2.0](ts-sdk-v2.1.0...ts-sdk-v2.2.0) (2026-04-07)

### Features

* **evaluators:** add starts_with/ends_with mode to list evaluator ([#154](#154)) ([bf1f7d7](bf1f7d7))
* **sdk:** [Enterprise Integration]: Add provider agnostic traceing ([#145](#145)) ([f1ca27c](f1ca27c))
* **sdk:** Add telemetry package to support sinks ([#164](#164)) ([2186ba1](2186ba1))
* **sdk:** default merge events in SDK ([#155](#155)) ([5984a60](5984a60))
* **server,sdk, ui:** Control Templates ([#158](#158)) ([78bb538](78bb538))
* **server:** Override PG password in dockerfile ([#148](#148)) ([5d70c7d](5d70c7d))
* **server:** Remove container name for dev postgres ([92b2d13](92b2d13))
* **server:** Start local dev pg under docker compose project endign with dev ([88bee63](88bee63))
* **ui, server:** Intuitive JSON editing for Controls ([#151](#151)) ([8c23cef](8c23cef))
* **ui:** add full control JSON editing and create-from-JSON ([#147](#147)) ([e685ed0](e685ed0))

### Bug Fixes

* **docs:** add explicit shutdown to quickstart example ([#149](#149)) ([b76014f](b76014f))
* **sdk:** use sync shutdown flush fallback ([#150](#150)) ([90265ba](90265ba))
* **server:**  remove unused evaluator config store ([#152](#152)) ([dea2873](dea2873))
* **server:** Omit null fields in control JSON editor ([#157](#157)) ([0aa2f3c](0aa2f3c))
* **server:** Update docker-compose.dev.yml to use different container name ([14d4c87](14d4c87))
* **ui:** improve edit control ux, no layout shift, consistent spacing ([#122](#122)) ([76d67b9](76d67b9))
@galileo-automation

Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 2.2.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.

3 participants