# Examples: an API change, a package upgrade and an incident

## An agent removes an API field, and a person accepts it

```text
$ jadpo check
error  api/main.jadpo_record is out of date: priority removed from TodoView, TodoSummary
       next  jadpo api update                                     agent
error  removing an output field can break clients: main.TodoView.priority,
       main.TodoSummary.priority
       next  a person accepts it: jadpo acceptance new <purpose>  human
$ jadpo api update
$ jadpo acceptance new remove_todo_priority
wrote acceptances/20261020T1400_remove_todo_priority.jadpo (2 changes, reason needed)
```

The agent commits and opens the pull request, saying a reason is needed.
CI runs `jadpo check`, which fails on the missing reason, and publishes
the review. The code owner reads it, writes the `///` line, and approves.
CI passes and the change merges. On the default branch the acceptance is
now history.

## A provider package upgrade

```text
$ jadpo package update couriers
couriers  AcmeCouriers.v1 → v2   jadpo.lock updated
  bookings.create   new failure  address_unverifiable           needs a person
  bookings.get      field removed  Booking.driver_phone         needs a person
  host              api.acme.example → api.eu.acme.example      needs a person
```

The removed field is also a compile error in `delivery_view`, which the
agent fixes first. The agent then runs
`jadpo acceptance new upgrade_couriers_v2` and hands over. A person
writes one reason covering all three changes, and the owner approves.

## A production incident traced to source

A Worker logs a fault carrying its stamp (`build b_9a1f…`,
`commit 8d113e6`), its `.jadpo` frames and a path number. Someone pastes
it into `jadpo incident`:

```text
$ jadpo incident
int_overflow in action price_line
  build  b_9a1f03c6d2e4  rebuilt from 8d113e6, matches
  then   domains/ordering/actions/price_line.jadpo:4
  now    domains/ordering/actions/line_price.jadpo:6   renamed, changed since (2 commits)
  path   POST /orders → place_order → price_line, branch "discounted"
  next   jadpo test new --from-event
```

"Now" comes from the registry and the current manifest. If the local
compiler is a different version, the build id can't match. The frames and
names are still exact, because they are in the event, and the output says
that the path number can't be decoded.

`jadpo approval`, acceptances and `jadpo incident` aren't built yet
([What is built](records-and-manifest-built.md)).
