open-standards/jcp/jcp-rs/crates/jcp-runtime
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 910b359d4d
All checks were successful
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 6m16s
Payments: a capture reversal through a delegation chain, and across a restart
A reversal returned money on a lone grant only, and a hold taken up again
after a restart began with nothing drawn, so a capture made before the
restart could no longer be reversed after it.

- Runtime: reverse_capture_chained returns the money to the hold on every
  link that carries a money ceiling, checking every link before changing
  any, so it is refused whole or applied whole. reverse_capture is now the
  one-link case of the same rule. adopt_hold takes what captures drew and
  reversals have not returned.
- Receipts: append_reversal_chained; an open hold reports drawn_minor, the
  money its captures drew net of reversals.
- Agreed terms: a reopened quote-bound hold carries drawn_minor, and
  ConditionalHolds::reverse takes a reversed part out of what counts as
  paid toward the payee's minimum.
- SPEC 8.1: a reversal applies to a chain as to a lone grant; a hold taken
  up again keeps what was drawn. C32 checks the chain case.
- lifecycle.json gains a delegate's hold captured, reversed through the
  chain and settled; verify_lifecycle.py has a fault for a reader that
  returns a chained reversal on the leaf only, and refuses it.

Seeded faults, each caught: a chained reversal on the leaf only; a
reopened hold forgetting what was drawn; a quote-bound reversal still
counted as paid; a restore recounting drawn money; a chained reversal
past what one link drew.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-11 14:08:09 -05:00
..
src Payments: a capture reversal through a delegation chain, and across a restart 2026-11-11 14:08:09 -05:00
Cargo.toml Cargo: no minimum-supported-version floor, because the policy is latest stable 2026-11-03 17:42:20 -05:00