Skip to content

Release: develop -> main#4244

Merged
TaprootFreak merged 1 commit into
mainfrom
develop
Jul 16, 2026
Merged

Release: develop -> main#4244
TaprootFreak merged 1 commit into
mainfrom
develop

Conversation

@github-actions

Copy link
Copy Markdown

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

…4221)

* feat(bank): activate Bank Frick payout accounts (prd data migration)

Prd-guarded data migration (ENVIRONMENT === 'prd', no-op elsewhere) that follows docs/bank-frick-operations.md section 3: inserts the two new Bank Frick rows (EUR/CHF) active, renames the dormant legacy rows, seeds the per-bank import watermark, and removes the two default-off Frick process sentinels. Idempotent (WHERE NOT EXISTS per IBAN, ON CONFLICT DO NOTHING). sendPriority=500 makes Frick the primary EUR/CHF sender. Validated against Postgres 17 with a prod-shaped fixture (up + down); CI does not exercise the prd-guarded SQL.

* docs(bank): English comments + document down() rollback scope in Frick activation migration

Translate the sendPriority comment to English (CONTRIBUTING English-only, public repo) and document that down() is a hard IBAN-scoped removal that only reverts cleanly before the new rows are referenced by a payout. Comment-only; no SQL change.

* fix(bank): resolve id sequence via pg_get_serial_sequence + scope down() legacy rename

Replace the hard-coded 'bank_id_seq' with pg_get_serial_sequence('bank','id') (matching migration/seed/seed.js) so the prd-guarded migration cannot crash on boot if the production id sequence carries a different name after the MSSQL->PG cutover. Scope the down() legacy-rename symmetrically to up()'s selection (dormant rows, excluding the new IBANs). Re-validated against Postgres 17 (up + down). Comment/SQL-only.

* docs(bank): correct down() legacy-rename comment to not overclaim strict symmetry

The scoped down() rename is not a strict inverse of up() (up() only renames rows named exactly 'Bank Frick'); document the pre-existing '(legacy)'-row edge honestly instead of asserting it cannot occur. Comment-only.

* fix(bank): converge pre-existing rows to active via ON CONFLICT; keep runbook named sequence

Two fixes for the activation migration: (1) INSERT ... ON CONFLICT (iban,bic) DO UPDATE so a row pre-created inactive by the manual runbook §3.1 procedure converges to the intended active state instead of silently no-op'ing; (2) keep the runbook §3.1 named-sequence setval ('bank_id_seq' + GREATEST) rather than pg_get_serial_sequence, which returns NULL (and crashes setval) if the post-cutover prod sequence is not OWNED by the column. Re-validated against Postgres 17: fresh insert, pre-existing-inactive convergence, and idempotent re-run all pass.

* docs(bank): fix stale JSDoc header to match the named-sequence implementation

The step-3 header still claimed pg_get_serial_sequence after the code was reverted to the named 'bank_id_seq' sequence; align the header with the code and the inline rationale. Comment-only.

* docs(bank): state down() rollout assumption + lossy pre-created-path revert explicitly

up() is defensively idempotent for the manual §3.1 pre-created path (ON CONFLICT DO UPDATE/DO NOTHING); document at the top of down() that the code-owned rollout makes down() a clean inverse, and that on the pre-created path down() is an intentional lossy hard-removal (rollback of a used rail is an Ops procedure). Trim the now-redundant bank-delete comment. Comment-only.

* fix(bank): activate Bank Frick as fallback (sendPriority 2000), not primary

The activation set Frick primary (sendPriority=500), which would cut all EUR+CHF payouts over from the incumbents (Olkypay/Yapeal). The intended state is the runbook §3.1 default fallback (sendPriority=2000): Frick is live and send-capable but sits above the incumbents' 1000, loses ties and carries no traffic - the incumbents stay primary. Making Frick primary is a separate, deliberate Ops cutover (runbook §3.3), not part of this activation.
@TaprootFreak
TaprootFreak merged commit 8922f2e into main Jul 16, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant