Diff a contract change
Use seampact diff to see what a contract edit breaks before you ship it. A change is additive if existing clients still work, and breaking if one can fail. Run the commands in the app folder. Without Node, run it with the compiler binary: see commands per stack. The lines below use npx for Node.
Save the current contract as a baseline, then edit the contract.
npx seampact compile --out baselineThe baseline folder is regenerated by compile: add it to .gitignore. In CI, take the baseline from your main branch: see Sharing a contract.
Add author to CreateNote: required: [title, author] and author: { type: string } under properties. Then compare.
npx seampact diff --against baselineYou see breaking clients createNote input ...: property.added required (author). Existing clients do not send author.
By default diff reports. With compat: { policy: additive-only } under api: it fails (exit 1) on a breaking change. By default only breaking changes for clients fail; change this with diff.gate. Breaking changes on experimental routes do not fail (diff.exempt).
Undo the demo edit (remove author) so the next page’s check starts clean.