Acquisition basis display + live auction lines; debt held, never cancelled (Closes #116) #117

Merged
robertismo merged 1 commit from 116-acq-basis into master 2026-10-01 15:10:24 +00:00
Owner

What changed

Basis display in the auction prompt. Bond fills now track their counterparty (BondAsset.Holder, BondDebt.Creditor), purely so the human bidder sees their basis against the failed bank before bidding: how much of the corpse's debt is owed to them, how much they owe the corpse, and their share of the corpse's bond debt.

Debt is held, never cancelled — per your correction. The acquirer takes the position as-is; a debt it owes itself stays on the books and comes out neutral in the end (the maturity payout and the asset receipt are equal and opposite, and the accruals mirror turn by turn). The tracking fields exist only for the display.

Fixes a #113 regression found while testing this: the insolvency announcement, the auction bids, the acquisition line, and the reserve-failure line were g.Log-only appends, so with the turn-end flush gone the interactive player never saw them. They now stream live.

Verification

  • build, full suite, vet clean
  • new regression test: A issues bonds to B, B fails, A acquires — A's books hold both legs, and running the pair to maturity moves A's cash by exactly op expense (the pair nets to zero)
  • new unit test for the basis numbers (face, share, carrying)
  • scripted interactive smoke: insolvency + bid lines now appear in the live stream
## What changed **Basis display in the auction prompt.** Bond fills now track their counterparty (`BondAsset.Holder`, `BondDebt.Creditor`), purely so the human bidder sees their basis against the failed bank before bidding: how much of the corpse's debt is owed to them, how much they owe the corpse, and their share of the corpse's bond debt. **Debt is held, never cancelled** — per your correction. The acquirer takes the position as-is; a debt it owes itself stays on the books and comes out neutral in the end (the maturity payout and the asset receipt are equal and opposite, and the accruals mirror turn by turn). The tracking fields exist only for the display. **Fixes a #113 regression found while testing this:** the insolvency announcement, the auction bids, the acquisition line, and the reserve-failure line were `g.Log`-only appends, so with the turn-end flush gone the interactive player never saw them. They now stream live. ## Verification - build, full suite, vet clean - new regression test: A issues bonds to B, B fails, A acquires — A's books hold both legs, and running the pair to maturity moves A's cash by exactly op expense (the pair nets to zero) - new unit test for the basis numbers (face, share, carrying) - scripted interactive smoke: insolvency + bid lines now appear in the live stream
acquisition basis display + live auction lines; debt held, never cancelled (issue #116)
All checks were successful
build / build (push) Successful in 27s
75fe8a7310
The bond fills now track who took what: BondAsset.Holder and
BondDebt.Creditor record the counterparty of every fill, purely so the
auction prompt can show a bidder its basis against the failed bank -
how much of the corpse's debt is owed to them, how much they owe the
corpse, and the share of the corpse's bond debt that is theirs. The
position itself is HELD as-is on acquisition: a debt the acquirer owes
itself stays on the books and nets out neutral in the end (equal and
opposite maturity flows and mirror accruals). No netting, no
cancellation.

Also fixes a #113 regression the smoke uncovered: the insolvency
announcement, the auction bids, the acquisition line, and the reserve
failure line were g.Log-only appends, so with the turn-end flush gone
the interactive player never saw them. They now stream live like
everything else.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Winnie/bankwars!117
No description provided.