Project: Injection Canary
A CI job that replays adversarial states against a pinned version and fails when an answer moves.
The adversarial suite from the previous lesson is a test you ran once and felt good about. This project turns it into a canary: a job that replays those states on a schedule against a pinned version and fails the build the moment an answer moves outside the range you accepted.
The reason it has to run on a schedule and not just on commit is the whole point. Your code can sit untouched for a month while the thing it depends on changes underneath it. A per-commit test catches your regressions. A scheduled one catches everyone else’s.
Pin the version, always
# Wrong. This is an alias, and it moves. client = TypeSafeClient(model="jev-latest") # Right. Every assertion below is a claim about this exact version. client = TypeSafeClient(model="jev-1.13.0")
Every threshold in your system was tuned against one version’s behaviour. Riding the alias means a model update silently re-tunes them for you, in a direction nobody chose, on a day nobody picked. Pin, and make the upgrade an explicit change with the canary as its acceptance test.
Full lesson
Keep reading Project: Injection Canary
The rest of this lesson — including the interactive exercises and the worked project — is part of Jagged Edges.
- ✓Every lesson in all three courses
- ✓Interactive builders, graders, and playgrounds
- ✓1,000 live Jev credits, for the courses and the playground
- ✓Project source you can run yourself
- ✓Free updates as Jev ships new versions
Already bought them? Sign in to unlock — no need to buy twice.