Skip to content

fix: CI push trigger, webhook_events indexes, batched team-split insert, distinct release method names (#156, #149, #150, #159) - #223

Merged
chonilius merged 1 commit into
MergeFi:mainfrom
stephanieoghenemega-eng:fix/ci-push-webhook-indexes-team-split-batch-release-names-156-149-150-159
Aug 26, 2026
Merged

fix: CI push trigger, webhook_events indexes, batched team-split insert, distinct release method names (#156, #149, #150, #159)#223
chonilius merged 1 commit into
MergeFi:mainfrom
stephanieoghenemega-eng:fix/ci-push-webhook-indexes-team-split-batch-release-names-156-149-150-159

Conversation

@stephanieoghenemega-eng

Copy link
Copy Markdown
Contributor

Resolves #156
Resolves #149
Resolves #150
Resolves #159

#156 — CI also runs on push to main

ci.yml's on: had only pull_request: [main] — a direct push to main (admin bypass, misconfigured/not-yet-enabled branch protection) ran through none of the pipeline, including the secret scan. Added a push: branches: [main] trigger alongside it.

#149 — index the webhook_events audit table

It's append-only and never pruned (unlike IdempotencyKey), yet only deliveryId was indexed. Added @Index on (eventType, status) and (status, receivedAt) plus migration 1784900000000 — covering per-type breakdowns and the "recent FAILED events" query.

#150 — batch the team-split insert

TeamsService.create (and updateSplits) issued one INSERT per member via Promise.all(map(splitRepo.save(...))) — N round-trips, N independently-committing statements (a mid-way failure left a partial split set). Replaced with a single splitRepo.save(members.map(create)), which batches and runs inside TypeORM's implicit transaction.

#159 — distinct on-chain method names for release vs partial release

release() called soroban.invoke('release', [ref, addr]) (2 args) and releasePartial() called soroban.invoke('release', [ref, addr, amount]) (3 args) — same method name, different arity, un-caught at the backend layer. releasePartial() now invokes 'release_partial', so a contract implementer isn't left guessing which arg shape 'release' is authoritative.

Incidental

escrow.service.spec.ts had duplicated entities/enums imports and two paymentRepo declarations from an earlier main merge (1b58a30) that fails tsc — collapsed to one set.

Branched on current main (c0ff5ff). Not built locally.

…, distinct release method names

MergeFi#156 - add a push: branches: [main] trigger to ci.yml so commits landing on
main by any path (admin bypass, misconfigured protection) still run the
secret scan / lint / build / tests.
MergeFi#149 - index the append-only webhook_events table: composite (eventType,
status) and (status, receivedAt) via @Index + migration 1784900000000.
MergeFi#150 - TeamsService.create / updateSplits now issue one batched
splitRepo.save([...]) (inside TypeORM's implicit transaction) instead of
N concurrent single-row saves.
MergeFi#159 - EscrowService.releasePartial() invokes 'release_partial', not the
same 'release' method name release() uses with a different arg count.

Also collapses the duplicated imports/decls in escrow.service.spec.ts from an
earlier main merge.
@drips-wave

drips-wave Bot commented Aug 26, 2026

Copy link
Copy Markdown

@stephanieoghenemega-eng Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

@stephanieoghenemega-eng is attempting to deploy a commit to the chonilius' projects Team on Vercel.

A member of the Team first needs to authorize it.

@chonilius
chonilius merged commit 97e53a7 into MergeFi:main Aug 26, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment