From 85a5d47c3af86f288179479084746f920ab25a05 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 24 Apr 2026 15:17:21 +0000 Subject: [PATCH 1/5] docs: update CHANGELOG.md [skip ci] --- CHANGELOG.md | 528 +++++++++++++++++++++++++-------------------------- 1 file changed, 264 insertions(+), 264 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eeda484..3eb2fcdb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,275 +3,275 @@ ### Bug Fixes -* **#222:** add lazy loading and skeleton placeholder for content images ([3f8edea](https://github.com/MyFanss/MyFans/commit/3f8edeae1452f4a6295176a7817c2e9f32a37d68)), closes [#222](https://github.com/MyFanss/MyFans/issues/222) -* **#287:** enforce paused state on all mutating methods ([f0e0b80](https://github.com/MyFanss/MyFans/commit/f0e0b80f1bc5335940da6ca70dc45ed5138b4b89)), closes [#287](https://github.com/MyFanss/MyFans/issues/287) -* **#299:** normalize contract errors with shared MyfansError enum in myfans-lib ([d21e45d](https://github.com/MyFanss/MyFans/commit/d21e45d8fb73d4f1f30fc423f5f60f8cb037f237)), closes [#299](https://github.com/MyFanss/MyFans/issues/299) [#299](https://github.com/MyFanss/MyFans/issues/299) -* **#304:** add explicit method checks and smoke tests to deploy script ([cc8c71d](https://github.com/MyFanss/MyFans/commit/cc8c71dc874a8eed08651bc8c78c08f4fdc4e34e)), closes [#304](https://github.com/MyFanss/MyFans/issues/304) -* **#308:** add ABI snapshot checks to prevent accidental breaking changes ([4a9c4f8](https://github.com/MyFanss/MyFans/commit/4a9c4f80b45de5fc4145abc891e1515a42acfe61)), closes [#308](https://github.com/MyFanss/MyFans/issues/308) -* **#314,#317,#318:** token clear_allowance, fuzz balance tests, content-price auth tests ([ec42bc2](https://github.com/MyFanss/MyFans/commit/ec42bc25b0b023b20b3d8eb0cb5405fe38ecf058)), closes [#314](https://github.com/MyFanss/MyFans/issues/314) [#317](https://github.com/MyFanss/MyFans/issues/317) [#318](https://github.com/MyFanss/MyFans/issues/318) -* **#315:** include spender in transfer_from event attribution ([b043fea](https://github.com/MyFanss/MyFans/commit/b043feaf24ecbd2ad72e18ff1c7485744d053b35)), closes [#315](https://github.com/MyFanss/MyFans/issues/315) -* **#339:** propagate correlation IDs end-to-end across requests and jobs ([074e610](https://github.com/MyFanss/MyFans/commit/074e6109f814dff5a900b65622aeadf434e32f9d)), closes [#339](https://github.com/MyFanss/MyFans/issues/339) -* **a11y:** improve focus order and keyboard navigation ([#227](https://github.com/MyFanss/MyFans/issues/227)) ([cf78f6e](https://github.com/MyFanss/MyFans/commit/cf78f6e81ef97c2d3b309f60616b6853b20ce1f5)) -* **a11y:** remove problematic test files causing compilation errors ([75d88ad](https://github.com/MyFanss/MyFans/commit/75d88ad46475ebe11e4e1106132ca10a8ce5888f)) -* add JwtModule to NotificationsModule to resolve AuthGuard dependency ([ed99543](https://github.com/MyFanss/MyFans/commit/ed99543b0f6d01c7c47131c574a0e46677303144)) -* add lucide-react dependency missing from package.json ([5ebfa93](https://github.com/MyFanss/MyFans/commit/5ebfa93b0f64dc5a6f6f863e5148201ed43cd719)) -* add minimatch to /backend/package.json ([bb56f8f](https://github.com/MyFanss/MyFans/commit/bb56f8f2b2cddde8eeb98ec183f5f84b072c2d45)) -* add use client to TransactionCard and fix ImageUpload import ([0ef31c6](https://github.com/MyFanss/MyFans/commit/0ef31c624f44e69868ee19eb98765747f354ee09)) -* align UserRole imports under src/common/enums ([#575](https://github.com/MyFanss/MyFans/issues/575)) ([cd8deea](https://github.com/MyFanss/MyFans/commit/cd8deea4f81623553e82cc119fbd72ec3683b9ee)) -* **auth:** narrow address type before passing to service ([c7da64d](https://github.com/MyFanss/MyFans/commit/c7da64d9defdaa641fd8e8f79532fa081ef00ffe)) -* **backend:** [#592](https://github.com/MyFanss/MyFans/issues/592) [#593](https://github.com/MyFanss/MyFans/issues/593) [#752](https://github.com/MyFanss/MyFans/issues/752) [#742](https://github.com/MyFanss/MyFans/issues/742) correlation ID propagation, OpenAPI DTO fixes, archive CI_CHECKS_STATUS, fan spending caps ([a2dafa6](https://github.com/MyFanss/MyFans/commit/a2dafa61d6cb338aa66da195a63790a658d2f7db)) -* **backend:** align subscription flows with indexed repo ([2bed11a](https://github.com/MyFanss/MyFans/commit/2bed11a8d64d03e206015bb27fd5c0ae6392da16)) -* **backend:** DB migration CI with ephemeral Postgres ([6e696ab](https://github.com/MyFanss/MyFans/commit/6e696ab53c8b34541a2bf6fa16d12164e787d015)) -* **backend:** explicit SubscriptionRecord type to fix CI build errors ([e4907d1](https://github.com/MyFanss/MyFans/commit/e4907d1c1c7a1b120718142588d2ad7bf3f6636e)) -* **backend:** install missing nestjs dependencies and types for building (issue [#58](https://github.com/MyFanss/MyFans/issues/58)) ([f2bca0f](https://github.com/MyFanss/MyFans/commit/f2bca0fe1771edd353c8125c925b5dae2fab8798)) -* **backend:** resolve all 44 TS build errors ([8725bae](https://github.com/MyFanss/MyFans/commit/8725baeaa42ff58e7cdacdfc4146aff0edd8530e)) -* **backend:** resolve broken import paths in refresh-module and missing refreshTokens on User entity (issue [#62](https://github.com/MyFanss/MyFans/issues/62)) ([3b35520](https://github.com/MyFanss/MyFans/commit/3b355200caadc294228857168588a1de97390117)) -* **backend:** resolve TS1117 duplicate secretOrKey property in jwt.strategy.ts (issue [#62](https://github.com/MyFanss/MyFans/issues/62)) ([c32800b](https://github.com/MyFanss/MyFans/commit/c32800be43f9c63850a418240c1f0f4e092617b6)) -* **backend:** Swagger pagination for users list uses concrete response DTO ([11d258c](https://github.com/MyFanss/MyFans/commit/11d258c373fbfa7aae4d8d45fccc1f72b0925157)) -* **backend:** use SDK discriminated unions for simulate responses in chain reader ([18701be](https://github.com/MyFanss/MyFans/commit/18701be456ba59e274564df737852f98b22b7862)) -* **ci:** fallback to npm install when package-lock.json is missing ([3c78f09](https://github.com/MyFanss/MyFans/commit/3c78f09aca5309462d02c6b48f901ebae52cd1ee)) -* **ci:** resolve backend build/test regressions on subscription service ([56870db](https://github.com/MyFanss/MyFans/commit/56870db754976b918b79df68d97e8f63f161578b)) -* **ci:** switch frontend to npm ci and sync backend lockfile overrides ([1dea7eb](https://github.com/MyFanss/MyFans/commit/1dea7eb352ac57be64d2126d89aa49c49cc35648)) -* clean up corrupted dashboard files ([1ba1e39](https://github.com/MyFanss/MyFans/commit/1ba1e399d7d287cc7931669b34dbfd1de7854c43)) -* **contract:** standardize transfer event schema for indexer compatibility ([#278](https://github.com/MyFanss/MyFans/issues/278)) ([8ff5f16](https://github.com/MyFanss/MyFans/commit/8ff5f166fb94d7a5d76e0d58708866965c3e2eeb)) -* **contract:** virtual workspace root for release profiles ([12dee38](https://github.com/MyFanss/MyFans/commit/12dee387aaa6d9b29c67f7725f1a57d3a7b0e702)) -* Correct Stellar SDK imports and add missing error codes ([1128a69](https://github.com/MyFanss/MyFans/commit/1128a692e53131a02cb9766f695388fe078dfb6c)) -* Correct Stellar SDK imports for backend build ([1861a9d](https://github.com/MyFanss/MyFans/commit/1861a9d8c5a27050834fe2eaecc7ad53a882226e)) -* failed workflows in backend ([4274634](https://github.com/MyFanss/MyFans/commit/42746348cfc462e0e06bf51b1f9406a55016ca42)) -* failed workflows in backend and contracts ([431c15f](https://github.com/MyFanss/MyFans/commit/431c15f13043ea4a1cc12ed2e51b1f6497fd2548)) -* failed workflows in backend and contracts and add audit.toml in contracts folder ([621b247](https://github.com/MyFanss/MyFans/commit/621b247312d790c642386c97acdd24ec0fa45c4a)) -* fix ci errors ([0ab4f80](https://github.com/MyFanss/MyFans/commit/0ab4f80e90dabe3da4db6936d9ad04d82937b4ec)) -* **frontend:** add missing copyFeedback state declaration ([5cc19d5](https://github.com/MyFanss/MyFans/commit/5cc19d525d9531785fb532f16d217dcdf4828b44)) -* **frontend:** add missing createCreatorMetadata import from @/lib/metadata ([083a344](https://github.com/MyFanss/MyFans/commit/083a344afb7817bc040f3df3d752fbe5e9974ff6)) -* **frontend:** add missing useConsent import from ConsentContext ([36777d4](https://github.com/MyFanss/MyFans/commit/36777d40c004e010413025b2a8380a068edb8e4b)) -* **frontend:** await getCreatorPlans in generateMetadata ([577b483](https://github.com/MyFanss/MyFans/commit/577b483d61a8adce3bfe3bab18c32cfc515faffc)) -* **frontend:** fix 3 Next.js build errors ([7e12865](https://github.com/MyFanss/MyFans/commit/7e128654a85685f0407b31b9c2480bc171a030d3)) -* **frontend:** fix handleLike signature to match onLike prop type ([cfce95a](https://github.com/MyFanss/MyFans/commit/cfce95a30cd4e6300f962ff118c53f9da74c8bc6)) -* **frontend:** fix malformed package.json ([846219e](https://github.com/MyFanss/MyFans/commit/846219e9a4374fa13c0594ed8308e5c166f87316)) -* **frontend:** fix malformed package.json - missing comma and duplicate lint key ([0777a1f](https://github.com/MyFanss/MyFans/commit/0777a1fa213c1ab646e40c784e095707b5b4e40e)) -* **frontend:** refresh runtime feature flags ([#420](https://github.com/MyFanss/MyFans/issues/420)) ([acff14f](https://github.com/MyFanss/MyFans/commit/acff14f464cf7c7667d3cef53047b98791bdfb58)) -* **frontend:** remove duplicate typescript key, add missing comma after vitest ([df6afd7](https://github.com/MyFanss/MyFans/commit/df6afd7722586d261ce39147cffe19e1dccf8fd7)) -* **frontend:** replace invalid ErrorCode COPY_FAILED with UNKNOWN_ERROR ([04b73b1](https://github.com/MyFanss/MyFans/commit/04b73b1e95590820d9798010c865effee61f164b)) -* **frontend:** resolve all remaining build errors - build passes ([ef86520](https://github.com/MyFanss/MyFans/commit/ef86520b77f3bbe57a25f855977f4c009792b818)) -* initialize useRef with undefined to satisfy TS ([dbd79dd](https://github.com/MyFanss/MyFans/commit/dbd79dd5a618043aa656ac9a91d86d779e0407fa)) -* make backend CLI checks pass for issue [#211](https://github.com/MyFanss/MyFans/issues/211) ([c51bc65](https://github.com/MyFanss/MyFans/commit/c51bc657e2272803be6578ac250d43683851ff36)) -* merge conflicts ([1ba0b66](https://github.com/MyFanss/MyFans/commit/1ba0b6679de68e10b8cc12f1f52d44fb69214c89)) -* merge issues ([cd30af9](https://github.com/MyFanss/MyFans/commit/cd30af9be08f3ca46e01bd8c042b06da3b30815c)) -* minimatch issue ([e60bb38](https://github.com/MyFanss/MyFans/commit/e60bb380c4c2a660417880c7d47eeaefcd5027ba)) -* **pagination:** standardize utils in comments, posts, users services ([e255ecf](https://github.com/MyFanss/MyFans/commit/e255ecf1df1101c6c050cdb8cdcf29759b895733)), closes [#364](https://github.com/MyFanss/MyFans/issues/364) -* **reconciler:** narrow action type to satisfy applyRepair parameter ([b7aa3f6](https://github.com/MyFanss/MyFans/commit/b7aa3f6a2fe660a14792cf3b3a22f1b8bc9de8f9)) -* remove duplicate keys and missing comma in package.json ([6e9186f](https://github.com/MyFanss/MyFans/commit/6e9186f973cd3020ce35fcc91502337a98410319)) -* remove duplicate use client and fix useImageUpload import ([303571a](https://github.com/MyFanss/MyFans/commit/303571ab08c73d7b6905667f99212f2b263e34cd)) -* resolve all CI failures ([e536b54](https://github.com/MyFanss/MyFans/commit/e536b54cd951adf7897e392fcbfdd2037d7d662d)) -* resolve backend build errors and failing creator service tests ([1ecc59d](https://github.com/MyFanss/MyFans/commit/1ecc59de02e20597da50ffe677cf089692586751)) -* resolve build errors with proper line endings ([852e965](https://github.com/MyFanss/MyFans/commit/852e965387b7a2555c68a65c7025b937af7009ee)) -* resolve CI failures in backend, frontend, and E2E tests ([7725c83](https://github.com/MyFanss/MyFans/commit/7725c8398143480724d43d82e8760fd9c1b0631b)) -* resolve issues [#594](https://github.com/MyFanss/MyFans/issues/594) [#596](https://github.com/MyFanss/MyFans/issues/596) [#578](https://github.com/MyFanss/MyFans/issues/578) [#729](https://github.com/MyFanss/MyFans/issues/729) ([24b4e8a](https://github.com/MyFanss/MyFans/commit/24b4e8a99a44f0ded6296c590152a9e1c2b846b1)) -* resolve Jest UUID module parsing issues ([948d85b](https://github.com/MyFanss/MyFans/commit/948d85b21610804a8d2cc585d26f8dcbaea662e5)) -* resolve merge conflicts in dashboard files ([1e9db9a](https://github.com/MyFanss/MyFans/commit/1e9db9afbb7483dba4ccf171c131b813696453a6)) -* resolve more CI issues: initialize ConfigModule, exclude e2e from tsconfig, and add env vars to ci.yml ([ea42082](https://github.com/MyFanss/MyFans/commit/ea42082b1359558cd34c68c7d7d46bcf6820b5b2)) -* resolve pre-existing CI build failures ([aa54f80](https://github.com/MyFanss/MyFans/commit/aa54f8058c2dc3744226fef6281ef930c340cb79)) -* resolve remaining CI build errors ([1bec124](https://github.com/MyFanss/MyFans/commit/1bec124f5baabf129582f8b9cf1de6514437edc5)) -* resolve TypeScript errors in pagination implementation ([0b3c630](https://github.com/MyFanss/MyFans/commit/0b3c63021a458cadfb86654a5404ad78490baa95)) -* restore Jest configuration for UUID module handling ([9180ffa](https://github.com/MyFanss/MyFans/commit/9180ffa1f5f51f08676e5391a371186d4c4386d0)) -* **security:** remediate frontend high-severity npm audit vulnerabilities ([0bb26d5](https://github.com/MyFanss/MyFans/commit/0bb26d5fab743115359958653f9ad60ef262bfa3)), closes [hi#severity](https://github.com/hi/issues/severity) -* test errors ([6e74a59](https://github.com/MyFanss/MyFans/commit/6e74a5989c4ccfd3986f874289b575792ece790c)) -* **test:** add CreatorDashboardService mock to creators controller spec ([6bf8bed](https://github.com/MyFanss/MyFans/commit/6bf8bedcfc7161c37710b12ce85552307ec91138)) -* **tests:** resolve all failing test suite dependency errors ([8b9e431](https://github.com/MyFanss/MyFans/commit/8b9e4311e87cad40ab51073038724fe836f777fb)) -* update backend Nest deps for CI audit ([41cd0fc](https://github.com/MyFanss/MyFans/commit/41cd0fc10c89580de225359f9e1580607d9ab575)) -* update package-lock.json to sync with package.json ([1accbe0](https://github.com/MyFanss/MyFans/commit/1accbe0a38e21c5e76f1f445607625e08600d5f3)) -* use rpc.Server and import rpc.Api helpers where UInt32Val is used ([#581](https://github.com/MyFanss/MyFans/issues/581)) ([cee7ae1](https://github.com/MyFanss/MyFans/commit/cee7ae15af50f021f979467e175f668acec244bf)) -* wrap CLI top-level awaits in async main() for CommonJS compatibility ([e19c2d0](https://github.com/MyFanss/MyFans/commit/e19c2d0fc9225885bfa4a711650b8ac7d230eb42)) +* **#222:** add lazy loading and skeleton placeholder for content images ([3f8edea](https://github.com/Samuel1-ona/MyFans/commit/3f8edeae1452f4a6295176a7817c2e9f32a37d68)), closes [#222](https://github.com/Samuel1-ona/MyFans/issues/222) +* **#287:** enforce paused state on all mutating methods ([f0e0b80](https://github.com/Samuel1-ona/MyFans/commit/f0e0b80f1bc5335940da6ca70dc45ed5138b4b89)), closes [#287](https://github.com/Samuel1-ona/MyFans/issues/287) +* **#299:** normalize contract errors with shared MyfansError enum in myfans-lib ([d21e45d](https://github.com/Samuel1-ona/MyFans/commit/d21e45d8fb73d4f1f30fc423f5f60f8cb037f237)), closes [#299](https://github.com/Samuel1-ona/MyFans/issues/299) [#299](https://github.com/Samuel1-ona/MyFans/issues/299) +* **#304:** add explicit method checks and smoke tests to deploy script ([cc8c71d](https://github.com/Samuel1-ona/MyFans/commit/cc8c71dc874a8eed08651bc8c78c08f4fdc4e34e)), closes [#304](https://github.com/Samuel1-ona/MyFans/issues/304) +* **#308:** add ABI snapshot checks to prevent accidental breaking changes ([4a9c4f8](https://github.com/Samuel1-ona/MyFans/commit/4a9c4f80b45de5fc4145abc891e1515a42acfe61)), closes [#308](https://github.com/Samuel1-ona/MyFans/issues/308) +* **#314,#317,#318:** token clear_allowance, fuzz balance tests, content-price auth tests ([ec42bc2](https://github.com/Samuel1-ona/MyFans/commit/ec42bc25b0b023b20b3d8eb0cb5405fe38ecf058)), closes [#314](https://github.com/Samuel1-ona/MyFans/issues/314) [#317](https://github.com/Samuel1-ona/MyFans/issues/317) [#318](https://github.com/Samuel1-ona/MyFans/issues/318) +* **#315:** include spender in transfer_from event attribution ([b043fea](https://github.com/Samuel1-ona/MyFans/commit/b043feaf24ecbd2ad72e18ff1c7485744d053b35)), closes [#315](https://github.com/Samuel1-ona/MyFans/issues/315) +* **#339:** propagate correlation IDs end-to-end across requests and jobs ([074e610](https://github.com/Samuel1-ona/MyFans/commit/074e6109f814dff5a900b65622aeadf434e32f9d)), closes [#339](https://github.com/Samuel1-ona/MyFans/issues/339) +* **a11y:** improve focus order and keyboard navigation ([#227](https://github.com/Samuel1-ona/MyFans/issues/227)) ([cf78f6e](https://github.com/Samuel1-ona/MyFans/commit/cf78f6e81ef97c2d3b309f60616b6853b20ce1f5)) +* **a11y:** remove problematic test files causing compilation errors ([75d88ad](https://github.com/Samuel1-ona/MyFans/commit/75d88ad46475ebe11e4e1106132ca10a8ce5888f)) +* add JwtModule to NotificationsModule to resolve AuthGuard dependency ([ed99543](https://github.com/Samuel1-ona/MyFans/commit/ed99543b0f6d01c7c47131c574a0e46677303144)) +* add lucide-react dependency missing from package.json ([5ebfa93](https://github.com/Samuel1-ona/MyFans/commit/5ebfa93b0f64dc5a6f6f863e5148201ed43cd719)) +* add minimatch to /backend/package.json ([bb56f8f](https://github.com/Samuel1-ona/MyFans/commit/bb56f8f2b2cddde8eeb98ec183f5f84b072c2d45)) +* add use client to TransactionCard and fix ImageUpload import ([0ef31c6](https://github.com/Samuel1-ona/MyFans/commit/0ef31c624f44e69868ee19eb98765747f354ee09)) +* align UserRole imports under src/common/enums ([#575](https://github.com/Samuel1-ona/MyFans/issues/575)) ([cd8deea](https://github.com/Samuel1-ona/MyFans/commit/cd8deea4f81623553e82cc119fbd72ec3683b9ee)) +* **auth:** narrow address type before passing to service ([c7da64d](https://github.com/Samuel1-ona/MyFans/commit/c7da64d9defdaa641fd8e8f79532fa081ef00ffe)) +* **backend:** [#592](https://github.com/Samuel1-ona/MyFans/issues/592) [#593](https://github.com/Samuel1-ona/MyFans/issues/593) [#752](https://github.com/Samuel1-ona/MyFans/issues/752) [#742](https://github.com/Samuel1-ona/MyFans/issues/742) correlation ID propagation, OpenAPI DTO fixes, archive CI_CHECKS_STATUS, fan spending caps ([a2dafa6](https://github.com/Samuel1-ona/MyFans/commit/a2dafa61d6cb338aa66da195a63790a658d2f7db)) +* **backend:** align subscription flows with indexed repo ([2bed11a](https://github.com/Samuel1-ona/MyFans/commit/2bed11a8d64d03e206015bb27fd5c0ae6392da16)) +* **backend:** DB migration CI with ephemeral Postgres ([6e696ab](https://github.com/Samuel1-ona/MyFans/commit/6e696ab53c8b34541a2bf6fa16d12164e787d015)) +* **backend:** explicit SubscriptionRecord type to fix CI build errors ([e4907d1](https://github.com/Samuel1-ona/MyFans/commit/e4907d1c1c7a1b120718142588d2ad7bf3f6636e)) +* **backend:** install missing nestjs dependencies and types for building (issue [#58](https://github.com/Samuel1-ona/MyFans/issues/58)) ([f2bca0f](https://github.com/Samuel1-ona/MyFans/commit/f2bca0fe1771edd353c8125c925b5dae2fab8798)) +* **backend:** resolve all 44 TS build errors ([8725bae](https://github.com/Samuel1-ona/MyFans/commit/8725baeaa42ff58e7cdacdfc4146aff0edd8530e)) +* **backend:** resolve broken import paths in refresh-module and missing refreshTokens on User entity (issue [#62](https://github.com/Samuel1-ona/MyFans/issues/62)) ([3b35520](https://github.com/Samuel1-ona/MyFans/commit/3b355200caadc294228857168588a1de97390117)) +* **backend:** resolve TS1117 duplicate secretOrKey property in jwt.strategy.ts (issue [#62](https://github.com/Samuel1-ona/MyFans/issues/62)) ([c32800b](https://github.com/Samuel1-ona/MyFans/commit/c32800be43f9c63850a418240c1f0f4e092617b6)) +* **backend:** Swagger pagination for users list uses concrete response DTO ([11d258c](https://github.com/Samuel1-ona/MyFans/commit/11d258c373fbfa7aae4d8d45fccc1f72b0925157)) +* **backend:** use SDK discriminated unions for simulate responses in chain reader ([18701be](https://github.com/Samuel1-ona/MyFans/commit/18701be456ba59e274564df737852f98b22b7862)) +* **ci:** fallback to npm install when package-lock.json is missing ([3c78f09](https://github.com/Samuel1-ona/MyFans/commit/3c78f09aca5309462d02c6b48f901ebae52cd1ee)) +* **ci:** resolve backend build/test regressions on subscription service ([56870db](https://github.com/Samuel1-ona/MyFans/commit/56870db754976b918b79df68d97e8f63f161578b)) +* **ci:** switch frontend to npm ci and sync backend lockfile overrides ([1dea7eb](https://github.com/Samuel1-ona/MyFans/commit/1dea7eb352ac57be64d2126d89aa49c49cc35648)) +* clean up corrupted dashboard files ([1ba1e39](https://github.com/Samuel1-ona/MyFans/commit/1ba1e399d7d287cc7931669b34dbfd1de7854c43)) +* **contract:** standardize transfer event schema for indexer compatibility ([#278](https://github.com/Samuel1-ona/MyFans/issues/278)) ([8ff5f16](https://github.com/Samuel1-ona/MyFans/commit/8ff5f166fb94d7a5d76e0d58708866965c3e2eeb)) +* **contract:** virtual workspace root for release profiles ([12dee38](https://github.com/Samuel1-ona/MyFans/commit/12dee387aaa6d9b29c67f7725f1a57d3a7b0e702)) +* Correct Stellar SDK imports and add missing error codes ([1128a69](https://github.com/Samuel1-ona/MyFans/commit/1128a692e53131a02cb9766f695388fe078dfb6c)) +* Correct Stellar SDK imports for backend build ([1861a9d](https://github.com/Samuel1-ona/MyFans/commit/1861a9d8c5a27050834fe2eaecc7ad53a882226e)) +* failed workflows in backend ([4274634](https://github.com/Samuel1-ona/MyFans/commit/42746348cfc462e0e06bf51b1f9406a55016ca42)) +* failed workflows in backend and contracts ([431c15f](https://github.com/Samuel1-ona/MyFans/commit/431c15f13043ea4a1cc12ed2e51b1f6497fd2548)) +* failed workflows in backend and contracts and add audit.toml in contracts folder ([621b247](https://github.com/Samuel1-ona/MyFans/commit/621b247312d790c642386c97acdd24ec0fa45c4a)) +* fix ci errors ([0ab4f80](https://github.com/Samuel1-ona/MyFans/commit/0ab4f80e90dabe3da4db6936d9ad04d82937b4ec)) +* **frontend:** add missing copyFeedback state declaration ([5cc19d5](https://github.com/Samuel1-ona/MyFans/commit/5cc19d525d9531785fb532f16d217dcdf4828b44)) +* **frontend:** add missing createCreatorMetadata import from @/lib/metadata ([083a344](https://github.com/Samuel1-ona/MyFans/commit/083a344afb7817bc040f3df3d752fbe5e9974ff6)) +* **frontend:** add missing useConsent import from ConsentContext ([36777d4](https://github.com/Samuel1-ona/MyFans/commit/36777d40c004e010413025b2a8380a068edb8e4b)) +* **frontend:** await getCreatorPlans in generateMetadata ([577b483](https://github.com/Samuel1-ona/MyFans/commit/577b483d61a8adce3bfe3bab18c32cfc515faffc)) +* **frontend:** fix 3 Next.js build errors ([7e12865](https://github.com/Samuel1-ona/MyFans/commit/7e128654a85685f0407b31b9c2480bc171a030d3)) +* **frontend:** fix handleLike signature to match onLike prop type ([cfce95a](https://github.com/Samuel1-ona/MyFans/commit/cfce95a30cd4e6300f962ff118c53f9da74c8bc6)) +* **frontend:** fix malformed package.json ([846219e](https://github.com/Samuel1-ona/MyFans/commit/846219e9a4374fa13c0594ed8308e5c166f87316)) +* **frontend:** fix malformed package.json - missing comma and duplicate lint key ([0777a1f](https://github.com/Samuel1-ona/MyFans/commit/0777a1fa213c1ab646e40c784e095707b5b4e40e)) +* **frontend:** refresh runtime feature flags ([#420](https://github.com/Samuel1-ona/MyFans/issues/420)) ([acff14f](https://github.com/Samuel1-ona/MyFans/commit/acff14f464cf7c7667d3cef53047b98791bdfb58)) +* **frontend:** remove duplicate typescript key, add missing comma after vitest ([df6afd7](https://github.com/Samuel1-ona/MyFans/commit/df6afd7722586d261ce39147cffe19e1dccf8fd7)) +* **frontend:** replace invalid ErrorCode COPY_FAILED with UNKNOWN_ERROR ([04b73b1](https://github.com/Samuel1-ona/MyFans/commit/04b73b1e95590820d9798010c865effee61f164b)) +* **frontend:** resolve all remaining build errors - build passes ([ef86520](https://github.com/Samuel1-ona/MyFans/commit/ef86520b77f3bbe57a25f855977f4c009792b818)) +* initialize useRef with undefined to satisfy TS ([dbd79dd](https://github.com/Samuel1-ona/MyFans/commit/dbd79dd5a618043aa656ac9a91d86d779e0407fa)) +* make backend CLI checks pass for issue [#211](https://github.com/Samuel1-ona/MyFans/issues/211) ([c51bc65](https://github.com/Samuel1-ona/MyFans/commit/c51bc657e2272803be6578ac250d43683851ff36)) +* merge conflicts ([1ba0b66](https://github.com/Samuel1-ona/MyFans/commit/1ba0b6679de68e10b8cc12f1f52d44fb69214c89)) +* merge issues ([cd30af9](https://github.com/Samuel1-ona/MyFans/commit/cd30af9be08f3ca46e01bd8c042b06da3b30815c)) +* minimatch issue ([e60bb38](https://github.com/Samuel1-ona/MyFans/commit/e60bb380c4c2a660417880c7d47eeaefcd5027ba)) +* **pagination:** standardize utils in comments, posts, users services ([e255ecf](https://github.com/Samuel1-ona/MyFans/commit/e255ecf1df1101c6c050cdb8cdcf29759b895733)), closes [#364](https://github.com/Samuel1-ona/MyFans/issues/364) +* **reconciler:** narrow action type to satisfy applyRepair parameter ([b7aa3f6](https://github.com/Samuel1-ona/MyFans/commit/b7aa3f6a2fe660a14792cf3b3a22f1b8bc9de8f9)) +* remove duplicate keys and missing comma in package.json ([6e9186f](https://github.com/Samuel1-ona/MyFans/commit/6e9186f973cd3020ce35fcc91502337a98410319)) +* remove duplicate use client and fix useImageUpload import ([303571a](https://github.com/Samuel1-ona/MyFans/commit/303571ab08c73d7b6905667f99212f2b263e34cd)) +* resolve all CI failures ([e536b54](https://github.com/Samuel1-ona/MyFans/commit/e536b54cd951adf7897e392fcbfdd2037d7d662d)) +* resolve backend build errors and failing creator service tests ([1ecc59d](https://github.com/Samuel1-ona/MyFans/commit/1ecc59de02e20597da50ffe677cf089692586751)) +* resolve build errors with proper line endings ([852e965](https://github.com/Samuel1-ona/MyFans/commit/852e965387b7a2555c68a65c7025b937af7009ee)) +* resolve CI failures in backend, frontend, and E2E tests ([7725c83](https://github.com/Samuel1-ona/MyFans/commit/7725c8398143480724d43d82e8760fd9c1b0631b)) +* resolve issues [#594](https://github.com/Samuel1-ona/MyFans/issues/594) [#596](https://github.com/Samuel1-ona/MyFans/issues/596) [#578](https://github.com/Samuel1-ona/MyFans/issues/578) [#729](https://github.com/Samuel1-ona/MyFans/issues/729) ([24b4e8a](https://github.com/Samuel1-ona/MyFans/commit/24b4e8a99a44f0ded6296c590152a9e1c2b846b1)) +* resolve Jest UUID module parsing issues ([948d85b](https://github.com/Samuel1-ona/MyFans/commit/948d85b21610804a8d2cc585d26f8dcbaea662e5)) +* resolve merge conflicts in dashboard files ([1e9db9a](https://github.com/Samuel1-ona/MyFans/commit/1e9db9afbb7483dba4ccf171c131b813696453a6)) +* resolve more CI issues: initialize ConfigModule, exclude e2e from tsconfig, and add env vars to ci.yml ([ea42082](https://github.com/Samuel1-ona/MyFans/commit/ea42082b1359558cd34c68c7d7d46bcf6820b5b2)) +* resolve pre-existing CI build failures ([aa54f80](https://github.com/Samuel1-ona/MyFans/commit/aa54f8058c2dc3744226fef6281ef930c340cb79)) +* resolve remaining CI build errors ([1bec124](https://github.com/Samuel1-ona/MyFans/commit/1bec124f5baabf129582f8b9cf1de6514437edc5)) +* resolve TypeScript errors in pagination implementation ([0b3c630](https://github.com/Samuel1-ona/MyFans/commit/0b3c63021a458cadfb86654a5404ad78490baa95)) +* restore Jest configuration for UUID module handling ([9180ffa](https://github.com/Samuel1-ona/MyFans/commit/9180ffa1f5f51f08676e5391a371186d4c4386d0)) +* **security:** remediate frontend high-severity npm audit vulnerabilities ([0bb26d5](https://github.com/Samuel1-ona/MyFans/commit/0bb26d5fab743115359958653f9ad60ef262bfa3)), closes [hi#severity](https://github.com/hi/issues/severity) +* test errors ([6e74a59](https://github.com/Samuel1-ona/MyFans/commit/6e74a5989c4ccfd3986f874289b575792ece790c)) +* **test:** add CreatorDashboardService mock to creators controller spec ([6bf8bed](https://github.com/Samuel1-ona/MyFans/commit/6bf8bedcfc7161c37710b12ce85552307ec91138)) +* **tests:** resolve all failing test suite dependency errors ([8b9e431](https://github.com/Samuel1-ona/MyFans/commit/8b9e4311e87cad40ab51073038724fe836f777fb)) +* update backend Nest deps for CI audit ([41cd0fc](https://github.com/Samuel1-ona/MyFans/commit/41cd0fc10c89580de225359f9e1580607d9ab575)) +* update package-lock.json to sync with package.json ([1accbe0](https://github.com/Samuel1-ona/MyFans/commit/1accbe0a38e21c5e76f1f445607625e08600d5f3)) +* use rpc.Server and import rpc.Api helpers where UInt32Val is used ([#581](https://github.com/Samuel1-ona/MyFans/issues/581)) ([cee7ae1](https://github.com/Samuel1-ona/MyFans/commit/cee7ae15af50f021f979467e175f668acec244bf)) +* wrap CLI top-level awaits in async main() for CommonJS compatibility ([e19c2d0](https://github.com/Samuel1-ona/MyFans/commit/e19c2d0fc9225885bfa4a711650b8ac7d230eb42)) ### Features -* [#74](https://github.com/MyFanss/MyFans/issues/74)- Add creator earnings events and Add content access events ([ef9436d](https://github.com/MyFanss/MyFans/commit/ef9436da03560b480ded423a7d5aced66f00a1c0)), closes [#74-](https://github.com/MyFanss/MyFans/issues/74-) -* **#311:** standardize subscription event topics + fix treasury test ([e14703f](https://github.com/MyFanss/MyFans/commit/e14703f68151f08a9cb1cb3454b3e6e56f7b7239)) -* **#311:** standardize subscription event topics for indexing ([9c9ffb2](https://github.com/MyFanss/MyFans/commit/9c9ffb27d17ad38753092c1edf05a2223beb2a8e)), closes [#311](https://github.com/MyFanss/MyFans/issues/311) -* **#745:** ledger time vs server clock skew handling ([2b873f3](https://github.com/MyFanss/MyFans/commit/2b873f38a6f2853fe68791c7c2d4c7d21d2d92b5)), closes [#745](https://github.com/MyFanss/MyFans/issues/745) -* add admin-controlled creator unregistration to creator-registry ([e7af8cb](https://github.com/MyFanss/MyFans/commit/e7af8cb39a7982841b2439d3e8671c8f63a25eb6)) -* add API rate limiting with @nestjs/throttler ([b39f5b3](https://github.com/MyFanss/MyFans/commit/b39f5b3fec9f313188d4c566f8ba30deaf1505b0)) -* add AvatarUpload component with validation and accessibility ([a30194f](https://github.com/MyFanss/MyFans/commit/a30194fe22cd266422e7c24148dea16f930aec76)) -* add benefits, featured creators, trust indicators with lazy-load and a11y ([d403e8f](https://github.com/MyFanss/MyFans/commit/d403e8fb35b34c5741e2be1ab54da757f19acd50)) -* add brun function ([309cdf0](https://github.com/MyFanss/MyFans/commit/309cdf091ac40b556811a292325aeeb7d0db98ec)) -* Add content deletion functionality with strict permission controls ([8d2f335](https://github.com/MyFanss/MyFans/commit/8d2f33503d650e920b7636d1ace268a8f44610bb)) -* Add content deletion functionality with strict permission controls and format code ([04f0ef6](https://github.com/MyFanss/MyFans/commit/04f0ef64d874ca3f21165987f570ca0bdf14508e)) -* add content-access admin view; fix: update content-access docs for admin getter ([54dcce9](https://github.com/MyFanss/MyFans/commit/54dcce9d3c61f6eb37c6b171648e57b53860355a)) -* add contract getter functions for plan metadata sync ([3b005ab](https://github.com/MyFanss/MyFans/commit/3b005ab78c49b82472d487ce2a7df080fd632459)) -* add creator plan creation flow ([c0f4042](https://github.com/MyFanss/MyFans/commit/c0f4042506e633cfd474ef034b075241a9fd4e86)) -* add creator plan creation flow ([5ab9ef0](https://github.com/MyFanss/MyFans/commit/5ab9ef0d1ba59f91dfb3348c96718878dc095860)) -* add creator verification functionality to registry ([a5d9828](https://github.com/MyFanss/MyFans/commit/a5d9828e8a4980d22aa489bfe9508bf053502e6a)) -* add creator_id update support in creator-registry; fix: add tests for creator_id update auth and not-registered handling ([194e2c3](https://github.com/MyFanss/MyFans/commit/194e2c3e227f41d48a18b6fef1491a4c93252538)) -* add database connection resiliency ([#355](https://github.com/MyFanss/MyFans/issues/355)) ([44882f6](https://github.com/MyFanss/MyFans/commit/44882f633b108811a41ac8c5180ab43f4765dde3)) -* add duplicate earnings prevention via payment_reference idempotency key ([7651ac4](https://github.com/MyFanss/MyFans/commit/7651ac46ee831306aa4553084548fd8e1bfdd04d)) -* add e2e test for secure account deletion flow (closes [#418](https://github.com/MyFanss/MyFans/issues/418)) ([cc27b80](https://github.com/MyFanss/MyFans/commit/cc27b80613402658fd72713551a6ddbacc8a240c)) -* Add E2E tests for cancel/renew subscription flow ([#405](https://github.com/MyFanss/MyFans/issues/405)) ([c697a22](https://github.com/MyFanss/MyFans/commit/c697a2246e9b6e3675f3b66f67c44abd3ae4bbc2)) -* add endpoint to list creator subscribers with pagination and status filtering ([a6e78e6](https://github.com/MyFanss/MyFans/commit/a6e78e638b28fdc98c013517ce443a37e9a62d05)) -* add ERC20-style transfer and allowance to myfans-token ([f56c66d](https://github.com/MyFanss/MyFans/commit/f56c66d83ecc7ccfb1c71a74c61d09764c7e5883)) -* Add error boundaries and global error UI ([#223](https://github.com/MyFanss/MyFans/issues/223)) ([fb7b2c7](https://github.com/MyFanss/MyFans/commit/fb7b2c717875833a8bb50b244c6c2ac6f39514ce)) -* add favorites/bookmarks for creators with session sync ([#419](https://github.com/MyFanss/MyFans/issues/419)) ([8dad3d4](https://github.com/MyFanss/MyFans/commit/8dad3d44f3e820311fa445dabab4a9be62bf96c7)) -* add feature flags for new flows ([f0d16e6](https://github.com/MyFanss/MyFans/commit/f0d16e65a8c438fa1715d4c27ccf0ca865e54055)) -* add form-validation-unification spec requirements ([15344ed](https://github.com/MyFanss/MyFans/commit/15344edcd9e41cd82ab6f7cba46198cf0fec31ee)) -* add frontend feature flag support ([#420](https://github.com/MyFanss/MyFans/issues/420)) ([4e806fe](https://github.com/MyFanss/MyFans/commit/4e806feeeee0e6a82362c64bfc0bbac0cf4a8a19)) -* add frontend release checklist and QA template ([#423](https://github.com/MyFanss/MyFans/issues/423)) ([62ff1d0](https://github.com/MyFanss/MyFans/commit/62ff1d0791ceaae99e562c910bcda84be191dd79)) -* add image upload component with progress tracking and validation ([cc72045](https://github.com/MyFanss/MyFans/commit/cc720454249ac17d7706c7e5ed4f7c44e9b57ce7)) -* add integration tests for subscribe functionality and edge cases ([6d669cd](https://github.com/MyFanss/MyFans/commit/6d669cd2306ef303702d0926aee2a47855be21b2)) -* add mock ERC20 contract for testing subscription payments ([91ad596](https://github.com/MyFanss/MyFans/commit/91ad596f79012204ae263f4817c8fd9e542feacb)) -* add notification channel preferences form with per-event toggles ([f165957](https://github.com/MyFanss/MyFans/commit/f1659577e4e51b5319302e0762fa0e914a1288f9)) -* add notification inbox UI with backend API integration ([da59748](https://github.com/MyFanss/MyFans/commit/da59748e3814f5fee7d1fe71cb8a935433944021)) -* Add pending status components and client for issue [#83](https://github.com/MyFanss/MyFans/issues/83) ([123624c](https://github.com/MyFanss/MyFans/commit/123624cae0e1bd1090db6741954580d5db29fc61)) -* Add PII and secret redaction to logging ([#232](https://github.com/MyFanss/MyFans/issues/232)) ([83c7770](https://github.com/MyFanss/MyFans/commit/83c77703fae8cee939dc55e694a23e2df1381c2d)) -* add rate limiting ([23f4d1b](https://github.com/MyFanss/MyFans/commit/23f4d1b47886175f8e7c1d8b42468566e9a1ada2)) -* add retry-banner spec requirements ([8b3d9b6](https://github.com/MyFanss/MyFans/commit/8b3d9b6510812de6a35d598a141efabc96cc61fa)) -* add reusable subscription status badges ([83cb9ad](https://github.com/MyFanss/MyFans/commit/83cb9ad75c0b87bda163c4842ff964ed3476faeb)) -* add secure account deletion UI with warnings and re-auth confirmation ([b63e790](https://github.com/MyFanss/MyFans/commit/b63e79059416b4c6898fdfee595e9de6615086bb)) -* add security audit to backend ([769d2d2](https://github.com/MyFanss/MyFans/commit/769d2d2c62221c833723ad7f7be3434d7699ccc9)) -* add set_autorenew function ([7826ef5](https://github.com/MyFanss/MyFans/commit/7826ef5207e25f07ba592f1016bbbac816016136)) -* add Soroban RPC health check endpoints ([05b4cee](https://github.com/MyFanss/MyFans/commit/05b4cee44d83eff46121271686a2eb4832b6c0b2)) -* add startup probes for DB and RPC ([360d8a2](https://github.com/MyFanss/MyFans/commit/360d8a217e2c22e3da735f85cf5d26cef6feb070)) -* Add Stellar SDK integration and E2E tests ([0622ada](https://github.com/MyFanss/MyFans/commit/0622adac51dbad7751e7e16f942378e533359920)) -* add subscribe confirmation UI with wallet signing and tx polling ([a45ef2a](https://github.com/MyFanss/MyFans/commit/a45ef2a7bf60d53c124b129f75569fa48de61b01)) -* add subscription fee handling ([#62](https://github.com/MyFanss/MyFans/issues/62)) ([2909782](https://github.com/MyFanss/MyFans/commit/29097824b5db10ab857baa4786b5fd1e444d5da9)) -* add subscription history export spec requirements ([4891611](https://github.com/MyFanss/MyFans/commit/4891611a3061423b94d4f9bff4b6734f4cd92e22)) -* add subscription plan update support ([#284](https://github.com/MyFanss/MyFans/issues/284)) ([5852ac8](https://github.com/MyFanss/MyFans/commit/5852ac8b21f1e6e061fdc1bc3689b7a03ac803a3)) -* add subscription renewal helper ([#285](https://github.com/MyFanss/MyFans/issues/285)) ([d264121](https://github.com/MyFanss/MyFans/commit/d264121a7fec0844895fc777441da258f113f4b7)) -* add total supply invariants test suite ([#281](https://github.com/MyFanss/MyFans/issues/281)) ([8efb2ad](https://github.com/MyFanss/MyFans/commit/8efb2adc1daf3a0ddfcf0a09b343cf036421053f)) -* add wallet address column to creators entity ([3bb4b5e](https://github.com/MyFanss/MyFans/commit/3bb4b5ea6504ca2ed058ba95855530b16147618d)) -* add wallet address tests ([51a1cbb](https://github.com/MyFanss/MyFans/commit/51a1cbb18bedb10ae063c16f87347e02294b4a51)) -* added Pagination standard (cursor vs offset) ([e9728e5](https://github.com/MyFanss/MyFans/commit/e9728e5f9bf589d0193b6ff367054289e9b6602f)) -* added the comment module ([4b6799a](https://github.com/MyFanss/MyFans/commit/4b6799adbc7503e1f95acaadee57da42a6c534ae)) -* added the comment module ([d409d72](https://github.com/MyFanss/MyFans/commit/d409d72145316a713f2f2ef2f91b12b8d653a5a6)) -* added the follow module ([37beb14](https://github.com/MyFanss/MyFans/commit/37beb14cb3bbd3a343bacaa8f493d67a7239ddfd)) -* added the message and room module ([93d899c](https://github.com/MyFanss/MyFans/commit/93d899c237821f76fbbba2fdaa4ce02148264ffc)) -* added the messages list feature ([e7ccc1a](https://github.com/MyFanss/MyFans/commit/e7ccc1ab7032fe2eb19d7b93f6dea1c607e076a7)) -* added the payments feature ([8dec64c](https://github.com/MyFanss/MyFans/commit/8dec64c1531089ecab9997f05a0db98adbd392d6)) -* added the post crud feature ([71e2837](https://github.com/MyFanss/MyFans/commit/71e28376620e0c63bd20ebe92a728c824a92da4e)) -* added the redis cache feature ([48fad8d](https://github.com/MyFanss/MyFans/commit/48fad8da080334ec35519241ceaadb8fec76b7b0)) -* **analytics:** payment analytics endpoints ([6605436](https://github.com/MyFanss/MyFans/commit/6605436e02fa6a0644fb1184e3b60d70ec9d8682)), closes [#payment-analytics](https://github.com/MyFanss/MyFans/issues/payment-analytics) -* **auth:** wallet signature challenge endpoints ([dc3f1a1](https://github.com/MyFanss/MyFans/commit/dc3f1a143001ee3eb86a4a79b33dffbbf0e8bfab)), closes [#wallet-challenge-auth](https://github.com/MyFanss/MyFans/issues/wallet-challenge-auth) -* backend contract health checks against CI deployment outputs ([4dcb7c5](https://github.com/MyFanss/MyFans/commit/4dcb7c5ffc1f5e0c0e1bf91a2fbef36a18bc62a9)) -* **backend:** add getLatestLedgerSequence & getNetworkEvents to SorobanRpcService; guard poller behind feature flag ([36ed0db](https://github.com/MyFanss/MyFans/commit/36ed0dba4da16ff38a5a39e31e4e8e8a5e3bbde2)) -* **backend:** add health check endpoints for monitoring and load balancers ([1a7f2fb](https://github.com/MyFanss/MyFans/commit/1a7f2fb262add25430e6eaac13fccb7c100ab5a3)) -* **backend:** add logging dependencies and configuration ([9901dc4](https://github.com/MyFanss/MyFans/commit/9901dc413112ad48a9661485835c0b102c279ef5)) -* **backend:** add logging middleware with correlation id and redaction ([e1c8ef1](https://github.com/MyFanss/MyFans/commit/e1c8ef1e3d1cfc2c45b1659439bf581c8df29859)) -* **backend:** add queue metrics and structured job logging ([5e4e438](https://github.com/MyFanss/MyFans/commit/5e4e438ab77321fb69598341ee50eb4f6532dee9)) -* **backend:** add Soroban RPC retry/backoff utility with circuit breaker ([#343](https://github.com/MyFanss/MyFans/issues/343)) ([769efa4](https://github.com/MyFanss/MyFans/commit/769efa441a11173ae95a0cd393c6283c1eea8717)) -* **backend:** auto-load contract IDs from deploy artifacts ([79e60f1](https://github.com/MyFanss/MyFans/commit/79e60f125c58d0e9c14c3d453bd165e8cc882753)) -* **backend:** creator dashboard endpoint for revenue and subscriber metrics ([57c5342](https://github.com/MyFanss/MyFans/commit/57c5342cf6e3a6e5974541acdc7d803c5dc8516c)) -* **backend:** harden CreatorsService with Logger and resilient edges ([ae5e418](https://github.com/MyFanss/MyFans/commit/ae5e418508619c67f49773b51829bf2a0c956e39)) -* **backend:** validate Soroban env at startup with tests ([949c855](https://github.com/MyFanss/MyFans/commit/949c8550fef280d9aa28c03aaf93e052c246fc92)) -* bootstrap runtime contract config ([c3e09b3](https://github.com/MyFanss/MyFans/commit/c3e09b34e80ad818a41b4edd8cea39b676929ef9)) -* build a deprecation middleware ([726ef5c](https://github.com/MyFanss/MyFans/commit/726ef5cc65d5b7b5a45a4dbdd05a396a40225d04)) -* **cards:** create reusable card UI component library ([ad58df4](https://github.com/MyFanss/MyFans/commit/ad58df4ec805f147b2465f4be818f5f14cb04854)) -* commit anything ([dc9c147](https://github.com/MyFanss/MyFans/commit/dc9c1476453dcdc257b36685dee6f36e73fb39dd)) -* complete contract interface docs generation [#301](https://github.com/MyFanss/MyFans/issues/301) ([59c929a](https://github.com/MyFanss/MyFans/commit/59c929a2ea437935343f7caced2a9039a5fd0eee)) -* **content:** add content metadata CRUD API ([#333](https://github.com/MyFanss/MyFans/issues/333)) ([0c42d45](https://github.com/MyFanss/MyFans/commit/0c42d454d6b949894e6e603ec98002cf07af2183)) -* **contract:** add admin token metadata update (set_metadata) ([aef69dd](https://github.com/MyFanss/MyFans/commit/aef69dd7d94198cd299775fc53b7f324ac21dba7)), closes [#280](https://github.com/MyFanss/MyFans/issues/280) -* **contract:** add get_content_info catalog query ([#312](https://github.com/MyFanss/MyFans/issues/312)) ([9e7cec3](https://github.com/MyFanss/MyFans/commit/9e7cec33d8ec70b0fb4928fd01c27fcfa0ebe078)) -* **contract:** emit cancel reason code in subscription events ([a70a291](https://github.com/MyFanss/MyFans/commit/a70a291efe4edc3398737813b99c0bf0be79e0a1)), closes [#286](https://github.com/MyFanss/MyFans/issues/286) -* **contract:** enforce content price bounds and validation ([#294](https://github.com/MyFanss/MyFans/issues/294)) ([4e7d549](https://github.com/MyFanss/MyFans/commit/4e7d5492587d490966ecbf0c62195f4ad023d842)) -* **contract:** enforce mint admin authorization (closes [#276](https://github.com/MyFanss/MyFans/issues/276)) ([2e03cf5](https://github.com/MyFanss/MyFans/commit/2e03cf53560ad7e7f4a56b0209bab874d7c53c4a)) -* **contract:** release checklist automation linked to docs/release/ ([4fd298c](https://github.com/MyFanss/MyFans/commit/4fd298c2787de892129ee6e6462f1e3530a5a289)) -* **contracts:** add create_subscription with duration ledgers entity constraints matching Issue 60 requirements tracking creator bounds smoothly ([4657605](https://github.com/MyFanss/MyFans/commit/46576050096cad6a6155027d358a13ced3202376)) -* **contract:** shared Env fixtures for cross-contract integration tests ([9913d9e](https://github.com/MyFanss/MyFans/commit/9913d9ed4e623d80203e7be5525353b935ccc009)) -* **contracts:** implement creator-registry stub satisfying Issue 58 ([d3a9111](https://github.com/MyFanss/MyFans/commit/d3a9111123379a830ab779d9aee57831b4d6c031)) -* **cors:** implement CORS configuration and security headers middleware ([1df68d0](https://github.com/MyFanss/MyFans/commit/1df68d06fffbce7d3565b5bc2c171c82bf941849)) -* Create gated content viewing page (Issue [#97](https://github.com/MyFanss/MyFans/issues/97)) ([6ce8009](https://github.com/MyFanss/MyFans/commit/6ce80098b4126a66e6ec429172018d847c7a6368)) -* Created transaction page ([272f671](https://github.com/MyFanss/MyFans/commit/272f6712930125013e91f6fb416c2c6ab7865d7a)) -* **dashboard:** improve mobile and tablet responsiveness for creator dashboard ([8410cb0](https://github.com/MyFanss/MyFans/commit/8410cb0e6bd2431f9a6d522c8cfaef33412c1c9b)) -* **db:** add baseline migrations for core entities ([d38ee4d](https://github.com/MyFanss/MyFans/commit/d38ee4d639640f3913c908911830ad208788c89a)) -* **docs,ci:** implement platform governance and QA tooling ([3f34818](https://github.com/MyFanss/MyFans/commit/3f348188232f2e535f4df63a330f25c94963ba06)), closes [#746](https://github.com/MyFanss/MyFans/issues/746) [#747](https://github.com/MyFanss/MyFans/issues/747) [#749](https://github.com/MyFanss/MyFans/issues/749) [#748](https://github.com/MyFanss/MyFans/issues/748) [#746](https://github.com/MyFanss/MyFans/issues/746) [#747](https://github.com/MyFanss/MyFans/issues/747) [#748](https://github.com/MyFanss/MyFans/issues/748) [#749](https://github.com/MyFanss/MyFans/issues/749) -* **earnings:** add unauthorized record tests ([#319](https://github.com/MyFanss/MyFans/issues/319)) ([0a0b763](https://github.com/MyFanss/MyFans/commit/0a0b763a19f3a584f27cfe398d9534225e97db59)) -* emit renewal-failure event/webhook on subscription renewal fail ([#211](https://github.com/MyFanss/MyFans/issues/211)) ([3303e4f](https://github.com/MyFanss/MyFans/commit/3303e4ff9fcece0d545768baef4e60f9c9000995)) -* emit withdraw event with creator, amount, and token ([adb7fec](https://github.com/MyFanss/MyFans/commit/adb7fec89703f73ce79374be8b60b8d15a8ed5e3)) -* enforce transfer validation and strengthen subscription/earnings initialization guards ([b306492](https://github.com/MyFanss/MyFans/commit/b306492e94f54e28aac4c34c8fb0c0d43f1724f3)) -* enhance wallet connection resilience and UX ([3996191](https://github.com/MyFanss/MyFans/commit/399619176e94e5d57b465333b867647c8d810cf9)) -* fix app.module.ts ([9468d45](https://github.com/MyFanss/MyFans/commit/9468d4598764de8f2a3797ce92a46b2785babb6d)) -* fixed account creation problems closes [#1](https://github.com/MyFanss/MyFans/issues/1) ([b3076d1](https://github.com/MyFanss/MyFans/commit/b3076d16e65fd0891fdd79934d0a26f220465e4e)) -* fixed account creation problems closes [#1](https://github.com/MyFanss/MyFans/issues/1) ([57ba88a](https://github.com/MyFanss/MyFans/commit/57ba88ae236e9063d14b069975fc63d8b0447aea)) -* fixed account creation problems closes [#1](https://github.com/MyFanss/MyFans/issues/1) ([0b02216](https://github.com/MyFanss/MyFans/commit/0b0221614997c218cc6d40a5da54c7b419e70fa8)) -* fixed account creation problems closes [#1](https://github.com/MyFanss/MyFans/issues/1) ([bf136b8](https://github.com/MyFanss/MyFans/commit/bf136b8fd7d7bb39590c6c25b02e236777e56a5f)) -* fixed account creation problems closes [#1](https://github.com/MyFanss/MyFans/issues/1) ([cce7f42](https://github.com/MyFanss/MyFans/commit/cce7f42852a96da4a6ae6c4889783fb158d5de06)) -* follow fn done ([df96342](https://github.com/MyFanss/MyFans/commit/df963420995b4889a54e61801e1006e724af566b)) -* **frontend:** add transaction status polling and history UI ([478ccdb](https://github.com/MyFanss/MyFans/commit/478ccdb8d287c5e3fe72f01c76189e660fd30e5d)) -* **frontend:** creator onboarding — skip/resume, progress, tests ([7ee6e00](https://github.com/MyFanss/MyFans/commit/7ee6e00a441b7f154fd21fe0834d857db71c1729)) -* **frontend:** fan onboarding quickstart with wallet and first sub flow ([a87a4ad](https://github.com/MyFanss/MyFans/commit/a87a4add391f154734428bbcc76b2df1ebe4bb26)) -* **frontend:** standardize error copy with actionable recovery steps ([02f3d52](https://github.com/MyFanss/MyFans/commit/02f3d525e1fc8f514e92c780299c1916c03b5694)) -* harden backend secret management ([#350](https://github.com/MyFanss/MyFans/issues/350)) ([2022919](https://github.com/MyFanss/MyFans/commit/2022919c83aad39d50fccb3b9401bd1c4ab7f495)) -* **idempotency:** document TTL & harden collision behavior ([40e1224](https://github.com/MyFanss/MyFans/commit/40e1224db6219c7d24193eb04cba23208d7c5124)) -* implement authentication module with registration, login, and JWT strategy ([4027b86](https://github.com/MyFanss/MyFans/commit/4027b8609a05c65124bb3f34a1b2db9c3526b99a)) -* implement Backend API SLA metrics instrumentation ([8124c45](https://github.com/MyFanss/MyFans/commit/8124c45027d803e23e207f6bc41569822298a52c)) -* implement Backend API SLA metrics instrumentation ([c61c268](https://github.com/MyFanss/MyFans/commit/c61c2680edd68f822f406df214204e2a74870efd)) -* implement Backend OpenAPI coverage completion ([21874f1](https://github.com/MyFanss/MyFans/commit/21874f10eebb15c4944a572803a172d64e26765c)) -* implement backend plan metadata sync with chain ([c8287db](https://github.com/MyFanss/MyFans/commit/c8287dbb83353c67990cfb36764c224aae6790fc)) -* implement consistent admin pattern and tests ([#72](https://github.com/MyFanss/MyFans/issues/72)) ([25e4967](https://github.com/MyFanss/MyFans/commit/25e496764e857ba1a3905155711518cfc19691f2)) -* implement content pricing and creator config ([#64](https://github.com/MyFanss/MyFans/issues/64)) ([5099f26](https://github.com/MyFanss/MyFans/commit/5099f26f77cd9fcd458c5926f55745d27c781246)) -* implement creator dashboard shell with sidebar navigation ([8f1171a](https://github.com/MyFanss/MyFans/commit/8f1171a2b1a02d87e99d2631c7032f158f864425)) -* implement cursor-based pagination, verify request ID logging, validate social URLs, and add CI caching ([bbac3c5](https://github.com/MyFanss/MyFans/commit/bbac3c577a6429affa2dbb886199761c2ec5e935)), closes [#598](https://github.com/MyFanss/MyFans/issues/598) [#708](https://github.com/MyFanss/MyFans/issues/708) [#597](https://github.com/MyFanss/MyFans/issues/597) [#595](https://github.com/MyFanss/MyFans/issues/595) -* implement E2E tests and auth flow for backend ([#47](https://github.com/MyFanss/MyFans/issues/47)) ([b6da80e](https://github.com/MyFanss/MyFans/commit/b6da80efa71682368b1aadf15934799d861060c3)) -* implement ERC20-style token flow (closes [#274](https://github.com/MyFanss/MyFans/issues/274)) ([ef2a2a2](https://github.com/MyFanss/MyFans/commit/ef2a2a20026b6741c7405eb0de3683dfe4c80f47)) -* Implement Follow and Unfollow Creators Functionality ([c7ebefb](https://github.com/MyFanss/MyFans/commit/c7ebefbf05cd509ac7824b100338e546ffb851f7)) -* Implement frontend network status indicator ([26d7c06](https://github.com/MyFanss/MyFans/commit/26d7c06f26904e3276d58ddb6d03c0adc40f1dd9)), closes [#409](https://github.com/MyFanss/MyFans/issues/409) -* implement frontend renew subscription action ([381067c](https://github.com/MyFanss/MyFans/commit/381067c191a138bf269df8026f3e90c810cd7851)) -* Implement frontend telemetry consent UX ([1e5bd59](https://github.com/MyFanss/MyFans/commit/1e5bd59b83220f229c6c1c5df9559d2a3abea055)), closes [#421](https://github.com/MyFanss/MyFans/issues/421) -* Implement locale-ready date and currency formatting ([#401](https://github.com/MyFanss/MyFans/issues/401)) ([20b0c33](https://github.com/MyFanss/MyFans/commit/20b0c338e4b630e02a21b45553a10b8077607758)) -* Implement modal accessibility improvements ([#417](https://github.com/MyFanss/MyFans/issues/417)) ([cf95f89](https://github.com/MyFanss/MyFans/commit/cf95f8907cb10563e2c2abd86228b6714932c825)) -* implement multi-token support for subscriptions ([#76](https://github.com/MyFanss/MyFans/issues/76)) ([a40e261](https://github.com/MyFanss/MyFans/commit/a40e26159dd75fe23f658d5848ee822e687cc843)) -* Implement MyfansToken contract - init and admin (Issue [#54](https://github.com/MyFanss/MyFans/issues/54)) ([1290317](https://github.com/MyFanss/MyFans/commit/1290317bf0ef76603665b9bd7b821dfc6f07e38f)) -* implement platform fee deduction on creator deposits ([2c26a3c](https://github.com/MyFanss/MyFans/commit/2c26a3cbcad785433ef11b9d85716f98653c4b78)) -* implement refresh token functionality with JWT rotation and logout capabilities ([302e25e](https://github.com/MyFanss/MyFans/commit/302e25ee003ccbc605da90cc735a2b1da6953cc0)) -* implement request ID and correlation ID tracing ([955b323](https://github.com/MyFanss/MyFans/commit/955b323412eff727396aa6ec1b43abeb38da25b6)) -* implement responsive layout for creator dashboard ([#225](https://github.com/MyFanss/MyFans/issues/225)) ([ed18837](https://github.com/MyFanss/MyFans/commit/ed1883792758853a2cf50c5e3b95b3fd0921731b)) -* implement responsive layout for creator dashboard (issue [#225](https://github.com/MyFanss/MyFans/issues/225)) ([f172825](https://github.com/MyFanss/MyFans/commit/f1728254cf7928f120c49d761a6381ac2f237f0a)) -* implement reusable pagination pattern for list endpoints ([180dacd](https://github.com/MyFanss/MyFans/commit/180dacd55b3d5d5f6a6ccfa10db7ec920ea82e9c)) -* implement RPC metrics service ([#718](https://github.com/MyFanss/MyFans/issues/718)) and creator route prefetch on hover ([#697](https://github.com/MyFanss/MyFans/issues/697)) ([3397d01](https://github.com/MyFanss/MyFans/commit/3397d01a1d78b6795a60cec3a6716b3390b5ae17)) -* Implement settings page ([8161772](https://github.com/MyFanss/MyFans/commit/8161772a435334478ef52af2e2a4f35a77610348)) -* implement subscribe logic and subscription data storage in MyFans contract ([0f6fba8](https://github.com/MyFanss/MyFans/commit/0f6fba88c2502a23e7879c7f2000c785c55504c0)) -* implement subscription renewal failure handling ([#733](https://github.com/MyFanss/MyFans/issues/733)) ([8181e93](https://github.com/MyFanss/MyFans/commit/8181e93e2c556163c84da9b5035200a7aa187a54)) -* implement token transfer indexer module ([df7c14d](https://github.com/MyFanss/MyFans/commit/df7c14d0a3ca4c90f44639136e3a7eb8edd3323e)) -* implement user management module with create, update, and delete functionalities ([df3e8f6](https://github.com/MyFanss/MyFans/commit/df3e8f6e06dc714d0468c1b0ecca06e4bce9280a)) -* implement wallet selection modal for Stellar/Soroban ([8746a66](https://github.com/MyFanss/MyFans/commit/8746a66e2f082b792a21485a7dd929a9820b86e1)) -* improve tx failure recovery with guided UI and failure-type detection ([3c94b62](https://github.com/MyFanss/MyFans/commit/3c94b62ce899ea8cfc84444d0671af82fb09dff2)) -* initialization and cli ([292d015](https://github.com/MyFanss/MyFans/commit/292d015b84b02c4faa553685f9c60c08768f5263)) -* initialization and cli ([524cc54](https://github.com/MyFanss/MyFans/commit/524cc548a25785090413a392e363ac30d5a0fc48)) -* initialize Soroban contracts workspace with stub token contract ([e957d11](https://github.com/MyFanss/MyFans/commit/e957d11f965ef51078d333966cdae25f090910f0)) -* integrate TransactionProgress component into CheckoutFlow and add tests ([de4a17c](https://github.com/MyFanss/MyFans/commit/de4a17cbb8cd056e0206fd3b49d21c317f65c622)) -* introduce internal domain events for module decoupling ([143066c](https://github.com/MyFanss/MyFans/commit/143066c553bf537c8c2f4339ae0a868dace7419a)) -* **logging:** redact PII and secrets from logs ([e04b42c](https://github.com/MyFanss/MyFans/commit/e04b42c4597ac2eb67f8d21d5d813b09202e9c5b)), closes [#717](https://github.com/MyFanss/MyFans/issues/717) -* make creator dashboard mobile responsive ([69bd4e6](https://github.com/MyFanss/MyFans/commit/69bd4e6c684184a41d81fb6ff7b4c3830c0f4329)) -* make IMyFans trait public and add subscribe and get_subscription_details methods ([4a8f367](https://github.com/MyFanss/MyFans/commit/4a8f36747d294d3824b0b676615eea994e495dbf)) -* **moderation:** add content moderation flags model and admin endpoints ([#353](https://github.com/MyFanss/MyFans/issues/353)) ([1c9b00a](https://github.com/MyFanss/MyFans/commit/1c9b00a9de299d65700ed2c4d56e73a358d5fd49)) -* normalize subscription expiry ledger calculations ([#288](https://github.com/MyFanss/MyFans/issues/288)) ([b5a7ffe](https://github.com/MyFanss/MyFans/commit/b5a7ffe4c703031c1968e9e9a276e807f500265e)) -* optimistic updates for content metadata actions ([a343a4a](https://github.com/MyFanss/MyFans/commit/a343a4a188a86408afcb4ac11385c535594c06fb)) -* **posts:** soft delete with audit trail ([a166596](https://github.com/MyFanss/MyFans/commit/a166596f215ddaa145fe1a56a22c9a62f0b47bdf)), closes [#732](https://github.com/MyFanss/MyFans/issues/732) -* profile settings for fans and creators with API + validation ([18319f8](https://github.com/MyFanss/MyFans/commit/18319f8e0f0527d8e2afb40536339066adf36160)) -* **profile:** complete profile page implementation ([dee35ad](https://github.com/MyFanss/MyFans/commit/dee35adf26f8e1d9fb67f22a05d2735baf43bdee)) -* publish Postman / OpenAPI collection at /api-docs ([#736](https://github.com/MyFanss/MyFans/issues/736)) ([1938b45](https://github.com/MyFanss/MyFans/commit/1938b45a83986e4b17f1f1471bd57f500130c611)) -* refactor nav IA with role-aware config, collapsible sidebar, and usability tests ([3b3d28d](https://github.com/MyFanss/MyFans/commit/3b3d28de1923b3859d23d5f0b668908dc61c374a)) -* referral/invite codes ([#743](https://github.com/MyFanss/MyFans/issues/743)) ([3503413](https://github.com/MyFanss/MyFans/commit/350341394cd04ef0393a4cc11e6de349b4572f73)) -* register interfaces and mocks in lib module tree ([a8a677b](https://github.com/MyFanss/MyFans/commit/a8a677bebf1713fcc89e1551148eed58320aacf4)) -* reinitialized ([2c62b94](https://github.com/MyFanss/MyFans/commit/2c62b9420d907d34d1342326e617291e445d47ff)) -* reinitialized ([f0462b0](https://github.com/MyFanss/MyFans/commit/f0462b08090aa6e6f70869840e69f4d1dd99e421)) -* resolve issues [#728](https://github.com/MyFanss/MyFans/issues/728) [#730](https://github.com/MyFanss/MyFans/issues/730) [#731](https://github.com/MyFanss/MyFans/issues/731) [#740](https://github.com/MyFanss/MyFans/issues/740) ([66977ca](https://github.com/MyFanss/MyFans/commit/66977ca5016b406b2acbe938514ae495909f42a4)) -* **scripts:** add --dry-run flag to deploy script ([c42c306](https://github.com/MyFanss/MyFans/commit/c42c306c5ab11df6b22eb035c8dbd6e46dd701ab)), closes [#306](https://github.com/MyFanss/MyFans/issues/306) -* **security:** CSRF double-submit cookie strategy for BFF ([cac88a9](https://github.com/MyFanss/MyFans/commit/cac88a90c991f05b7b219aab9cb4ca48986d7d90)) -* skeleton loading states for major pages ([358e2cd](https://github.com/MyFanss/MyFans/commit/358e2cd6c6771865b5e08c839da8a1cc8ee735e5)) -* skeleton loading states for major pages ([4c2f452](https://github.com/MyFanss/MyFans/commit/4c2f452b8cc74ef2c34aea7d08b2fb0bb5e61c21)) -* **social-link:** add URL and domain validation with unit tests ([88fed4f](https://github.com/MyFanss/MyFans/commit/88fed4faafdf60dc4ed5822bc3d23eff8b77690b)) -* Soft Delete Audit ([9d5bc39](https://github.com/MyFanss/MyFans/commit/9d5bc39ca2e98aa14822f5cddd1d938e224659f9)) -* standardize API error response format across all endpoints ([#340](https://github.com/MyFanss/MyFans/issues/340)) ([6cc7d6e](https://github.com/MyFanss/MyFans/commit/6cc7d6ef046f1b4a7394f7410cc96ab2a349490e)) -* standardize deployed contract env vars with backward-compatible aliases ([c3cf58d](https://github.com/MyFanss/MyFans/commit/c3cf58d0adbe3ed6c250b443ad304ad98fa76ee0)) -* Subscription List Filter by Status & Sorting ([253c562](https://github.com/MyFanss/MyFans/commit/253c56227c30398c2c9a7366c458d895557e23fa)) -* **subscription:** admin set_fee_bps with bounds and fee_updated event ([59b973a](https://github.com/MyFanss/MyFans/commit/59b973aa6aad0d46872bfabe1222c0511c3df744)) -* **subscription:** admin set_fee_recipient with validation and event ([7f68de4](https://github.com/MyFanss/MyFans/commit/7f68de4de6c620a97a16fb851dfcd459d3a345fa)) -* **subscriptions:** gated content access guard ([8a90715](https://github.com/MyFanss/MyFans/commit/8a90715e654f1443f9feadac6bfb70a6ebeb20a6)), closes [#gated-content-access](https://github.com/MyFanss/MyFans/issues/gated-content-access) -* **subscriptions:** GET fan–creator subscription state with auth ([5b71e66](https://github.com/MyFanss/MyFans/commit/5b71e66fb9670f62880b1aa25b0cc4737200bcc2)) -* unfollow fn done ([3e56a68](https://github.com/MyFanss/MyFans/commit/3e56a68c90b37232ccdf475c7ce76ca9f0ff2981)) -* **wallet:** return actionable errors on network mismatch ([e44f92c](https://github.com/MyFanss/MyFans/commit/e44f92c1018f2848bfc4fd36047215e14e2d645e)) -* webhook secret rotation with active + previous secret and cutoff strategy ([dec98eb](https://github.com/MyFanss/MyFans/commit/dec98eb4e3f513a42a3667adb25d25e67b116640)) +* [#74](https://github.com/Samuel1-ona/MyFans/issues/74)- Add creator earnings events and Add content access events ([ef9436d](https://github.com/Samuel1-ona/MyFans/commit/ef9436da03560b480ded423a7d5aced66f00a1c0)), closes [#74-](https://github.com/Samuel1-ona/MyFans/issues/74-) +* **#311:** standardize subscription event topics + fix treasury test ([e14703f](https://github.com/Samuel1-ona/MyFans/commit/e14703f68151f08a9cb1cb3454b3e6e56f7b7239)) +* **#311:** standardize subscription event topics for indexing ([9c9ffb2](https://github.com/Samuel1-ona/MyFans/commit/9c9ffb27d17ad38753092c1edf05a2223beb2a8e)), closes [#311](https://github.com/Samuel1-ona/MyFans/issues/311) +* **#745:** ledger time vs server clock skew handling ([2b873f3](https://github.com/Samuel1-ona/MyFans/commit/2b873f38a6f2853fe68791c7c2d4c7d21d2d92b5)), closes [#745](https://github.com/Samuel1-ona/MyFans/issues/745) +* add admin-controlled creator unregistration to creator-registry ([e7af8cb](https://github.com/Samuel1-ona/MyFans/commit/e7af8cb39a7982841b2439d3e8671c8f63a25eb6)) +* add API rate limiting with @nestjs/throttler ([b39f5b3](https://github.com/Samuel1-ona/MyFans/commit/b39f5b3fec9f313188d4c566f8ba30deaf1505b0)) +* add AvatarUpload component with validation and accessibility ([a30194f](https://github.com/Samuel1-ona/MyFans/commit/a30194fe22cd266422e7c24148dea16f930aec76)) +* add benefits, featured creators, trust indicators with lazy-load and a11y ([d403e8f](https://github.com/Samuel1-ona/MyFans/commit/d403e8fb35b34c5741e2be1ab54da757f19acd50)) +* add brun function ([309cdf0](https://github.com/Samuel1-ona/MyFans/commit/309cdf091ac40b556811a292325aeeb7d0db98ec)) +* Add content deletion functionality with strict permission controls ([8d2f335](https://github.com/Samuel1-ona/MyFans/commit/8d2f33503d650e920b7636d1ace268a8f44610bb)) +* Add content deletion functionality with strict permission controls and format code ([04f0ef6](https://github.com/Samuel1-ona/MyFans/commit/04f0ef64d874ca3f21165987f570ca0bdf14508e)) +* add content-access admin view; fix: update content-access docs for admin getter ([54dcce9](https://github.com/Samuel1-ona/MyFans/commit/54dcce9d3c61f6eb37c6b171648e57b53860355a)) +* add contract getter functions for plan metadata sync ([3b005ab](https://github.com/Samuel1-ona/MyFans/commit/3b005ab78c49b82472d487ce2a7df080fd632459)) +* add creator plan creation flow ([c0f4042](https://github.com/Samuel1-ona/MyFans/commit/c0f4042506e633cfd474ef034b075241a9fd4e86)) +* add creator plan creation flow ([5ab9ef0](https://github.com/Samuel1-ona/MyFans/commit/5ab9ef0d1ba59f91dfb3348c96718878dc095860)) +* add creator verification functionality to registry ([a5d9828](https://github.com/Samuel1-ona/MyFans/commit/a5d9828e8a4980d22aa489bfe9508bf053502e6a)) +* add creator_id update support in creator-registry; fix: add tests for creator_id update auth and not-registered handling ([194e2c3](https://github.com/Samuel1-ona/MyFans/commit/194e2c3e227f41d48a18b6fef1491a4c93252538)) +* add database connection resiliency ([#355](https://github.com/Samuel1-ona/MyFans/issues/355)) ([44882f6](https://github.com/Samuel1-ona/MyFans/commit/44882f633b108811a41ac8c5180ab43f4765dde3)) +* add duplicate earnings prevention via payment_reference idempotency key ([7651ac4](https://github.com/Samuel1-ona/MyFans/commit/7651ac46ee831306aa4553084548fd8e1bfdd04d)) +* add e2e test for secure account deletion flow (closes [#418](https://github.com/Samuel1-ona/MyFans/issues/418)) ([cc27b80](https://github.com/Samuel1-ona/MyFans/commit/cc27b80613402658fd72713551a6ddbacc8a240c)) +* Add E2E tests for cancel/renew subscription flow ([#405](https://github.com/Samuel1-ona/MyFans/issues/405)) ([c697a22](https://github.com/Samuel1-ona/MyFans/commit/c697a2246e9b6e3675f3b66f67c44abd3ae4bbc2)) +* add endpoint to list creator subscribers with pagination and status filtering ([a6e78e6](https://github.com/Samuel1-ona/MyFans/commit/a6e78e638b28fdc98c013517ce443a37e9a62d05)) +* add ERC20-style transfer and allowance to myfans-token ([f56c66d](https://github.com/Samuel1-ona/MyFans/commit/f56c66d83ecc7ccfb1c71a74c61d09764c7e5883)) +* Add error boundaries and global error UI ([#223](https://github.com/Samuel1-ona/MyFans/issues/223)) ([fb7b2c7](https://github.com/Samuel1-ona/MyFans/commit/fb7b2c717875833a8bb50b244c6c2ac6f39514ce)) +* add favorites/bookmarks for creators with session sync ([#419](https://github.com/Samuel1-ona/MyFans/issues/419)) ([8dad3d4](https://github.com/Samuel1-ona/MyFans/commit/8dad3d44f3e820311fa445dabab4a9be62bf96c7)) +* add feature flags for new flows ([f0d16e6](https://github.com/Samuel1-ona/MyFans/commit/f0d16e65a8c438fa1715d4c27ccf0ca865e54055)) +* add form-validation-unification spec requirements ([15344ed](https://github.com/Samuel1-ona/MyFans/commit/15344edcd9e41cd82ab6f7cba46198cf0fec31ee)) +* add frontend feature flag support ([#420](https://github.com/Samuel1-ona/MyFans/issues/420)) ([4e806fe](https://github.com/Samuel1-ona/MyFans/commit/4e806feeeee0e6a82362c64bfc0bbac0cf4a8a19)) +* add frontend release checklist and QA template ([#423](https://github.com/Samuel1-ona/MyFans/issues/423)) ([62ff1d0](https://github.com/Samuel1-ona/MyFans/commit/62ff1d0791ceaae99e562c910bcda84be191dd79)) +* add image upload component with progress tracking and validation ([cc72045](https://github.com/Samuel1-ona/MyFans/commit/cc720454249ac17d7706c7e5ed4f7c44e9b57ce7)) +* add integration tests for subscribe functionality and edge cases ([6d669cd](https://github.com/Samuel1-ona/MyFans/commit/6d669cd2306ef303702d0926aee2a47855be21b2)) +* add mock ERC20 contract for testing subscription payments ([91ad596](https://github.com/Samuel1-ona/MyFans/commit/91ad596f79012204ae263f4817c8fd9e542feacb)) +* add notification channel preferences form with per-event toggles ([f165957](https://github.com/Samuel1-ona/MyFans/commit/f1659577e4e51b5319302e0762fa0e914a1288f9)) +* add notification inbox UI with backend API integration ([da59748](https://github.com/Samuel1-ona/MyFans/commit/da59748e3814f5fee7d1fe71cb8a935433944021)) +* Add pending status components and client for issue [#83](https://github.com/Samuel1-ona/MyFans/issues/83) ([123624c](https://github.com/Samuel1-ona/MyFans/commit/123624cae0e1bd1090db6741954580d5db29fc61)) +* Add PII and secret redaction to logging ([#232](https://github.com/Samuel1-ona/MyFans/issues/232)) ([83c7770](https://github.com/Samuel1-ona/MyFans/commit/83c77703fae8cee939dc55e694a23e2df1381c2d)) +* add rate limiting ([23f4d1b](https://github.com/Samuel1-ona/MyFans/commit/23f4d1b47886175f8e7c1d8b42468566e9a1ada2)) +* add retry-banner spec requirements ([8b3d9b6](https://github.com/Samuel1-ona/MyFans/commit/8b3d9b6510812de6a35d598a141efabc96cc61fa)) +* add reusable subscription status badges ([83cb9ad](https://github.com/Samuel1-ona/MyFans/commit/83cb9ad75c0b87bda163c4842ff964ed3476faeb)) +* add secure account deletion UI with warnings and re-auth confirmation ([b63e790](https://github.com/Samuel1-ona/MyFans/commit/b63e79059416b4c6898fdfee595e9de6615086bb)) +* add security audit to backend ([769d2d2](https://github.com/Samuel1-ona/MyFans/commit/769d2d2c62221c833723ad7f7be3434d7699ccc9)) +* add set_autorenew function ([7826ef5](https://github.com/Samuel1-ona/MyFans/commit/7826ef5207e25f07ba592f1016bbbac816016136)) +* add Soroban RPC health check endpoints ([05b4cee](https://github.com/Samuel1-ona/MyFans/commit/05b4cee44d83eff46121271686a2eb4832b6c0b2)) +* add startup probes for DB and RPC ([360d8a2](https://github.com/Samuel1-ona/MyFans/commit/360d8a217e2c22e3da735f85cf5d26cef6feb070)) +* Add Stellar SDK integration and E2E tests ([0622ada](https://github.com/Samuel1-ona/MyFans/commit/0622adac51dbad7751e7e16f942378e533359920)) +* add subscribe confirmation UI with wallet signing and tx polling ([a45ef2a](https://github.com/Samuel1-ona/MyFans/commit/a45ef2a7bf60d53c124b129f75569fa48de61b01)) +* add subscription fee handling ([#62](https://github.com/Samuel1-ona/MyFans/issues/62)) ([2909782](https://github.com/Samuel1-ona/MyFans/commit/29097824b5db10ab857baa4786b5fd1e444d5da9)) +* add subscription history export spec requirements ([4891611](https://github.com/Samuel1-ona/MyFans/commit/4891611a3061423b94d4f9bff4b6734f4cd92e22)) +* add subscription plan update support ([#284](https://github.com/Samuel1-ona/MyFans/issues/284)) ([5852ac8](https://github.com/Samuel1-ona/MyFans/commit/5852ac8b21f1e6e061fdc1bc3689b7a03ac803a3)) +* add subscription renewal helper ([#285](https://github.com/Samuel1-ona/MyFans/issues/285)) ([d264121](https://github.com/Samuel1-ona/MyFans/commit/d264121a7fec0844895fc777441da258f113f4b7)) +* add total supply invariants test suite ([#281](https://github.com/Samuel1-ona/MyFans/issues/281)) ([8efb2ad](https://github.com/Samuel1-ona/MyFans/commit/8efb2adc1daf3a0ddfcf0a09b343cf036421053f)) +* add wallet address column to creators entity ([3bb4b5e](https://github.com/Samuel1-ona/MyFans/commit/3bb4b5ea6504ca2ed058ba95855530b16147618d)) +* add wallet address tests ([51a1cbb](https://github.com/Samuel1-ona/MyFans/commit/51a1cbb18bedb10ae063c16f87347e02294b4a51)) +* added Pagination standard (cursor vs offset) ([e9728e5](https://github.com/Samuel1-ona/MyFans/commit/e9728e5f9bf589d0193b6ff367054289e9b6602f)) +* added the comment module ([4b6799a](https://github.com/Samuel1-ona/MyFans/commit/4b6799adbc7503e1f95acaadee57da42a6c534ae)) +* added the comment module ([d409d72](https://github.com/Samuel1-ona/MyFans/commit/d409d72145316a713f2f2ef2f91b12b8d653a5a6)) +* added the follow module ([37beb14](https://github.com/Samuel1-ona/MyFans/commit/37beb14cb3bbd3a343bacaa8f493d67a7239ddfd)) +* added the message and room module ([93d899c](https://github.com/Samuel1-ona/MyFans/commit/93d899c237821f76fbbba2fdaa4ce02148264ffc)) +* added the messages list feature ([e7ccc1a](https://github.com/Samuel1-ona/MyFans/commit/e7ccc1ab7032fe2eb19d7b93f6dea1c607e076a7)) +* added the payments feature ([8dec64c](https://github.com/Samuel1-ona/MyFans/commit/8dec64c1531089ecab9997f05a0db98adbd392d6)) +* added the post crud feature ([71e2837](https://github.com/Samuel1-ona/MyFans/commit/71e28376620e0c63bd20ebe92a728c824a92da4e)) +* added the redis cache feature ([48fad8d](https://github.com/Samuel1-ona/MyFans/commit/48fad8da080334ec35519241ceaadb8fec76b7b0)) +* **analytics:** payment analytics endpoints ([6605436](https://github.com/Samuel1-ona/MyFans/commit/6605436e02fa6a0644fb1184e3b60d70ec9d8682)), closes [#payment-analytics](https://github.com/Samuel1-ona/MyFans/issues/payment-analytics) +* **auth:** wallet signature challenge endpoints ([dc3f1a1](https://github.com/Samuel1-ona/MyFans/commit/dc3f1a143001ee3eb86a4a79b33dffbbf0e8bfab)), closes [#wallet-challenge-auth](https://github.com/Samuel1-ona/MyFans/issues/wallet-challenge-auth) +* backend contract health checks against CI deployment outputs ([4dcb7c5](https://github.com/Samuel1-ona/MyFans/commit/4dcb7c5ffc1f5e0c0e1bf91a2fbef36a18bc62a9)) +* **backend:** add getLatestLedgerSequence & getNetworkEvents to SorobanRpcService; guard poller behind feature flag ([36ed0db](https://github.com/Samuel1-ona/MyFans/commit/36ed0dba4da16ff38a5a39e31e4e8e8a5e3bbde2)) +* **backend:** add health check endpoints for monitoring and load balancers ([1a7f2fb](https://github.com/Samuel1-ona/MyFans/commit/1a7f2fb262add25430e6eaac13fccb7c100ab5a3)) +* **backend:** add logging dependencies and configuration ([9901dc4](https://github.com/Samuel1-ona/MyFans/commit/9901dc413112ad48a9661485835c0b102c279ef5)) +* **backend:** add logging middleware with correlation id and redaction ([e1c8ef1](https://github.com/Samuel1-ona/MyFans/commit/e1c8ef1e3d1cfc2c45b1659439bf581c8df29859)) +* **backend:** add queue metrics and structured job logging ([5e4e438](https://github.com/Samuel1-ona/MyFans/commit/5e4e438ab77321fb69598341ee50eb4f6532dee9)) +* **backend:** add Soroban RPC retry/backoff utility with circuit breaker ([#343](https://github.com/Samuel1-ona/MyFans/issues/343)) ([769efa4](https://github.com/Samuel1-ona/MyFans/commit/769efa441a11173ae95a0cd393c6283c1eea8717)) +* **backend:** auto-load contract IDs from deploy artifacts ([79e60f1](https://github.com/Samuel1-ona/MyFans/commit/79e60f125c58d0e9c14c3d453bd165e8cc882753)) +* **backend:** creator dashboard endpoint for revenue and subscriber metrics ([57c5342](https://github.com/Samuel1-ona/MyFans/commit/57c5342cf6e3a6e5974541acdc7d803c5dc8516c)) +* **backend:** harden CreatorsService with Logger and resilient edges ([ae5e418](https://github.com/Samuel1-ona/MyFans/commit/ae5e418508619c67f49773b51829bf2a0c956e39)) +* **backend:** validate Soroban env at startup with tests ([949c855](https://github.com/Samuel1-ona/MyFans/commit/949c8550fef280d9aa28c03aaf93e052c246fc92)) +* bootstrap runtime contract config ([c3e09b3](https://github.com/Samuel1-ona/MyFans/commit/c3e09b34e80ad818a41b4edd8cea39b676929ef9)) +* build a deprecation middleware ([726ef5c](https://github.com/Samuel1-ona/MyFans/commit/726ef5cc65d5b7b5a45a4dbdd05a396a40225d04)) +* **cards:** create reusable card UI component library ([ad58df4](https://github.com/Samuel1-ona/MyFans/commit/ad58df4ec805f147b2465f4be818f5f14cb04854)) +* commit anything ([dc9c147](https://github.com/Samuel1-ona/MyFans/commit/dc9c1476453dcdc257b36685dee6f36e73fb39dd)) +* complete contract interface docs generation [#301](https://github.com/Samuel1-ona/MyFans/issues/301) ([59c929a](https://github.com/Samuel1-ona/MyFans/commit/59c929a2ea437935343f7caced2a9039a5fd0eee)) +* **content:** add content metadata CRUD API ([#333](https://github.com/Samuel1-ona/MyFans/issues/333)) ([0c42d45](https://github.com/Samuel1-ona/MyFans/commit/0c42d454d6b949894e6e603ec98002cf07af2183)) +* **contract:** add admin token metadata update (set_metadata) ([aef69dd](https://github.com/Samuel1-ona/MyFans/commit/aef69dd7d94198cd299775fc53b7f324ac21dba7)), closes [#280](https://github.com/Samuel1-ona/MyFans/issues/280) +* **contract:** add get_content_info catalog query ([#312](https://github.com/Samuel1-ona/MyFans/issues/312)) ([9e7cec3](https://github.com/Samuel1-ona/MyFans/commit/9e7cec33d8ec70b0fb4928fd01c27fcfa0ebe078)) +* **contract:** emit cancel reason code in subscription events ([a70a291](https://github.com/Samuel1-ona/MyFans/commit/a70a291efe4edc3398737813b99c0bf0be79e0a1)), closes [#286](https://github.com/Samuel1-ona/MyFans/issues/286) +* **contract:** enforce content price bounds and validation ([#294](https://github.com/Samuel1-ona/MyFans/issues/294)) ([4e7d549](https://github.com/Samuel1-ona/MyFans/commit/4e7d5492587d490966ecbf0c62195f4ad023d842)) +* **contract:** enforce mint admin authorization (closes [#276](https://github.com/Samuel1-ona/MyFans/issues/276)) ([2e03cf5](https://github.com/Samuel1-ona/MyFans/commit/2e03cf53560ad7e7f4a56b0209bab874d7c53c4a)) +* **contract:** release checklist automation linked to docs/release/ ([4fd298c](https://github.com/Samuel1-ona/MyFans/commit/4fd298c2787de892129ee6e6462f1e3530a5a289)) +* **contracts:** add create_subscription with duration ledgers entity constraints matching Issue 60 requirements tracking creator bounds smoothly ([4657605](https://github.com/Samuel1-ona/MyFans/commit/46576050096cad6a6155027d358a13ced3202376)) +* **contract:** shared Env fixtures for cross-contract integration tests ([9913d9e](https://github.com/Samuel1-ona/MyFans/commit/9913d9ed4e623d80203e7be5525353b935ccc009)) +* **contracts:** implement creator-registry stub satisfying Issue 58 ([d3a9111](https://github.com/Samuel1-ona/MyFans/commit/d3a9111123379a830ab779d9aee57831b4d6c031)) +* **cors:** implement CORS configuration and security headers middleware ([1df68d0](https://github.com/Samuel1-ona/MyFans/commit/1df68d06fffbce7d3565b5bc2c171c82bf941849)) +* Create gated content viewing page (Issue [#97](https://github.com/Samuel1-ona/MyFans/issues/97)) ([6ce8009](https://github.com/Samuel1-ona/MyFans/commit/6ce80098b4126a66e6ec429172018d847c7a6368)) +* Created transaction page ([272f671](https://github.com/Samuel1-ona/MyFans/commit/272f6712930125013e91f6fb416c2c6ab7865d7a)) +* **dashboard:** improve mobile and tablet responsiveness for creator dashboard ([8410cb0](https://github.com/Samuel1-ona/MyFans/commit/8410cb0e6bd2431f9a6d522c8cfaef33412c1c9b)) +* **db:** add baseline migrations for core entities ([d38ee4d](https://github.com/Samuel1-ona/MyFans/commit/d38ee4d639640f3913c908911830ad208788c89a)) +* **docs,ci:** implement platform governance and QA tooling ([3f34818](https://github.com/Samuel1-ona/MyFans/commit/3f348188232f2e535f4df63a330f25c94963ba06)), closes [#746](https://github.com/Samuel1-ona/MyFans/issues/746) [#747](https://github.com/Samuel1-ona/MyFans/issues/747) [#749](https://github.com/Samuel1-ona/MyFans/issues/749) [#748](https://github.com/Samuel1-ona/MyFans/issues/748) [#746](https://github.com/Samuel1-ona/MyFans/issues/746) [#747](https://github.com/Samuel1-ona/MyFans/issues/747) [#748](https://github.com/Samuel1-ona/MyFans/issues/748) [#749](https://github.com/Samuel1-ona/MyFans/issues/749) +* **earnings:** add unauthorized record tests ([#319](https://github.com/Samuel1-ona/MyFans/issues/319)) ([0a0b763](https://github.com/Samuel1-ona/MyFans/commit/0a0b763a19f3a584f27cfe398d9534225e97db59)) +* emit renewal-failure event/webhook on subscription renewal fail ([#211](https://github.com/Samuel1-ona/MyFans/issues/211)) ([3303e4f](https://github.com/Samuel1-ona/MyFans/commit/3303e4ff9fcece0d545768baef4e60f9c9000995)) +* emit withdraw event with creator, amount, and token ([adb7fec](https://github.com/Samuel1-ona/MyFans/commit/adb7fec89703f73ce79374be8b60b8d15a8ed5e3)) +* enforce transfer validation and strengthen subscription/earnings initialization guards ([b306492](https://github.com/Samuel1-ona/MyFans/commit/b306492e94f54e28aac4c34c8fb0c0d43f1724f3)) +* enhance wallet connection resilience and UX ([3996191](https://github.com/Samuel1-ona/MyFans/commit/399619176e94e5d57b465333b867647c8d810cf9)) +* fix app.module.ts ([9468d45](https://github.com/Samuel1-ona/MyFans/commit/9468d4598764de8f2a3797ce92a46b2785babb6d)) +* fixed account creation problems closes [#1](https://github.com/Samuel1-ona/MyFans/issues/1) ([b3076d1](https://github.com/Samuel1-ona/MyFans/commit/b3076d16e65fd0891fdd79934d0a26f220465e4e)) +* fixed account creation problems closes [#1](https://github.com/Samuel1-ona/MyFans/issues/1) ([57ba88a](https://github.com/Samuel1-ona/MyFans/commit/57ba88ae236e9063d14b069975fc63d8b0447aea)) +* fixed account creation problems closes [#1](https://github.com/Samuel1-ona/MyFans/issues/1) ([0b02216](https://github.com/Samuel1-ona/MyFans/commit/0b0221614997c218cc6d40a5da54c7b419e70fa8)) +* fixed account creation problems closes [#1](https://github.com/Samuel1-ona/MyFans/issues/1) ([bf136b8](https://github.com/Samuel1-ona/MyFans/commit/bf136b8fd7d7bb39590c6c25b02e236777e56a5f)) +* fixed account creation problems closes [#1](https://github.com/Samuel1-ona/MyFans/issues/1) ([cce7f42](https://github.com/Samuel1-ona/MyFans/commit/cce7f42852a96da4a6ae6c4889783fb158d5de06)) +* follow fn done ([df96342](https://github.com/Samuel1-ona/MyFans/commit/df963420995b4889a54e61801e1006e724af566b)) +* **frontend:** add transaction status polling and history UI ([478ccdb](https://github.com/Samuel1-ona/MyFans/commit/478ccdb8d287c5e3fe72f01c76189e660fd30e5d)) +* **frontend:** creator onboarding — skip/resume, progress, tests ([7ee6e00](https://github.com/Samuel1-ona/MyFans/commit/7ee6e00a441b7f154fd21fe0834d857db71c1729)) +* **frontend:** fan onboarding quickstart with wallet and first sub flow ([a87a4ad](https://github.com/Samuel1-ona/MyFans/commit/a87a4add391f154734428bbcc76b2df1ebe4bb26)) +* **frontend:** standardize error copy with actionable recovery steps ([02f3d52](https://github.com/Samuel1-ona/MyFans/commit/02f3d525e1fc8f514e92c780299c1916c03b5694)) +* harden backend secret management ([#350](https://github.com/Samuel1-ona/MyFans/issues/350)) ([2022919](https://github.com/Samuel1-ona/MyFans/commit/2022919c83aad39d50fccb3b9401bd1c4ab7f495)) +* **idempotency:** document TTL & harden collision behavior ([40e1224](https://github.com/Samuel1-ona/MyFans/commit/40e1224db6219c7d24193eb04cba23208d7c5124)) +* implement authentication module with registration, login, and JWT strategy ([4027b86](https://github.com/Samuel1-ona/MyFans/commit/4027b8609a05c65124bb3f34a1b2db9c3526b99a)) +* implement Backend API SLA metrics instrumentation ([8124c45](https://github.com/Samuel1-ona/MyFans/commit/8124c45027d803e23e207f6bc41569822298a52c)) +* implement Backend API SLA metrics instrumentation ([c61c268](https://github.com/Samuel1-ona/MyFans/commit/c61c2680edd68f822f406df214204e2a74870efd)) +* implement Backend OpenAPI coverage completion ([21874f1](https://github.com/Samuel1-ona/MyFans/commit/21874f10eebb15c4944a572803a172d64e26765c)) +* implement backend plan metadata sync with chain ([c8287db](https://github.com/Samuel1-ona/MyFans/commit/c8287dbb83353c67990cfb36764c224aae6790fc)) +* implement consistent admin pattern and tests ([#72](https://github.com/Samuel1-ona/MyFans/issues/72)) ([25e4967](https://github.com/Samuel1-ona/MyFans/commit/25e496764e857ba1a3905155711518cfc19691f2)) +* implement content pricing and creator config ([#64](https://github.com/Samuel1-ona/MyFans/issues/64)) ([5099f26](https://github.com/Samuel1-ona/MyFans/commit/5099f26f77cd9fcd458c5926f55745d27c781246)) +* implement creator dashboard shell with sidebar navigation ([8f1171a](https://github.com/Samuel1-ona/MyFans/commit/8f1171a2b1a02d87e99d2631c7032f158f864425)) +* implement cursor-based pagination, verify request ID logging, validate social URLs, and add CI caching ([bbac3c5](https://github.com/Samuel1-ona/MyFans/commit/bbac3c577a6429affa2dbb886199761c2ec5e935)), closes [#598](https://github.com/Samuel1-ona/MyFans/issues/598) [#708](https://github.com/Samuel1-ona/MyFans/issues/708) [#597](https://github.com/Samuel1-ona/MyFans/issues/597) [#595](https://github.com/Samuel1-ona/MyFans/issues/595) +* implement E2E tests and auth flow for backend ([#47](https://github.com/Samuel1-ona/MyFans/issues/47)) ([b6da80e](https://github.com/Samuel1-ona/MyFans/commit/b6da80efa71682368b1aadf15934799d861060c3)) +* implement ERC20-style token flow (closes [#274](https://github.com/Samuel1-ona/MyFans/issues/274)) ([ef2a2a2](https://github.com/Samuel1-ona/MyFans/commit/ef2a2a20026b6741c7405eb0de3683dfe4c80f47)) +* Implement Follow and Unfollow Creators Functionality ([c7ebefb](https://github.com/Samuel1-ona/MyFans/commit/c7ebefbf05cd509ac7824b100338e546ffb851f7)) +* Implement frontend network status indicator ([26d7c06](https://github.com/Samuel1-ona/MyFans/commit/26d7c06f26904e3276d58ddb6d03c0adc40f1dd9)), closes [#409](https://github.com/Samuel1-ona/MyFans/issues/409) +* implement frontend renew subscription action ([381067c](https://github.com/Samuel1-ona/MyFans/commit/381067c191a138bf269df8026f3e90c810cd7851)) +* Implement frontend telemetry consent UX ([1e5bd59](https://github.com/Samuel1-ona/MyFans/commit/1e5bd59b83220f229c6c1c5df9559d2a3abea055)), closes [#421](https://github.com/Samuel1-ona/MyFans/issues/421) +* Implement locale-ready date and currency formatting ([#401](https://github.com/Samuel1-ona/MyFans/issues/401)) ([20b0c33](https://github.com/Samuel1-ona/MyFans/commit/20b0c338e4b630e02a21b45553a10b8077607758)) +* Implement modal accessibility improvements ([#417](https://github.com/Samuel1-ona/MyFans/issues/417)) ([cf95f89](https://github.com/Samuel1-ona/MyFans/commit/cf95f8907cb10563e2c2abd86228b6714932c825)) +* implement multi-token support for subscriptions ([#76](https://github.com/Samuel1-ona/MyFans/issues/76)) ([a40e261](https://github.com/Samuel1-ona/MyFans/commit/a40e26159dd75fe23f658d5848ee822e687cc843)) +* Implement MyfansToken contract - init and admin (Issue [#54](https://github.com/Samuel1-ona/MyFans/issues/54)) ([1290317](https://github.com/Samuel1-ona/MyFans/commit/1290317bf0ef76603665b9bd7b821dfc6f07e38f)) +* implement platform fee deduction on creator deposits ([2c26a3c](https://github.com/Samuel1-ona/MyFans/commit/2c26a3cbcad785433ef11b9d85716f98653c4b78)) +* implement refresh token functionality with JWT rotation and logout capabilities ([302e25e](https://github.com/Samuel1-ona/MyFans/commit/302e25ee003ccbc605da90cc735a2b1da6953cc0)) +* implement request ID and correlation ID tracing ([955b323](https://github.com/Samuel1-ona/MyFans/commit/955b323412eff727396aa6ec1b43abeb38da25b6)) +* implement responsive layout for creator dashboard ([#225](https://github.com/Samuel1-ona/MyFans/issues/225)) ([ed18837](https://github.com/Samuel1-ona/MyFans/commit/ed1883792758853a2cf50c5e3b95b3fd0921731b)) +* implement responsive layout for creator dashboard (issue [#225](https://github.com/Samuel1-ona/MyFans/issues/225)) ([f172825](https://github.com/Samuel1-ona/MyFans/commit/f1728254cf7928f120c49d761a6381ac2f237f0a)) +* implement reusable pagination pattern for list endpoints ([180dacd](https://github.com/Samuel1-ona/MyFans/commit/180dacd55b3d5d5f6a6ccfa10db7ec920ea82e9c)) +* implement RPC metrics service ([#718](https://github.com/Samuel1-ona/MyFans/issues/718)) and creator route prefetch on hover ([#697](https://github.com/Samuel1-ona/MyFans/issues/697)) ([3397d01](https://github.com/Samuel1-ona/MyFans/commit/3397d01a1d78b6795a60cec3a6716b3390b5ae17)) +* Implement settings page ([8161772](https://github.com/Samuel1-ona/MyFans/commit/8161772a435334478ef52af2e2a4f35a77610348)) +* implement subscribe logic and subscription data storage in MyFans contract ([0f6fba8](https://github.com/Samuel1-ona/MyFans/commit/0f6fba88c2502a23e7879c7f2000c785c55504c0)) +* implement subscription renewal failure handling ([#733](https://github.com/Samuel1-ona/MyFans/issues/733)) ([8181e93](https://github.com/Samuel1-ona/MyFans/commit/8181e93e2c556163c84da9b5035200a7aa187a54)) +* implement token transfer indexer module ([df7c14d](https://github.com/Samuel1-ona/MyFans/commit/df7c14d0a3ca4c90f44639136e3a7eb8edd3323e)) +* implement user management module with create, update, and delete functionalities ([df3e8f6](https://github.com/Samuel1-ona/MyFans/commit/df3e8f6e06dc714d0468c1b0ecca06e4bce9280a)) +* implement wallet selection modal for Stellar/Soroban ([8746a66](https://github.com/Samuel1-ona/MyFans/commit/8746a66e2f082b792a21485a7dd929a9820b86e1)) +* improve tx failure recovery with guided UI and failure-type detection ([3c94b62](https://github.com/Samuel1-ona/MyFans/commit/3c94b62ce899ea8cfc84444d0671af82fb09dff2)) +* initialization and cli ([292d015](https://github.com/Samuel1-ona/MyFans/commit/292d015b84b02c4faa553685f9c60c08768f5263)) +* initialization and cli ([524cc54](https://github.com/Samuel1-ona/MyFans/commit/524cc548a25785090413a392e363ac30d5a0fc48)) +* initialize Soroban contracts workspace with stub token contract ([e957d11](https://github.com/Samuel1-ona/MyFans/commit/e957d11f965ef51078d333966cdae25f090910f0)) +* integrate TransactionProgress component into CheckoutFlow and add tests ([de4a17c](https://github.com/Samuel1-ona/MyFans/commit/de4a17cbb8cd056e0206fd3b49d21c317f65c622)) +* introduce internal domain events for module decoupling ([143066c](https://github.com/Samuel1-ona/MyFans/commit/143066c553bf537c8c2f4339ae0a868dace7419a)) +* **logging:** redact PII and secrets from logs ([e04b42c](https://github.com/Samuel1-ona/MyFans/commit/e04b42c4597ac2eb67f8d21d5d813b09202e9c5b)), closes [#717](https://github.com/Samuel1-ona/MyFans/issues/717) +* make creator dashboard mobile responsive ([69bd4e6](https://github.com/Samuel1-ona/MyFans/commit/69bd4e6c684184a41d81fb6ff7b4c3830c0f4329)) +* make IMyFans trait public and add subscribe and get_subscription_details methods ([4a8f367](https://github.com/Samuel1-ona/MyFans/commit/4a8f36747d294d3824b0b676615eea994e495dbf)) +* **moderation:** add content moderation flags model and admin endpoints ([#353](https://github.com/Samuel1-ona/MyFans/issues/353)) ([1c9b00a](https://github.com/Samuel1-ona/MyFans/commit/1c9b00a9de299d65700ed2c4d56e73a358d5fd49)) +* normalize subscription expiry ledger calculations ([#288](https://github.com/Samuel1-ona/MyFans/issues/288)) ([b5a7ffe](https://github.com/Samuel1-ona/MyFans/commit/b5a7ffe4c703031c1968e9e9a276e807f500265e)) +* optimistic updates for content metadata actions ([a343a4a](https://github.com/Samuel1-ona/MyFans/commit/a343a4a188a86408afcb4ac11385c535594c06fb)) +* **posts:** soft delete with audit trail ([a166596](https://github.com/Samuel1-ona/MyFans/commit/a166596f215ddaa145fe1a56a22c9a62f0b47bdf)), closes [#732](https://github.com/Samuel1-ona/MyFans/issues/732) +* profile settings for fans and creators with API + validation ([18319f8](https://github.com/Samuel1-ona/MyFans/commit/18319f8e0f0527d8e2afb40536339066adf36160)) +* **profile:** complete profile page implementation ([dee35ad](https://github.com/Samuel1-ona/MyFans/commit/dee35adf26f8e1d9fb67f22a05d2735baf43bdee)) +* publish Postman / OpenAPI collection at /api-docs ([#736](https://github.com/Samuel1-ona/MyFans/issues/736)) ([1938b45](https://github.com/Samuel1-ona/MyFans/commit/1938b45a83986e4b17f1f1471bd57f500130c611)) +* refactor nav IA with role-aware config, collapsible sidebar, and usability tests ([3b3d28d](https://github.com/Samuel1-ona/MyFans/commit/3b3d28de1923b3859d23d5f0b668908dc61c374a)) +* referral/invite codes ([#743](https://github.com/Samuel1-ona/MyFans/issues/743)) ([3503413](https://github.com/Samuel1-ona/MyFans/commit/350341394cd04ef0393a4cc11e6de349b4572f73)) +* register interfaces and mocks in lib module tree ([a8a677b](https://github.com/Samuel1-ona/MyFans/commit/a8a677bebf1713fcc89e1551148eed58320aacf4)) +* reinitialized ([2c62b94](https://github.com/Samuel1-ona/MyFans/commit/2c62b9420d907d34d1342326e617291e445d47ff)) +* reinitialized ([f0462b0](https://github.com/Samuel1-ona/MyFans/commit/f0462b08090aa6e6f70869840e69f4d1dd99e421)) +* resolve issues [#728](https://github.com/Samuel1-ona/MyFans/issues/728) [#730](https://github.com/Samuel1-ona/MyFans/issues/730) [#731](https://github.com/Samuel1-ona/MyFans/issues/731) [#740](https://github.com/Samuel1-ona/MyFans/issues/740) ([66977ca](https://github.com/Samuel1-ona/MyFans/commit/66977ca5016b406b2acbe938514ae495909f42a4)) +* **scripts:** add --dry-run flag to deploy script ([c42c306](https://github.com/Samuel1-ona/MyFans/commit/c42c306c5ab11df6b22eb035c8dbd6e46dd701ab)), closes [#306](https://github.com/Samuel1-ona/MyFans/issues/306) +* **security:** CSRF double-submit cookie strategy for BFF ([cac88a9](https://github.com/Samuel1-ona/MyFans/commit/cac88a90c991f05b7b219aab9cb4ca48986d7d90)) +* skeleton loading states for major pages ([358e2cd](https://github.com/Samuel1-ona/MyFans/commit/358e2cd6c6771865b5e08c839da8a1cc8ee735e5)) +* skeleton loading states for major pages ([4c2f452](https://github.com/Samuel1-ona/MyFans/commit/4c2f452b8cc74ef2c34aea7d08b2fb0bb5e61c21)) +* **social-link:** add URL and domain validation with unit tests ([88fed4f](https://github.com/Samuel1-ona/MyFans/commit/88fed4faafdf60dc4ed5822bc3d23eff8b77690b)) +* Soft Delete Audit ([9d5bc39](https://github.com/Samuel1-ona/MyFans/commit/9d5bc39ca2e98aa14822f5cddd1d938e224659f9)) +* standardize API error response format across all endpoints ([#340](https://github.com/Samuel1-ona/MyFans/issues/340)) ([6cc7d6e](https://github.com/Samuel1-ona/MyFans/commit/6cc7d6ef046f1b4a7394f7410cc96ab2a349490e)) +* standardize deployed contract env vars with backward-compatible aliases ([c3cf58d](https://github.com/Samuel1-ona/MyFans/commit/c3cf58d0adbe3ed6c250b443ad304ad98fa76ee0)) +* Subscription List Filter by Status & Sorting ([253c562](https://github.com/Samuel1-ona/MyFans/commit/253c56227c30398c2c9a7366c458d895557e23fa)) +* **subscription:** admin set_fee_bps with bounds and fee_updated event ([59b973a](https://github.com/Samuel1-ona/MyFans/commit/59b973aa6aad0d46872bfabe1222c0511c3df744)) +* **subscription:** admin set_fee_recipient with validation and event ([7f68de4](https://github.com/Samuel1-ona/MyFans/commit/7f68de4de6c620a97a16fb851dfcd459d3a345fa)) +* **subscriptions:** gated content access guard ([8a90715](https://github.com/Samuel1-ona/MyFans/commit/8a90715e654f1443f9feadac6bfb70a6ebeb20a6)), closes [#gated-content-access](https://github.com/Samuel1-ona/MyFans/issues/gated-content-access) +* **subscriptions:** GET fan–creator subscription state with auth ([5b71e66](https://github.com/Samuel1-ona/MyFans/commit/5b71e66fb9670f62880b1aa25b0cc4737200bcc2)) +* unfollow fn done ([3e56a68](https://github.com/Samuel1-ona/MyFans/commit/3e56a68c90b37232ccdf475c7ce76ca9f0ff2981)) +* **wallet:** return actionable errors on network mismatch ([e44f92c](https://github.com/Samuel1-ona/MyFans/commit/e44f92c1018f2848bfc4fd36047215e14e2d645e)) +* webhook secret rotation with active + previous secret and cutoff strategy ([dec98eb](https://github.com/Samuel1-ona/MyFans/commit/dec98eb4e3f513a42a3667adb25d25e67b116640)) ### Performance Improvements -* Optimize creator profile page performance ([877e30f](https://github.com/MyFanss/MyFans/commit/877e30f6f87fcef42d889e4a79afba5a7aceba82)), closes [#415](https://github.com/MyFanss/MyFans/issues/415) +* Optimize creator profile page performance ([877e30f](https://github.com/Samuel1-ona/MyFans/commit/877e30f6f87fcef42d889e4a79afba5a7aceba82)), closes [#415](https://github.com/Samuel1-ona/MyFans/issues/415) From a5fde4042b69db9608ab626a8002a44e94548b53 Mon Sep 17 00:00:00 2001 From: samuel1-ona Date: Fri, 24 Apr 2026 16:28:05 +0100 Subject: [PATCH 2/5] fix(backend): await isSubscriber in checkSubscription endpoint (closes #582) --- backend/src/subscriptions/subscriptions.controller.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/src/subscriptions/subscriptions.controller.ts b/backend/src/subscriptions/subscriptions.controller.ts index 216629f7..bfd4b32c 100644 --- a/backend/src/subscriptions/subscriptions.controller.ts +++ b/backend/src/subscriptions/subscriptions.controller.ts @@ -50,8 +50,9 @@ export class SubscriptionsController { @UseInterceptors(new DeprecationInterceptor(new Reflector())) @ApiOperation({ summary: '[Deprecated] Check if a fan is subscribed to a creator', deprecated: true }) @ApiResponse({ status: 200, description: 'Subscription check result' }) - checkSubscription(@Query('fan') fan: string, @Query('creator') creator: string) { - return { isSubscriber: this.subscriptionsService.isSubscriber(fan, creator) }; + async checkSubscription(@Query('fan') fan: string, @Query('creator') creator: string) { + const isSubscriber = await this.subscriptionsService.isSubscriber(fan, creator); + return { isSubscriber }; } @Get('list') From ddfee98ced36e91dcd0e7d9c46103de6098d56ca Mon Sep 17 00:00:00 2001 From: samuel1-ona Date: Fri, 24 Apr 2026 16:28:29 +0100 Subject: [PATCH 3/5] fix(backend): restore UserProfileDto and PaginatedUsersDto exports (closes #588) --- backend/src/common/dto/index.ts | 3 +++ backend/src/users-module/index.ts | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 backend/src/users-module/index.ts diff --git a/backend/src/common/dto/index.ts b/backend/src/common/dto/index.ts index c7cff4c7..a5f1b6ff 100644 --- a/backend/src/common/dto/index.ts +++ b/backend/src/common/dto/index.ts @@ -1,2 +1,5 @@ export * from './pagination.dto'; export * from './paginated-response.dto'; + +// Restored exports from users-module +export { UserProfileDto, PaginatedUsersDto } from '../../users-module'; diff --git a/backend/src/users-module/index.ts b/backend/src/users-module/index.ts new file mode 100644 index 00000000..95050e67 --- /dev/null +++ b/backend/src/users-module/index.ts @@ -0,0 +1,8 @@ +export * from './user-profile.dto'; +export * from './paginated-users-response.dto'; + +import { PaginatedResponseDto } from '../common/dto'; +import { UserProfileDto } from './user-profile.dto'; + +/** Alias for compatibility with frontend alignment request */ +export type PaginatedUsersDto = PaginatedResponseDto; From b3afa974a7978833f5292e7c96177ae78ed469e9 Mon Sep 17 00:00:00 2001 From: samuel1-ona Date: Fri, 24 Apr 2026 16:28:53 +0100 Subject: [PATCH 4/5] fix(backend): cast BigInt expiryUnix to Number for comparison in creator-dashboard (closes #586) --- backend/src/creators/creator-dashboard.service.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/creators/creator-dashboard.service.ts b/backend/src/creators/creator-dashboard.service.ts index dd7c9d73..a94974a0 100644 --- a/backend/src/creators/creator-dashboard.service.ts +++ b/backend/src/creators/creator-dashboard.service.ts @@ -77,7 +77,7 @@ export class CreatorDashboardService { // Active subscribers (currently active regardless of window) const activeCount = creatorSubs.filter( - s => s.status === 'active' && s.expiryUnix > nowSecs, + s => s.status === 'active' && Number(s.expiryUnix) > nowSecs, ).length; // New in window: created within [from, to] @@ -88,7 +88,7 @@ export class CreatorDashboardService { // Churned in window: expired within [from, to] const churned = creatorSubs.filter(s => { - return s.status === 'expired' && s.expiryUnix >= fromSecs && s.expiryUnix <= toSecs; + return s.status === 'expired' && Number(s.expiryUnix) >= fromSecs && Number(s.expiryUnix) <= toSecs; }).length; // Revenue: aggregate per plan for subs created in window @@ -142,7 +142,7 @@ export class CreatorDashboardService { amount: parseFloat(p.amount), intervalDays: p.intervalDays, activeSubscribers: creatorSubs.filter( - s => s.planId === p.id && s.status === 'active' && s.expiryUnix > nowSecs, + s => s.planId === p.id && s.status === 'active' && Number(s.expiryUnix) > nowSecs, ).length, })), }; From 771aa10ccfe18b5650d8a27304e0ae9c7c1a0fbe Mon Sep 17 00:00:00 2001 From: samuel1-ona Date: Fri, 24 Apr 2026 16:29:10 +0100 Subject: [PATCH 5/5] fix(contract): add registration_ledger helper for storage key collision audit (closes #619) --- contract/contracts/creator-registry/src/lib.rs | 10 +++++++++- contract/contracts/subscription/src/lib.rs | 11 ++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/contract/contracts/creator-registry/src/lib.rs b/contract/contracts/creator-registry/src/lib.rs index 789e7f39..ac876520 100644 --- a/contract/contracts/creator-registry/src/lib.rs +++ b/contract/contracts/creator-registry/src/lib.rs @@ -18,6 +18,14 @@ pub enum DataKey { LastRegLedger(Address), // last ledger when this caller did a registration } +impl DataKey { + /// Canonical registration ledger storage key; serializes as [`DataKey::LastRegLedger`]. + #[inline] + pub fn registration_ledger(caller: Address) -> Self { + DataKey::LastRegLedger(caller) + } +} + #[contracterror] #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum Error { @@ -59,7 +67,7 @@ impl CreatorRegistryContract { } let current = env.ledger().sequence(); - let last_key = DataKey::LastRegLedger(caller.clone()); + let last_key = DataKey::registration_ledger(caller.clone()); if let Some(last) = env.storage().persistent().get::(&last_key) { if current < last.saturating_add(RATE_LIMIT_LEDGERS) { panic_with_error!(&env, Error::RateLimited); diff --git a/contract/contracts/subscription/src/lib.rs b/contract/contracts/subscription/src/lib.rs index cde7877b..6bb65f22 100644 --- a/contract/contracts/subscription/src/lib.rs +++ b/contract/contracts/subscription/src/lib.rs @@ -40,11 +40,16 @@ pub enum DataKey { } impl DataKey { - /// Canonical subscription storage key; serializes as [`DataKey::Sub`]. #[inline] pub fn subscription(fan: Address, creator: Address) -> Self { DataKey::Sub(fan, creator) } + + /// Canonical token address storage key; serializes as [`DataKey::Token`]. + #[inline] + pub fn token_address() -> Self { + DataKey::Token + } } #[contracterror] @@ -122,7 +127,7 @@ impl MyfansContract { .instance() .set(&DataKey::FeeRecipient, &fee_recipient); env.storage().instance().set(&DataKey::PlanCount, &0u32); - env.storage().instance().set(&DataKey::Token, &token); + env.storage().instance().set(&DataKey::token_address(), &token); env.storage().instance().set(&DataKey::Price, &price); } @@ -341,7 +346,7 @@ impl MyfansContract { .unwrap_or(false); assert!(!paused, "contract is paused"); - let token: Address = env.storage().instance().get(&DataKey::Token).unwrap(); + let token: Address = env.storage().instance().get(&DataKey::token_address()).unwrap(); let price: i128 = env.storage().instance().get(&DataKey::Price).unwrap(); let fee_bps: u32 = env.storage().instance().get(&DataKey::FeeBps).unwrap_or(0); let fee_recipient: Address = env