{
  "version": "0.1.0",
  "date": "2026-10-18",
  "publicReleaseNotes": "Coffer 0.1.0 is donor records and giving a small US nonprofit owns, a free, open source replacement for Little Green Light or Bloomerang, run on your own computer or your own Cloudflare account with your own Stripe and SendGrid accounts. Donors, organizations and households with relationships, consent history and a timeline; an immutable gift ledger with checks, soft credits kept apart from giving totals, tribute records and pledges with dated installments and emailed reminders; campaign pages taking one-time and monthly card gifts through Stripe Checkout, with a donor portal to update the card or cancel; IRS-worded receipts emailed at once, reviewed thank-you letters and year-end statements by email or print batch; lapsed donors, calls, a major-gift pipeline and retention; a Little Green Light move-in that lists every row to fix at once, moves 5,000 donors and 40,000 gifts in parts and checks every year, fund and donor total to the cent; owner, admin and member roles with email sign-in and invitations; and backup and restore on your own computer (rer export and rer import) or for a hosted Coffer (rer run backup:hosted, which retries a part that fails for a moment and resumes with --resume JOB_ID, uploading only missing parts). Not in this release, though the homepage already describes them: US bank (ACH) checkout, which the giving page marks as coming soon; Apple Pay, which needs your own Stripe domain registration and has not been proven on a device; notes to the family for tribute gifts (the contact is recorded, nothing is sent); and a live QuickBooks Online connection. Back up first: Data & access, then Download backup, on your own computer, or rer run backup:hosted for a hosted Coffer. The checkout pins rer 0.2.52.",
  "extensionPointChanges": [],
  "migrations": [
    "migrations/core/0001_owner.sql",
    "migrations/core/0002_outbox.sql",
    "migrations/core/0003_portability.sql",
    "migrations/core/0004_first_run.sql",
    "migrations/core/0005_identity_providers.sql",
    "migrations/core/0006_provider_control.sql",
    "migrations/core/0007_dependencies.sql",
    "migrations/core/0008_owner_claim.sql",
    "migrations/core/0009_idp_owner.sql",
    "migrations/core/0010_provider_pins.sql",
    "migrations/core/0011_dependency_setup.sql",
    "migrations/core/0012_dependency_approval.sql",
    "migrations/core/0013_erasure.sql",
    "migrations/core/0014_owner_signin.sql",
    "migrations/core/0015_import_kit.sql",
    "migrations/core/0016_coffer.sql",
    "migrations/core/0017_coffer_giving.sql",
    "migrations/core/0018_coffer_receipts.sql",
    "migrations/core/0019_coffer_payments.sql",
    "migrations/core/0020_coffer_donor_depth.sql",
    "migrations/core/0021_coffer_pledges.sql",
    "migrations/core/0022_coffer_gift_depth.sql",
    "migrations/core/0023_coffer_donor_merge.sql",
    "migrations/core/0024_coffer_major_gifts.sql",
    "migrations/core/0025_coffer_call_tasks.sql",
    "migrations/core/0026_coffer_subscription_gifts.sql",
    "migrations/core/0027_coffer_move_in.sql",
    "migrations/core/0028_coffer_communications.sql",
    "migrations/core/0029_coffer_agent.sql",
    "migrations/core/0030_coffer_recovery.sql",
    "migrations/core/0031_coffer_stewardship.sql",
    "migrations/core/0032_coffer_ai_workspace.sql",
    "migrations/core/0033_coffer_giving_consent.sql",
    "migrations/core/0034_coffer_online_receipts.sql",
    "migrations/core/0035_coffer_email_connection.sql",
    "migrations/core/0036_coffer_move_in_parts.sql",
    "migrations/core/0037_coffer_move_in_review.sql",
    "migrations/core/0038_coffer_fiscal_year.sql",
    "migrations/core/0039_coffer_gift_splits.sql",
    "migrations/core/0040_coffer_stripe_subscriptions.sql",
    "migrations/core/0041_coffer_audit.sql",
    "migrations/core/0042_coffer_duplicates.sql",
    "migrations/core/0043_coffer_access_audit.sql"
  ],
  "breaking": false,
  "agentUpdateInstructions": "First release: there is no earlier Coffer release to upgrade from. New install: rer dev just-every/run-coffer (or npx -y @runeditrun/rer dev just-every/run-coffer), which installs the pinned rer 0.2.52 and applies migrations 0001 to 0043 to a fresh database; a hosted install is rer deploy --environment NAME with CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_API_TOKEN, OWNER_EMAIL, MAIL_PROVIDER=sendgrid, MAIL_FROM and MAIL_API_KEY exported (docs/hosting.md), then Connect Stripe from Giving. From an unreleased main checkout, back up first: on your own computer stop Coffer and run rer export --output exports/coffer-before-0.1.0.rer; for a hosted Coffer run rer run backup:hosted -- --environment NAME --session-file owner-session.txt --output exports/coffer.rer from the checkout that deployed it (docs/backup.md); rer export saves only the local copy. Then git pull --ff-only and rer install, and rer dev or rer deploy --environment NAME with the same exported settings. Restore a local archive with rer import --input FILE --yes into an empty installation; restore a hosted archive into a newly deployed empty environment with rer run backup:hosted -- --environment NAME --restore FILE --session-file NEW-OWNER-SESSION --yes, then re-enter that environment's mail and Stripe secrets with rer deploy --set-secret. Coffer on your own computer sends no email. Run rer verify before adopting."
}
