• v0.6.1 864aff5fd7

    v0.6.1 — --version flag
    All checks were successful
    build / build (push) Successful in 27s
    Stable

    Winnie released this 2026-10-01 16:31:52 +00:00 | 22 commits to master since this release

    v0.6.1

    • --version / -v print the release version ("bankwars v0.6.1") and exit — the release now reports itself (#137).
    • Re-ships the verified v0.6.0 build: the macOS asset is now download-verified byte-for-byte, and --replay is present as it always was in the code (the v0.6.0 asset's first upload was corrupted server-side; the corrected v0.6.0 asset and this v0.6.1 both verify).
    Downloads
  • v0.6.0 57f426c718

    v0.6.0 — bond-market failure calc, player display rework, review fixes
    All checks were successful
    build / build (push) Successful in 29s
    Stable

    Winnie released this 2026-10-01 16:00:49 +00:00 | 24 commits to master since this release

    v0.6.0 — the full changelog since v0.5.0 (31 commits)

    Failure calc overhaul (#88, the exploration arc)

    • Equity requirement REMOVED: a bank fails only on negative cash after bills, or a reserve the bond market cannot shore up. Solvency is a liquidity question — the bond market fully controls the supply and demand of money. Net position stays in reports as information, but it no longer executes anyone.
    • Shore-up math lives in exactly one place (Game.shoreUpNeed), shared by the take screen's SHORE UP line and the finance phase — they can never diverge.
    • Shore-up borrow target corrected: bills + reserve (the old math subtracted your own cash twice and bankrupted banks without ever consulting the market, #119).
    • Every failed bank must be acquired — the auction always transfers, at second price; the zero-bid case is a forced transfer at 0.

    Player display rework (#113)

    • The HUD shows cash / deposits / net position with (was …) context from the start of last turn, plus the deposit rate, the reserve requirement in numbers, and the loan and bond books (count, effective rate, effective term — all with was-values).
    • Bonds get the loan-style take summary: what you took this turn, the BOND BOOK before and after.
    • The double turn header and deposit table are gone: every line streams live exactly once; defaults print immediately after the die.
    • Help lines trimmed to commands.

    Acquisition basis (#116)

    • Bond fills track counterparties; the auction prompt shows your basis against the failed bank — how much of its debt is owed to you, how much you owe it, and your share of its bond debt.
    • Acquired debt is HELD as-is, never cancelled or netted — a debt you owe yourself comes out neutral over time.

    The v0.6.0 review — nine filed issues, all fixed

    • #119 shore-up math (above).
    • #120 human inputs reject NaN/Inf; the deposit rate clamps to [0, cap].
    • #121 the Lisp layer survives hostile brains: panic recovery, a recursion limit, arity guards on the action builtins.
    • #122 every event streams through the log: defaults, market summaries, offers, charge-offs, GAME OVER, and the ACCT/CF DIVERGENCE watchdogs are visible in every mode.
    • #123 the death-turn write-off is recognized before any recovery — the full unprovided principal, per GAAP.
    • #124 revoking bond offers books the returned cash — the cash-flow statement reconciles.
    • #125 --replay records the true winner (highest equity), one auction slot per bankruptcy (including the no-bidder case), revocations, and fill terms left.
    • #126 negative rates expressible everywhere: the bid-loans/bid-loan builtins and the human per-loan sheet clamp to ±cap like the engine.
    • #127 minors: config validation rejects panic-inducing settings, one RNG stream per game (the die no longer correlates with the loan shelf; seed 0 captures a real seed for replay), the revocation phase gets its simultaneity snapshot, the HUD's deposit-rate (was) is honest, invalid seat input warns, and the wizard/bench cosmetics are cleaned.

    Gate: full test suite clean · go vet clean · spectate smoke clean (0 divergences, 0 AI errors, 0 non-finite) · darwin ARM64 build verified.

    Downloads
  • v0.5.0 5c31dbd74d

    v0.5.0 — size-ordered bond fills, negative rates, --replay
    All checks were successful
    build / build (push) Successful in 24s
    Stable

    Winnie released this 2026-09-30 22:27:58 +00:00 | 55 commits to master since this release

    v0.5.0 — the full changelog since v0.4.0 (57 commits)

    New mechanics

    • Simultaneous turn phases: every player acts against phase-start snapshots — no seat can read a rival's current-turn action.
    • Bond takes fill in size order: takers declare against the phase-start market, fills execute largest capital need first; the UI marks rates IDEAL, not guaranteed, and reports when your realized rate is worse than the preview.
    • Negative interest rates: loans clamp to ±cap (undercut the zero-bidders), bonds may issue at a premium up to (2−floor)×face (negative yield to the buyer).
    • Configurable reserve requirement: banks must hold a fraction of deposits in cash, shored by the bond market or insolvency — with a SHORE UP menu item on the take screen.
    • Acquisition re-measurement: the acquired balance sheet is re-measured; dead loans stay with the corpse.

    Accounting (GAAP audit, #78)

    • Bonds at amortized cost with discount accrual over life; loan write-offs recognized in full when incurred with allowance reversal on recoveries; bank-style cash-flow classification; reworked statement presentation.

    Correctness fixes

    • Loan shelf cleared at game boundaries: bench runs are byte-identical again (#100).
    • Stable amortization for tiny loan rates — +Inf books impossible (#95).
    • Non-finite AI values rejected loudly; the offending bank fails to auction (#91).
    • t and #t are distinct symbols — parameters named t receive their arguments (#98).
    • Hook run-time errors surface in headless benches instead of being swallowed (#87).

    AI system

    • Lisp API redesigned: namespaces, read/write separation, file-vs-game forms, documented contract (#79).
    • Super, the economic-optimizer brain from the canonical line, lands on master.

    Player UX

    • Whole-unit bond trades, takeable market view, honest fill preview (#69).
    • Bond market liquidity row: total cash offered + effective rate (#71).
    • Volume-at-price depth columns on every market row: VOL@PRICE, TOTAL, CUMULATIVE (#105).
    • Bid-all control on the loan sheet: one rate for every loan, editable afterward (#106).
    • Bank summary before every major decision (#64); post-lending summary + portfolio comparison (#67); churn captured on the deposit line (#63).
    • --replay : structured JSON of config, seed, players, every phase action, and the outcome.

    Brains

    • Empire funding-franchise iterations: wins deposit-drought and rate-war (#52).

    Gate: 13-preset 100-game bench clean (0 divergences, 0 non-finite, 0 ai errors) · go vet · go test · spectate smoke · darwin ARM64.

    Downloads
  • v0.4.0 430f2ecba3

    v0.4.0 — Main-AI overhaul
    All checks were successful
    build / build (push) Successful in 24s
    Stable

    Winnie released this 2026-09-29 19:41:53 +00:00 | 112 commits to master since this release

    Bank Wars v0.4.0 — the main-AI overhaul release

    Four structurally distinct brains, each with its own risk/world model, each winning its assigned scenarios on the final deterministic merged bench (100 games x 13 presets, master 430f2ec):

    • adapt (market-regime trader): 575 wins (47.9%), avg equity 45,178. Wins base 51, patient-market 51, micro-economy 60 (duel is a 3-seat preset with no adapt seat by design).
    • mill (per-loan actuary): 392 wins (30.2%). Wins default-storm, hot-caps, duel 54.
    • empire (funding franchise): 194 wins (14.9%). Wins deposit-drought 41, cash-glut 37.
    • vault (treasury vulture): 125 wins (9.6%). Wins tight-cash 49, holds bond-economy 3 vs mill 38.

    Also in this release: punishing 13-preset bench, specialist gauntlet, --bench-vs version harness (#40), structured iteration log (#46), researcher-grade PDF report generator (#47), acquisition accounting fix (#45), deterministic bench roster (#60), and the full pre-release gate (vet, tests, darwin/arm64 build, spectate smoke with 0 AI errors and 0 accounting divergences).

    macOS ARM64 tarball attached below; extracts into its own bankwars/ directory. The full research PDF was emailed separately.

    Downloads
  • v0.3.0 27443e51e5

    v0.3.0
    All checks were successful
    build / build (push) Successful in 24s
    Stable

    Winnie released this 2026-09-29 05:06:46 +00:00 | 154 commits to master since this release

    Bank Wars v0.3.0, macOS arm64.

    The UX overhaul: live loan-bid sheet with commitment, effective rate and term, undo/remove, overcommit warnings. Bond offer and take screens with implied per-turn rates, fill preview and confirm. Roster table, selectable opponent brains, award verdicts. Fixed bond term. Extracts into a bankwars/ subdirectory.

    Downloads
  • v0.2.0 c7c5fdfc34

    v0.2.0
    All checks were successful
    build / build (push) Successful in 24s
    Stable

    Winnie released this 2026-09-29 04:06:23 +00:00 | 156 commits to master since this release

    Bank Wars v0.2.0, macOS arm64.

    Fixed bond term (one game-wide term, issuers cannot choose), namespaced Lisp AI API, four config-relative brains (empire, mill, vault, adapt), GAAP reports, 13-preset benchmark. Package extracts into a bankwars/ subdirectory.

    Downloads