Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
287 commits
Select commit Hold shift + click to select a range
d775971
refactor(events): consolidate wallet event list query logic (#1271)
Ajibose Aug 30, 2026
e2b2cca
chore(frontend): consolidate duplicate vitest config files (#1281)
Ajibose Aug 30, 2026
bf9ea25
fix(clipboard): show toast feedback on copy failures (#1225)
Ajibose Aug 30, 2026
797283f
fix(frontend): replace window.confirm with styled ConfirmModal for te…
pixels26 Aug 30, 2026
b07411a
docs: scope note for #1283
iyanukid2008-pixel Aug 30, 2026
251b44c
docs: scope note for #1265
iyanukid2008-pixel Aug 30, 2026
fed80ca
docs: scope note for #1233
iyanukid2008-pixel Aug 30, 2026
c1f5f70
docs: scope note for #1213
iyanukid2008-pixel Aug 30, 2026
5c0711d
docs: scope note for #1275
rajiabdulrahmon2020-ui Aug 30, 2026
db62959
docs: scope note for #1235
orochimaru144 Aug 30, 2026
55d9804
Add integration test for resetIndexer/replayFromLedger racing concurr…
Fury03 Aug 30, 2026
8003365
Extract shared createRateLimiter factory
Peolite001 Jul 29, 2026
2484f8c
chore: tidy up app.ts and soroban-event-worker.ts
Peolite001 Aug 30, 2026
9b2d9f4
Merge branch 'main' into fix/issue-1295
composure-lad Aug 30, 2026
2690112
fix(withdraw): gate balance increment on event INSERT rowcount to pre…
Martinsbab Aug 30, 2026
376757a
feat(frontend): WCAG 2.1 AA accessibility audit & remediation (#1198)
dimka90 Aug 30, 2026
0554f70
feat(frontend): Playwright E2E suite for wallet, create, and stream l…
dimka90 Aug 30, 2026
b0fb531
feat(api): complete OpenAPI 3.1 spec, SDK generator, and Soroban depl…
dimka90 Aug 30, 2026
fbcb15b
Merge branch 'main' into fix/wallet-connect-freighter-error-tests
Seunfunmi-319509 Aug 31, 2026
6db14d7
Merge pull request #1409 from dimka90/fix/combined-1198-1199-1200-1201
blurbeast Aug 31, 2026
ba81857
Merge branch 'main' into feature/1274-keeper-key-blast-radius
meem08 Aug 31, 2026
11d11e3
Merge branch 'main' into fix/stream-event-composite-index
Seunfunmi-319509 Aug 31, 2026
1190bb2
Merge branch 'main' into feature/1241-dashboard-code-split
meem08 Aug 31, 2026
b0dcac2
Merge branch 'main' into feat/admin-indexer-dry-run
Seunfunmi-319509 Aug 31, 2026
61684f2
Merge branch 'main' into feature/1255-rollbackup-fix
meem08 Aug 31, 2026
625155e
fix(backend): restore previewReset/previewReplay lost in main merge
Seunfunmi-319509 Aug 31, 2026
14ed8d9
test(backend): cover dry-run preview for admin indexer reset/replay
Seunfunmi-319509 Aug 31, 2026
e22230f
chore(api): regenerate OpenAPI spec & API types for dryRun parameters
Seunfunmi-319509 Aug 31, 2026
84b1001
fix: consolidate theme state on next-themes useTheme()
Nife-tanny Aug 31, 2026
ba6e300
Fix duplicate test and add arithmetic overflow error
akinerin Aug 31, 2026
dd4b9db
fix: sync dashboard activeTab with URL search params
sojetunde8 Aug 31, 2026
89fffae
Merge branch 'main' into Contract's_resume_stream
akinerin Aug 31, 2026
400ba73
Fix unclosed delimiter in StreamError enum
akinerin Aug 31, 2026
7f25c31
Fix unclosed delimiter in StreamError enum
akinerin Aug 31, 2026
a2cf4b1
Merge branch 'main' into issue-1280
Hikmaholadele Aug 31, 2026
d40bb1a
refactor: consolidate stream validation logic into a shared utility w…
emarkees Aug 31, 2026
dba43e0
test(frontend): add settings page ↔ useSettings desync regression tests
BigMick03 Aug 31, 2026
1c8dd7f
Fix test expectation for cancelled stream paused state and add traili…
akinerin Aug 31, 2026
d8a7880
fix(frontend): cancel exponential-backoff poll on unmount/wallet chan…
GOE001 Aug 31, 2026
f7cb8e4
fix(backend): serialize resetIndexer through SorobanEventWorker mutex…
GOE001 Aug 31, 2026
8042582
fix(frontend): unify stream creation validation and form logic across…
OLAMIGHTY010 Aug 31, 2026
acd5426
[Audit] No tests exist for TransactionTracker's polling and diffing l…
Lacastar2000 Aug 31, 2026
c2abdee
fix(ci): resolve all 4 failing CI checks for PR #1280
Hikmaholadele Aug 31, 2026
24bfe75
fix: stop poison-pill batches from freezing indexer cursor
ponmileleke54-dev Aug 31, 2026
a422ab1
fix: remove duplicate PR test gate
ponmileleke54-dev Aug 31, 2026
2d194d3
[Audit] Attacker-controlled arbitrarily long numeric string reaches B…
BigMick03 Aug 31, 2026
1766605
fix: resolve build errors in tailwind config and unused variable
emarkees Aug 31, 2026
ee74ea0
fix(ci): resolve all 4 failing CI checks for PR #1280
Hikmaholadele Aug 31, 2026
10a1dbc
fix: cache Soroban RPC health checks
ponmileleke54-dev Aug 31, 2026
ba9af5c
fix: update mock in top-up test to use executeRawUnsafe and add missi…
composure-lad Aug 31, 2026
79184ba
Merge pull request #1358 from composure-lad/fix/issue-1295
K1NGD4VID Aug 31, 2026
3a0e0f9
Fix issue 1228: Add keyboard dismissal, focus trap, and click-outside…
enny791 Aug 30, 2026
d3acd0f
Merge branch 'main' into fix/issue-1086-unsaved-changes-settings
sojetunde8 Sep 1, 2026
0553e98
refactor(lib): remove dead mocked session code paths in soroban module
0dillon Sep 1, 2026
d97087f
Merge pull request #1141 from Peolite001/fix-rate-limiter-1099
K1NGD4VID Sep 1, 2026
f4ea82e
Merge pull request #1404 from orochimaru144/fix/issue-1235
K1NGD4VID Sep 1, 2026
31b526a
Merge pull request #1303 from Hikmaholadele/issue-1280
K1NGD4VID Sep 1, 2026
0c9db17
Merge pull request #1376 from lockoabosede8-byte/fix/1245-sql-aggrega…
K1NGD4VID Sep 1, 2026
4000a1c
Merge pull request #1374 from lockoabosede8-byte/fix/1267-unify-live-…
K1NGD4VID Sep 1, 2026
1e7f803
Merge pull request #1313 from akinerin/Contract's_resume_stream
K1NGD4VID Sep 1, 2026
edf6085
Merge pull request #1421 from emarkees/fix/unify-stream-creation-vali…
K1NGD4VID Sep 1, 2026
45c5bfe
Merge pull request #1399 from iyanukid2008-pixel/fix/issue-1283
K1NGD4VID Sep 1, 2026
384a951
fix: resolve lint errors and broken tests in settings page unsaved-ch…
sojetunde8 Sep 1, 2026
08f8b6e
Merge branch 'main' into fix/issue-1086-unsaved-changes-settings
sojetunde8 Sep 1, 2026
c1a7635
Merge branch 'main' into feature/1255-rollbackup-fix
meem08 Sep 1, 2026
31c4ca4
Merge pull request #1316 from Seunfunmi-319509/feat/admin-indexer-dry…
K1NGD4VID Sep 1, 2026
17ea7e9
Merge pull request #1315 from Seunfunmi-319509/fix/stream-event-compo…
K1NGD4VID Sep 1, 2026
c334393
Merge pull request #1314 from Seunfunmi-319509/fix/wallet-connect-fre…
K1NGD4VID Sep 1, 2026
30f47c2
Merge branch 'main' into feature/1274-keeper-key-blast-radius
meem08 Sep 1, 2026
d9fe20a
fix: remove duplicate lightningcss-linux-x64-gnu from package.json
Sep 1, 2026
0c8b0e8
fix: correct rollup native binding version to 4.63.1 to resolve CI in…
Sep 1, 2026
a847fed
fix: resolve React Compiler lint error and pre-existing test failure …
sojetunde8 Sep 1, 2026
e590fa9
fix: remove unused React import in useUnsavedChangesGuard test
sojetunde8 Sep 1, 2026
b53b4b0
fix: resolve dashboard lint errors by typing props and wrapping fragm…
Sep 1, 2026
057f101
Fix Rollup native-binding workaround at root level (#1255)
meem08 Aug 30, 2026
48ddc45
Add concurrent cancel test (#1291)
meem08 Aug 30, 2026
a095622
Merge pull request #1416 from sojetunde8/fix/issue-1234
K1NGD4VID Sep 1, 2026
2f8a1b2
Merge pull request #1154 from sojetunde8/fix/issue-1086-unsaved-chang…
K1NGD4VID Sep 1, 2026
3bd13c4
Merge pull request #1400 from iyanukid2008-pixel/fix/issue-1265
K1NGD4VID Sep 1, 2026
a440ec7
Merge pull request #1401 from iyanukid2008-pixel/fix/issue-1233
K1NGD4VID Sep 1, 2026
2f6d9a0
Merge pull request #1402 from iyanukid2008-pixel/fix/issue-1213
K1NGD4VID Sep 1, 2026
b18ae46
test(health): isolate lag-only degradation for checks.indexer.status
Ajibose Aug 30, 2026
1c38591
fix(ci): pin pr-test-gate Postgres version to match ci.yml and docs
Ajibose Aug 30, 2026
08c0017
test(wallet-context): add regression coverage for malformed persisted…
Ajibose Aug 6, 2026
95c0d71
fix(security): pin mysql2 to >=3.22.0 to resolve high-severity audit …
Ajibose Sep 1, 2026
48f46eb
fix(security): pin mysql2 to >=3.22.0 to resolve high-severity audit …
Ajibose Sep 1, 2026
9a4b83e
fix(security): pin mysql2 to >=3.22.0 to resolve high-severity audit …
Ajibose Sep 1, 2026
085941f
fix(security): pin mysql2 to >=3.22.0 to resolve high-severity audit …
Ajibose Sep 1, 2026
360d763
chore: retrigger CI (transient npm ECONNRESET on prior run)
Ajibose Sep 1, 2026
cccd935
Merge pull request #1159 from Bidex-cmyk/docs/add-security-cross-refe…
K1NGD4VID Sep 2, 2026
bcc28d6
Merge pull request #1171 from Ajibose/test/wallet-context-malformed-s…
K1NGD4VID Sep 2, 2026
0b545a9
Merge pull request #1180 from waterWang/fix/contributors-docs
K1NGD4VID Sep 2, 2026
4f6be44
Merge pull request #1351 from afeezorobsco-cyber/test/stream-creation…
K1NGD4VID Sep 2, 2026
6a743a7
Merge pull request #1364 from enny791/fix/issue-1228
K1NGD4VID Sep 2, 2026
aeffc48
Merge pull request #1365 from afeezorobsco-cyber/refactor/delegate-st…
K1NGD4VID Sep 2, 2026
e7490ea
Merge pull request #1371 from Blessed-Femi/fix/1266-reuse-csv-export-…
K1NGD4VID Sep 2, 2026
a63b96a
Merge pull request #1382 from Rafiat30/fix/use-cached-dashboard-hook
K1NGD4VID Sep 2, 2026
418c719
Merge pull request #1384 from Rafiat30/fix/consolidate-vitest-config
K1NGD4VID Sep 2, 2026
cb956f3
Merge pull request #1386 from pixels26/fix/1229-replace-window-confir…
K1NGD4VID Sep 2, 2026
e41887c
Merge pull request #1387 from Ajibose/infra/pin-postgres-version
K1NGD4VID Sep 2, 2026
c321295
Merge pull request #1388 from Ajibose/test/health-lag-degradation-status
K1NGD4VID Sep 2, 2026
6f84d20
Merge pull request #1403 from rajiabdulrahmon2020-ui/fix/issue-1275
K1NGD4VID Sep 2, 2026
7a1b6f3
Merge pull request #1419 from GOE001/fix/1221-reset-indexer-mutex
K1NGD4VID Sep 2, 2026
2e6fa0b
Merge pull request #1424 from BigMick03/flowfi2
K1NGD4VID Sep 2, 2026
3b1512d
Merge pull request #1426 from 0dillon/refactor/remove-dead-mocked-ses…
K1NGD4VID Sep 2, 2026
be83767
Merge pull request #1428 from Ajibose/security/pin-mysql2-audit-fix
K1NGD4VID Sep 2, 2026
01e71ed
Merge pull request #1425 from ponmileleke54-dev/#1250
K1NGD4VID Sep 2, 2026
a8cd9ec
Merge pull request #1420 from Lacastar2000/Flowfi01
K1NGD4VID Sep 2, 2026
d4ad361
fix(api): standardize error response envelope
ponmileleke54-dev Sep 2, 2026
805664b
Merge branch 'main' into #1232
ponmileleke54-dev Sep 2, 2026
5fbb691
Merge branch 'main' into fix/issue-1292
ponmileleke54-dev Sep 2, 2026
c468c04
Merge branch 'main' into feature/1241-dashboard-code-split
meem08 Sep 2, 2026
f04f80d
Merge remote-tracking branch 'upstream/main' into pr-1383-work
Ajibose Sep 2, 2026
9526f0b
Merge remote-tracking branch 'upstream/main' into pr-1385-work
Ajibose Sep 2, 2026
3290ca9
chore: regenerate OpenAPI spec and API types after merge
Ajibose Sep 2, 2026
5cd3311
test: fix stale mocks broken by unrelated main changes
Ajibose Sep 2, 2026
960ce39
test: fix stale mocks broken by unrelated main changes
Ajibose Sep 2, 2026
d761efc
Merge pull request #1385 from Rafiat30/fix/clipboard-copy-feedback
K1NGD4VID Sep 2, 2026
2ef9e50
Merge pull request #1383 from Rafiat30/fix/consolidate-wallet-event-list
K1NGD4VID Sep 2, 2026
f89d165
Merge branch 'main' into flowfi1
BigMick03 Sep 2, 2026
d329b8e
fix(audit): address 4 second-wave audit issues (#1253, #1269, #1273, …
samjay8 Aug 30, 2026
48a8405
fix(frontend): remove useMemo that React Compiler cannot preserve
samjay8 Sep 1, 2026
9316aaf
fix(tests): resolve 6 failing stream-details-content tests
samjay8 Sep 2, 2026
32767e8
fix(security): override mysql2 to patched version >=3.22.0
samjay8 Sep 2, 2026
4bd627f
ci: fix frontend lint, backend tests, and PR test gate on the 1274 br…
Sep 3, 2026
6655d4c
ci: fix frontend lint, backend tests, and PR test gate on the 1291 br…
Sep 3, 2026
1372489
ci: fix frontend lint, backend tests, PR test gate, and security chec…
Sep 3, 2026
6a24996
fix: make dashboard code-split frontend compile, lint, and test clean
Sep 3, 2026
b8185bb
Merge pull request #1405 from samjay8/fix/audit-1253-1269-1273-1286
K1NGD4VID Sep 3, 2026
de2932c
Merge pull request #1337 from meem08/feature/1241-dashboard-code-split
K1NGD4VID Sep 3, 2026
ccc15b0
Merge branch 'main' into feature/1255-rollbackup-fix
meem08 Sep 3, 2026
4c753a2
Merge branch 'main' into feature/1291-concurrent-cancel
meem08 Sep 3, 2026
4fa306d
Merge branch 'main' into feature/1274-keeper-key-blast-radius
meem08 Sep 3, 2026
ab8ee39
Merge branch 'main' into fix/indexer-cursor
Hamda-gbade Sep 3, 2026
6c294e4
fix(ci): repair 1255 branch after main merge and restore rollup root-…
Sep 3, 2026
50daeaf
Merge pull request #1338 from meem08/feature/1255-rollbackup-fix
K1NGD4VID Sep 3, 2026
757aa57
ci: repair 1291 branch after main merge (leave concurrent-cancel test…
Sep 3, 2026
53f4160
Merge pull request #1340 from meem08/feature/1291-concurrent-cancel
K1NGD4VID Sep 3, 2026
24c6fb3
Merge branch 'main' into feature/1274-keeper-key-blast-radius
meem08 Sep 3, 2026
4731d6d
ci: repair 1274 branch after main merge (restore package files, fix c…
Sep 3, 2026
e32bff5
fix(ci): restore dead-letter symbols dropped in main merge
Hamda-gbade Sep 3, 2026
c94107f
Merge pull request #1341 from meem08/feature/1274-keeper-key-blast-ra…
K1NGD4VID Sep 3, 2026
4b4fdc5
docs: scope note for #1215
mayborn005 Aug 30, 2026
633305d
ci: authenticate Stellar CLI release download
zeemscript Sep 2, 2026
8408647
fix(streams): verify stream state before persistence
zeemscript Sep 2, 2026
b410137
test(streams): align fixtures with chain verification
zeemscript Sep 2, 2026
e588a02
fix(streams): remove unused validation helper
zeemscript Sep 3, 2026
d479905
fix(ci): resolve Stellar CLI release tag
zeemscript Sep 3, 2026
c26d697
Merge pull request #1378 from Hamda-gbade/fix/indexer-cursor
K1NGD4VID Sep 3, 2026
3330dd2
Merge branch 'main' into #1232
ponmileleke54-dev Sep 3, 2026
70cf433
Merge branch 'main' into fix/issue-1292
ponmileleke54-dev Sep 3, 2026
0b56eb0
fix(api): repair stream controller build
ponmileleke54-dev Sep 3, 2026
92c3fbf
Merge branch 'main' into fix/1262-consolidate-theme-state
Nife-tanny Sep 3, 2026
cd7837d
test(api): align error envelope assertions
ponmileleke54-dev Sep 3, 2026
6ee4dc7
Merge pull request #1415 from Nife-tanny/fix/1262-consolidate-theme-s…
K1NGD4VID Sep 3, 2026
779ac6d
Merge pull request #1398 from mayborn005/fix/issue-1215
K1NGD4VID Sep 3, 2026
b7643b8
Fix resume_stream state-corruption: add is_active check, cancel_strea…
akinerin Aug 29, 2026
4402122
Fix resume_stream state-corruption: add is_active check, cancel_strea…
akinerin Aug 29, 2026
8352cd4
Fix: Move aria-live region outside button for proper screen reader an…
akinerin Aug 30, 2026
c65a561
Remove duplicate cancelled stream test
akinerin Sep 1, 2026
862ceda
test: fix assertion for paused state after cancel
akinerin Sep 1, 2026
6842ef7
Fix issue 1228: Add keyboard dismissal, focus trap, and click-outside…
enny791 Aug 30, 2026
e66d31a
Resolve StreamError ArithmeticOverflow merge conflict
akinerin Sep 4, 2026
83134fd
Merge branch 'main' into Unread_notification_count
akinerin Sep 4, 2026
272fd74
Fix cargo-audit CI installation
akinerin Sep 4, 2026
5c65287
Merge branch 'Unread_notification_count' of https://github.com/akiner…
akinerin Sep 4, 2026
2e69fa4
Merge pull request #1406 from akinerin/Unread_notification_count
K1NGD4VID Sep 4, 2026
b9aaccf
Merge branch 'main' into #1252
ponmileleke54-dev Sep 4, 2026
5262b18
Merge pull request #1430 from ponmileleke54-dev/#1232
K1NGD4VID Sep 4, 2026
1abb0e6
fix: remove unused event test helpers
ponmileleke54-dev Sep 4, 2026
3899dd4
Merge pull request #1423 from ponmileleke54-dev/#1252
K1NGD4VID Sep 5, 2026
682c9b2
Merge pull request #1422 from ponmileleke54-dev/fix/issue-1292
K1NGD4VID Sep 5, 2026
c5e8c45
Merge remote-tracking branch 'upstream/main' into pr1411
Fury03 Sep 6, 2026
d0f2d0a
test(indexer): align reset/replay race test with the batchMutex fix
Fury03 Sep 6, 2026
96dc82d
frontend features
Marvell69 Sep 25, 2026
f92e2cc
fix: assigned issues #1441 #1453 #1456 #1457
MarcusDavidG Sep 25, 2026
3696c19
fix: make dependent checks green
MarcusDavidG Sep 25, 2026
69f1ebd
fix: preview comment permissions (issues:write, continue-on-error)
MarcusDavidG Sep 25, 2026
08fdec1
Merge pull request #1458 from Marvell69/feat/developer-webhook
blurbeast Sep 25, 2026
45e956d
Merge pull request #1459 from MarcusDavidG/fix/assigned-issues-1441-1…
blurbeast Sep 25, 2026
a298eb6
feat(stream-contract): protocol pause, milestone vesting, upgrades, b…
Darkvader-ship-it Sep 26, 2026
cedf4cd
Merge branch 'main' into feat/protocol-pause-milestone-vesting-upgrad…
Darkvader-ship-it Sep 26, 2026
dc3e391
test: add scheduled Stellar Testnet E2E integration suite
Wilfred007 Sep 26, 2026
87b656a
feat(backend): add observability, indexer dead-letter replay, and str…
Mikey-222 Sep 26, 2026
38a3e2d
Merge branch 'main' into feat/observability-admin-deadletter-simulation
Mikey-222 Sep 26, 2026
a427332
Merge pull request #1411 from Fury03/test/issue-1293-reset-replay-race
K1NGD4VID Sep 26, 2026
6abef46
Merge pull request #1461 from Subscription-block/feat/testnet-e2e-int…
blurbeast Sep 26, 2026
15b7f0a
Merge pull request #1460 from Darkvader-ship-it/feat/protocol-pause-m…
blurbeast Sep 26, 2026
88ed9ae
Merge pull request #1462 from Mikey-222/feat/observability-admin-dead…
blurbeast Sep 26, 2026
733d31b
feat(frontend): Implement UX improvements for empty states, links, me…
Georgechisom Sep 27, 2026
e133c44
Merge pull request #1526 from Georgechisom/fix/frontend-ux-improvements
blurbeast Sep 27, 2026
b09b0c0
fix: schema validation middleware, top-up precision, activity action …
Gbemi-programmer Sep 27, 2026
98f629a
Merge pull request #1528 from Gbemi-programmer/fix/validation-activit…
blurbeast Sep 27, 2026
c207744
feat(backend): ledger reorg & fork recovery with idempotent rollback …
Sep 27, 2026
fd6b3fd
chore(ci): sync lockfile and repair corrupt contracts test
Sep 27, 2026
8fdf8c8
fix(backend): repair stellar-sdk v17 usage and missing health-route s…
Sep 28, 2026
aea3a54
fix(frontend): clear eslint errors so Frontend CI reaches the test step
Sep 28, 2026
f7d6c6a
fix(contracts): restore the payroll/recipient-controls surface main's…
Sep 28, 2026
8adf3ce
fix(backend): pin a single @types/pg so the container build typechecks
Sep 28, 2026
783b81f
fix(backend): regenerate the OpenAPI spec and API types
Sep 28, 2026
3c66215
fix(backend): mint admin dead-letter test tokens with issuer and audi…
Sep 28, 2026
8f8c844
fix(frontend): repair the five failing frontend tests
Sep 28, 2026
f240c0f
fix(frontend): repair the five type errors that fail `next build`
Sep 28, 2026
729f708
feat: Implement allowance-based streams, dispute escrow, rate modific…
devjayy43 Sep 28, 2026
8a091d2
Merge pull request #1563 from devjayy43/feature/stream-features-1318-…
blurbeast Sep 28, 2026
9cde9cf
feat(backend): pool gauges, dead-letter alerts, body limits, token ca…
ayomustap Sep 28, 2026
1541c0f
feat: resolve related FlowFi issues
chukwuebuka19 Sep 28, 2026
72ec8ef
Merge pull request #1565 from chukwuebuka19/feature/resolve-related-i…
blurbeast Sep 28, 2026
a0dc55e
fix(frontend): validate wallet token balance before stream confirmation
abimbolaalabi Sep 28, 2026
29bb418
feat(sdk): validate Stellar network passphrase in FlowFiClient
Teetotola Sep 28, 2026
8292a86
docs: add troubleshooting and FAQ guide
Teetotola Sep 28, 2026
7eecd85
chore(devops): check Rust formatting/lints in the pre-commit hook
Teetotola Sep 28, 2026
19e8f8f
feat(frontend): add global keyboard shortcuts for stream navigation
Teetotola Sep 28, 2026
8d041cf
fix(frontend): validate Stellar public key checksum in stream wizard
abimbolaalabi Sep 28, 2026
596a654
feat(frontend): persist stream table column and sort preferences
abimbolaalabi Sep 28, 2026
5202487
Merge branch 'main' into feat/ledger-reorg-fork-recovery-1468
Aj-Kayvee Sep 28, 2026
b313f8a
Merge branch 'main' into Flowfi
BigMick03 Sep 30, 2026
90a98c7
fix(frontend): unblock the stream-detail and toast suites
Sep 30, 2026
9cd8b5a
fix(contracts): reconcile the ledger-reorg/main contract merge
Sep 30, 2026
1d29d8f
[Backend] claimable.service.ts cache key does not include token addre…
BigMick03 Oct 1, 2026
fbaa71e
Merge pull request #1417 from BigMick03/flowfi1
K1NGD4VID Oct 1, 2026
c8731ad
fix: repair pre-existing main breakage to unblock backend hardening CI
ayomustap Oct 2, 2026
867b0a6
fix: sync upstream frontend impl and repair contracts to unblock CI
ayomustap Oct 2, 2026
70303db
fix(contracts): resolve remaining clippy errors blocking CI
ayomustap Oct 2, 2026
f11e559
merge upstream/main to resolve PR conflict
ayomustap Oct 2, 2026
01b9309
fix(contracts): remove stray brace from merge resolution
ayomustap Oct 2, 2026
973284f
fix(contracts): propagate apply_withdrawal error in batch_withdraw
ayomustap Oct 2, 2026
631dd47
fix(contracts): repair 3 failing cargo tests
ayomustap Oct 2, 2026
a17edb1
Merge branch 'main' into fix/issue-1216-idempotent-withdraw
Martinsbab Oct 3, 2026
1de85a0
fix(contracts): remove unused contract imports blocking clippy CI
ayomustap Oct 4, 2026
e30acd2
Merge pull request #1564 from ayomustap/flowfi_backend_issues
K1NGD4VID Oct 4, 2026
e3f6f6c
Merge upstream/main into labscrypt_flowfi_issuess - resolve dashboard…
Teetotola Oct 4, 2026
5790c3b
fix(tests): correct idempotent-withdraw test assertions and error env…
Martinsbab Oct 4, 2026
7853242
fix(prisma): remove duplicate IndexerDeadLetterEvent model from schema
Martinsbab Oct 4, 2026
cfd90dc
Merge branch 'main' into Flowfi
BigMick03 Oct 5, 2026
48ceae6
fix(ci): repair merge-corrupted lockfile and duplicate backend defini…
BigMick03 Oct 5, 2026
bab90a8
Merge pull request #1075 from BigMick03/Flowfi
K1NGD4VID Oct 5, 2026
d8989ad
Merge pull request #1567 from Teetotola/labscrypt_flowfi_issuess
K1NGD4VID Oct 5, 2026
94f6d0d
Merge remote-tracking branch 'origin/main' into pr-1566
abimbolaalabi Oct 5, 2026
c1f8b2a
Merge remote-tracking branch 'origin/main' into fix/1506-strkey-valid…
abimbolaalabi Oct 5, 2026
8c9b024
Merge remote-tracking branch 'origin/main' into fix/1504-persist-tabl…
abimbolaalabi Oct 5, 2026
c3bb2ea
Merge pull request #1569 from abimbolaalabi/fix/1504-persist-table-pr…
K1NGD4VID Oct 5, 2026
55aebb9
Merge pull request #1568 from abimbolaalabi/fix/1506-strkey-validation
K1NGD4VID Oct 5, 2026
34873ac
Merge remote-tracking branch 'origin/main' into pr-1566
abimbolaalabi Oct 5, 2026
f881bdf
Merge pull request #1566 from abimbolaalabi/fix/1507-wallet-balance-b…
K1NGD4VID Oct 5, 2026
68acadd
Merge branch 'main' into feat/ledger-reorg-fork-recovery-1468
Aj-Kayvee Oct 5, 2026
79b855e
fix(ci): reconcile the ledger-reorg/main merge across every suite
Oct 5, 2026
1a5c63e
fix(contracts): re-enable the acceptance suite to hold coverage above…
Oct 5, 2026
60a9c37
Merge pull request #1530 from Aj-Kayvee/feat/ledger-reorg-fork-recove…
K1NGD4VID Oct 5, 2026
470d887
Merge branch 'main' into fix/issue-1216-idempotent-withdraw
Martinsbab Oct 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/SECURITY_SETUP_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# GitHub Security Setup Checklist

This checklist helps ensure that GitHub's security features are properly configured for the FlowFi repository.
This checklist helps repository administrators ensure that GitHub's security features are properly configured for the FlowFi repository. For the canonical security policy (reporting guidelines, supported versions, response timelines), see [SECURITY.md](../SECURITY.md). For the implementation status and next steps, see [SECURITY_IMPLEMENTATION_SUMMARY.md](../SECURITY_IMPLEMENTATION_SUMMARY.md).

## Repository Security Settings

Expand Down
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ Closes #
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published
- [ ] I have checked for breaking changes and documented them if applicable
- [ ] If this change adds or modifies a metric, I have updated the Grafana dashboard and the alert rules in `backend/docs/observability/`

## Additional Notes
<!-- Any additional information that reviewers should know -->
77 changes: 69 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,24 @@ on:
branches: [main, develop]

jobs:
changes:
name: Detect changes
runs-on: ubuntu-latest
outputs:
backend: ${{ steps.filter.outputs.backend }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Check changed files
id: filter
uses: dorny/paths-filter@v3
with:
filters: |
backend:
- 'backend/**'
- 'package-lock.json'

frontend:
name: Frontend CI
runs-on: ubuntu-latest
Expand All @@ -34,21 +52,36 @@ jobs:
run: npm run lint
working-directory: frontend

- name: Install Rollup Native Binding
run: npm install @rollup/rollup-linux-x64-gnu --no-save
working-directory: frontend

- name: Run Frontend Tests
run: npm run test:coverage
working-directory: frontend

- name: Upload frontend coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: frontend/coverage/lcov.info
flags: frontend
name: frontend-coverage
fail_ci_if_error: false
verbose: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

- name: Build
run: npm run build
working-directory: frontend

- name: Check frontend bundle size
run: bash ./scripts/check-bundle-size.sh
working-directory: frontend

backend:
name: Backend CI
runs-on: ubuntu-latest
needs: changes
if: >-
github.event_name == 'push' ||
needs.changes.outputs.backend == 'true'
services:
postgres:
image: postgres:16-alpine@sha256:e013e867e712fec275706a6c51c966f0bb0c93cfa8f51000f85a15f9865a28cb
Expand Down Expand Up @@ -90,8 +123,14 @@ jobs:
run: npm run build
working-directory: backend

- name: Install Rollup Native Binding
run: npm install @rollup/rollup-linux-x64-gnu --no-save
- name: OpenAPI spec & API types drift check
run: |
cd backend
npm run codegen:openapi
cd ../frontend
npm run codegen:api-types
cd ..
git diff --exit-code -- backend/swagger/flowfi.openapi.json frontend/src/lib/api-types.generated.ts

- name: Run Backend Tests
run: |
Expand Down Expand Up @@ -192,6 +231,11 @@ jobs:
run: cargo test
working-directory: contracts

- name: Run Contract Benchmarks
run: cargo test --release --test '*' -- --nocapture --test-threads=1
working-directory: contracts
continue-on-error: true

- name: Cache cargo-tarpaulin
id: tarpaulin-cache
uses: actions/cache@v4
Expand Down Expand Up @@ -220,9 +264,26 @@ jobs:

- name: Install Stellar CLI
run: |
curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh -s -- --install-deps
echo "$HOME/.stellar-cli/bin" >> $GITHUB_PATH
set -euo pipefail
# Authenticate the release lookup through the runner's token. The
# upstream installer queries the unauthenticated GitHub API and can
# fail on shared-runner rate limits.
mkdir -p "$RUNNER_TEMP/stellar-cli"
stellar_cli_tag=$(gh release view --repo stellar/stellar-cli --json tagName --jq .tagName)
gh release download "$stellar_cli_tag" \
--repo stellar/stellar-cli \
--pattern 'stellar-cli-*-x86_64-unknown-linux-gnu.tar.gz' \
--dir "$RUNNER_TEMP/stellar-cli" \
--clobber
tar -xzf "$RUNNER_TEMP/stellar-cli/stellar-cli-"*.tar.gz \
-C "$RUNNER_TEMP/stellar-cli"
mkdir -p "$HOME/.stellar-cli/bin"
mv "$RUNNER_TEMP/stellar-cli/stellar" "$HOME/.stellar-cli/bin/stellar"
chmod +x "$HOME/.stellar-cli/bin/stellar"
echo "$HOME/.stellar-cli/bin" >> "$GITHUB_PATH"
shell: bash
env:
GH_TOKEN: ${{ github.token }}

- name: Optimize WASM files
run: |
Expand Down
146 changes: 146 additions & 0 deletions .github/workflows/deploy-contracts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# Contract Deployment Workflow for FlowFi
#
# Compiles the Soroban stream contract to optimized WASM, runs contract tests,
# and deploys + initializes the contract on Stellar Testnet on demand (or on
# Mainnet for release tags). The resulting contract ID is surfaced in the job
# summary and published as a release artifact.
name: Deploy Soroban Contracts

on:
release:
types: [published]
workflow_dispatch:
inputs:
network:
description: "Target network (testnet|mainnet)"
required: true
default: "testnet"
type: choice
options:
- testnet
- mainnet

concurrency:
group: ${{ github.workflow }}-${{ inputs.network || github.ref }}
cancel-in-progress: true

permissions:
contents: write

jobs:
deploy:
name: Build & Deploy stream_contract
runs-on: ubuntu-latest
environment: ${{ github.event_name == 'release' && 'production' || 'staging' }}

env:
NETWORK: ${{ inputs.network || (github.event_name == 'release' && 'mainnet' || 'testnet') }}
DEPLOYER_SECRET: ${{ secrets.DEPLOYER_SECRET }}
ADMIN_ADDRESS: ${{ secrets.ADMIN_ADDRESS }}
TREASURY_ADDRESS: ${{ secrets.TREASURY_ADDRESS }}
FEE_RATE_BPS: ${{ secrets.FEE_RATE_BPS }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: wasm32-unknown-unknown
components: rustfmt, clippy

- name: Rust Cache
uses: Swatinem/rust-cache@v2
with:
workspace: "contracts -> target"

- name: Install Stellar CLI
run: |
curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh -s -- --install-deps
echo "$HOME/.stellar-cli/bin" >> $GITHUB_PATH

- name: Run Contract Tests
run: cargo test --package stream_contract
working-directory: contracts

- name: Build & Optimize WASM
run: |
set -euo pipefail
cd contracts
cargo build --target wasm32-unknown-unknown --release
RELEASE_DIR="target/wasm32-unknown-unknown/release"
for w in "$RELEASE_DIR"/stream_contract.wasm; do
stellar contract optimize --wasm "$w" --wasm-out "$RELEASE_DIR/stream_contract.optimized.wasm"
done
ls -la "$RELEASE_DIR"/*.wasm

- name: Inspect Contract Interface & WASM Size
run: |
set -euo pipefail
WASM=contracts/target/wasm32-unknown-unknown/release/stream_contract.optimized.wasm
stellar contract inspect --wasm "$WASM"
SIZE=$(stat -c%s "$WASM")
echo "Optimized WASM size: $SIZE bytes"
if [ "$SIZE" -ge 65536 ]; then
echo "ERROR: optimized WASM exceeds 64KB budget ($SIZE bytes)"
exit 1
fi
echo "WASM_WASM_PATH=$WASM" >> $GITHUB_ENV

- name: Deploy & Initialize Contract
run: ./scripts/deploy.sh --network "$NETWORK"

- name: Read Deployed Contract ID
id: contract
run: |
set -euo pipefail
CONTRACT_ID=$(jq -r --arg net "$NETWORK" '.[$net].contractId' deployment-info.json)
echo "contract_id=$CONTRACT_ID" >> $GITHUB_OUTPUT
echo "deployment-json=$(jq -c . deployment-info.json)" >> $GITHUB_OUTPUT

- name: Emit Deployment Summary
if: always()
run: |
{
echo "## Deployment Summary"
echo ""
echo "- **Network**: \`$NETWORK\`"
echo "- **Contract ID**: \`${{ steps.contract.outputs.contract_id }}\`"
echo "- **WASM**: \`${{ env.WASM_WASM_PATH }}\`"
echo "- **Deployment info**: "
echo '```json'
echo "${{ steps.contract.outputs.deployment-json }}"
echo '```'
} >> "$GITHUB_STEP_SUMMARY"

- name: Upload Optimized WASM Artifact
uses: actions/upload-artifact@v4
with:
name: stream-contract-${{ env.NETWORK }}
path: contracts/target/wasm32-unknown-unknown/optimized/*.wasm
if-no-files-found: error

- name: Upload Deployment Info
uses: actions/upload-artifact@v4
with:
name: deployment-info-${{ env.NETWORK }}
path: deployment-info.json
if-no-files-found: error

- name: Commit Deployment Info
if: github.event_name == 'release'
env:
NETWORK: ${{ env.NETWORK }}
run: |
set -euo pipefail
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add deployment-info.json
if git diff --cached --quiet; then
echo "No deployment-info.json changes to commit"
exit 0
fi
git commit -m "chore(contracts): record $NETWORK contract deployment"
git push
45 changes: 45 additions & 0 deletions .github/workflows/pr-preview-cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: PR Preview Cleanup

on:
pull_request:
types: [closed]

permissions:
contents: read
pull-requests: write
issues: write
deployments: write

jobs:
cleanup:
name: Teardown ephemeral preview
runs-on: ubuntu-latest
timeout-minutes: 10
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Teardown preview resources
run: bash scripts/cleanup-preview.sh --pr "$PR_NUMBER"
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
NEON_API_KEY: ${{ secrets.NEON_API_KEY }}
NEON_PROJECT_ID: ${{ secrets.NEON_PROJECT_ID }}
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
SUPABASE_PROJECT_REF: ${{ secrets.SUPABASE_PROJECT_REF }}
DATABASE_URL: postgresql://postgres:password@127.0.0.1:5432/flowfi_preview

- name: Comment teardown notice
continue-on-error: true
uses: actions/github-script@v7
with:
script: |
const pr = context.payload.pull_request.number;
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr,
body: `🧹 Preview environment for PR #${pr} has been deallocated (preview app + ephemeral database dropped).`,
});
Loading
Loading