Skip to content

v3.0.0

Choose a tag to compare

@SAY-5 SAY-5 released this 10 Sep 08:40
· 67 commits to main since this release

Every reviewer decision and every golden check result now counts as an agreement signal for the expert who produced the grade. Panelist keeps a rolling window of those signals, stores the agreement rate and sample count on the expert, and exposes both at GET /experts/{id}/calibration together with the full tier change history. Once enough signals exist, a rate at or above the promote edge moves the expert up one tier and a rate at or below the demote edge moves them down one; rates in the band between the two edges leave the tier untouched, so a single decision either way cannot make an expert flap across a boundary. Routing, direct claims and payout rate lookups all read the live tier, so a demoted expert stops being offered tasks above their new tier on the very next claim and a direct claim on one returns 403. Every move writes a tier_changes row and an audit event. Four new API level tests cover promotion after agreeing grades, demotion after a disagreement streak, the no flapping band and tier aware routing; the suite is 48 tests against PostgreSQL 16.