Skip to content

feat(promote): freeze failing suite runs for local CI replay - #3

Merged
vk-ai merged 1 commit into
mainfrom
feat/promote-regression
Oct 7, 2026
Merged

vk-ai merged 1 commit into
mainfrom
feat/promote-regression

Conversation

@vk-ai

@vk-ai vk-ai commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add spanlite.promote to freeze failing Suite runs (cases + recorded Outputs + baseline to_json()) into stable regression packs
  • Support deterministic replay() through existing judges and assert_no_worse() CI gates
  • Document the workflow in README; add examples/promote_replay.py, tests, and python -m spanlite show|check

Motivation

Community wishlist for a local-first production→eval loop (failing run → frozen case → replay) without LangSmith/Langfuse SaaS.

Verification

  • pytest -q — 14 passed
  • python -m compileall -q src tests
  • python examples/promote_replay.py

Risk

Opt-in API; stdlib only; does not change existing Tracer/Suite behaviour. Callable case.expect values are rejected at promote time (must be JSON-serializable).

Add RegressionPack promote/load/replay helpers and a small CLI so failed
eval rows become stable JSON fixtures. No new required dependencies.
@vk-ai
vk-ai merged commit 0044893 into main Oct 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant