Advanced35 min

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
Browse free lessons

Already bought them? Sign in to unlock — no need to buy twice.