)]}'
{
  "log": [
    {
      "commit": "2eef0e2febea1b4032c6fcf27699c5e76d151241",
      "tree": "491cd85c3dc32d2d184ef752b02d20aa757d06ee",
      "parents": [
        "3c2a73ee3248abad2c939ab7608aabb281f2baaa",
        "ce863740c6e583d20a8a8694ea1aa836562822bf"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sun Nov 08 18:35:31 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 08 18:35:31 2026 +0530"
      },
      "message": "Merge pull request #244 from Abhishek6122008/feat/standing-instruction-fineract-client\n\ninfrastructure: add StandingInstructionFineractClient adapter for standing instruction calls"
    },
    {
      "commit": "3c2a73ee3248abad2c939ab7608aabb281f2baaa",
      "tree": "a9af84afc59b21b1fe4e285f6cadcc8b6991a3c2",
      "parents": [
        "ef23c8c1a35c73442250954d4d31e0aa4c04eba7",
        "141b135aff768078cbfe323f79e198d4d70a9976"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sun Nov 08 18:32:21 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 08 18:32:21 2026 +0530"
      },
      "message": "Merge pull request #241 from Aana123/fix/loans-duplicate-application\n\nfix(loans): prevent duplicate loan application on resubmit"
    },
    {
      "commit": "ef23c8c1a35c73442250954d4d31e0aa4c04eba7",
      "tree": "97cbf24929ff2ab383a75a957536f3bb932bc6cf",
      "parents": [
        "4cba30784c7a393b61d7be6c2c9e64200b72c775",
        "61e0b62308d952baeb9a0ec3785d08d8201c4540"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sun Nov 08 18:30:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 08 18:30:08 2026 +0530"
      },
      "message": "Merge pull request #238 from Abhishek6122008/chore/fineract-image-405c18dcab\n\nchore: sync vendored Fineract spec with develop and pin matching image"
    },
    {
      "commit": "4cba30784c7a393b61d7be6c2c9e64200b72c775",
      "tree": "270ec33d77919f379679a7770146981d9cfbe9ba",
      "parents": [
        "b1dc0f3dac92b1f95a23168c915912b14d268df6",
        "2a520e647a97fa0155dfaa140a6e6bbc626a80a1"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sun Nov 08 18:20:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 08 18:20:08 2026 +0530"
      },
      "message": "Merge pull request #237 from Abhishek6122008/docs/audit-query-flag\n\ndocs(audit): describe the per-call query flag check"
    },
    {
      "commit": "ce863740c6e583d20a8a8694ea1aa836562822bf",
      "tree": "7a36ca55b119cc7cd3905d93808188be560cc006",
      "parents": [
        "61e0b62308d952baeb9a0ec3785d08d8201c4540"
      ],
      "author": {
        "name": "Abhishek Chaudhary",
        "email": "abhishek.6122008@gmail.com",
        "time": "Sun Nov 08 13:55:38 2026 +0530"
      },
      "committer": {
        "name": "Abhishek Chaudhary",
        "email": "abhishek.6122008@gmail.com",
        "time": "Sun Nov 08 13:55:38 2026 +0530"
      },
      "message": "infrastructure: add StandingInstructionFineractClient adapter for standing instruction calls\n\nGenerate the Standing Instructions and Standing Instructions History\nAPIs and wrap them in a thin adapter, so the scheduled transfers\nfeature can create, list, read and delete Fineract standing\ninstructions and read their run history without depending on the\ngenerated Feign clients. No endpoint uses it yet.\n\nThe adapter pages both lists 200 rows at a time in id order, because\nFineract pages by offset without an order of its own, and sends the\ndelete command with an empty body.\n\nsanitizeFineractSpec gains three standing-instruction fixes, each\nchecked against the pinned image:\n- add validTill to both instruction read schemas: Fineract returns it,\n  but the spec omits it, so the generated model dropped the end date\n- widen PostStandingInstructionsResponse.resourceId to int64\n- drop uniqueItems from run-history pages, which generated a Set: two\n  failed runs of one instruction on one business date are equal field\n  for field and were merged\n\nfineract-integration.adoc describes the adapter seam as it now stands\n(feature services depend on *FineractClient adapters, not on the\ngenerated *Api interfaces), the upstream behaviour the new adapter\naccounts for, and the permissions the Fineract service account needs.\n"
    },
    {
      "commit": "141b135aff768078cbfe323f79e198d4d70a9976",
      "tree": "62106763fa9d8e13c337052b62eb0f645d95551b",
      "parents": [
        "b1dc0f3dac92b1f95a23168c915912b14d268df6"
      ],
      "author": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Fri Nov 06 22:53:29 2026 +0530"
      },
      "committer": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Fri Nov 06 22:53:29 2026 +0530"
      },
      "message": "fix(loans): prevent duplicate loan application on resubmit\n\nAfter a successful submit, store.draft() is set and the draft card with\nModify/Withdraw renders, but the Submit button stayed enabled and submit()\nhad no guard, so a second click filed a second application with a fresh\nidempotency key. Disable Submit and guard submit() once a draft exists.\n"
    },
    {
      "commit": "61e0b62308d952baeb9a0ec3785d08d8201c4540",
      "tree": "5306374a617f3d5d57d46b6ee1be337f879989c9",
      "parents": [
        "9b78c78faf7e2f0577fd248e0442508833feee96"
      ],
      "author": {
        "name": "Abhishek Chaudhary",
        "email": "abhishek.6122008@gmail.com",
        "time": "Fri Nov 06 15:28:28 2026 +0530"
      },
      "committer": {
        "name": "Abhishek Chaudhary",
        "email": "abhishek.6122008@gmail.com",
        "time": "Fri Nov 06 15:28:28 2026 +0530"
      },
      "message": "chore: sync vendored Fineract spec with develop and pin matching image\n\nReplace the vendored spec (1.16.0-SNAPSHOT, from\napache/fineract:4a61d7c218413eca8310d30b098722047e891bb7) with the one\nshipped in apache/fineract:405c18dcabfc235325e71616e816290234eead87\n(/app/resources/static/fineract.json, 1.17.0-SNAPSHOT) and pin the\ncompose stack to that same image, so the generated client and the\nruntime it is tested against come from one build. FINERACT_IMAGE_TAG\noverrides the tag.\n\nThe new image carries the standing-instruction changes the scheduled\ntransfers work builds on: partial collection only when an instruction\nopts in with allowPartialTransfer (FINERACT-2400), a recurrence day the\nmonth does not have falls on its last day (FINERACT-2914), and the\npartitioned Execute Standing Instruction job (FINERACT-2672, #6078).\nStandingInstructionCreationRequest gains allowPartialTransfer.\n\nNo operation under the generated tags was renamed, added or removed,\nand every sanitize patch still finds its target, so no code changes\nare needed.\n"
    },
    {
      "commit": "b1dc0f3dac92b1f95a23168c915912b14d268df6",
      "tree": "560efc6b8ac327a156d2d5e42d3503d0fa9ae016",
      "parents": [
        "6ec049c8ded6b8cecace0bf108bc00c711b98893",
        "1ac7dcdfafe6113cea66494c5dbb1771de7d4c4e"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Nov 06 10:33:30 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 10:33:30 2026 +0530"
      },
      "message": "Merge pull request #236 from apache/dependabot/github_actions/apache/infrastructure-actions/allowlist-check-41e17e36fde176910607d2edb2bfe30e804cb23e\n\nchore(deps): bump apache/infrastructure-actions/allowlist-check from e3e0a2261a9c6d5bdd882802b303f34b1511b6df to 41e17e36fde176910607d2edb2bfe30e804cb23e"
    },
    {
      "commit": "6ec049c8ded6b8cecace0bf108bc00c711b98893",
      "tree": "1963d2de6a8f3e80b9199564de0bfdc4ab0e0acd",
      "parents": [
        "2bbeaf60f0fce92abc8d079382b587a42e269f81",
        "89449498df0f1968bb9a54f14a653e4b56761701"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Nov 06 10:07:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 10:07:08 2026 +0530"
      },
      "message": "Merge pull request #235 from apache/dependabot/github_actions/gradle/actions/setup-gradle-6.4.1\n\nchore(deps): bump gradle/actions/setup-gradle from 6.4.0 to 6.4.1"
    },
    {
      "commit": "2a520e647a97fa0155dfaa140a6e6bbc626a80a1",
      "tree": "f4198cd0fe855c1cef267deae7c4f645a965b154",
      "parents": [
        "9b78c78faf7e2f0577fd248e0442508833feee96"
      ],
      "author": {
        "name": "Abhishek Chaudhary",
        "email": "abhishek.6122008@gmail.com",
        "time": "Fri Nov 06 10:06:08 2026 +0530"
      },
      "committer": {
        "name": "Abhishek Chaudhary",
        "email": "abhishek.6122008@gmail.com",
        "time": "Fri Nov 06 10:06:08 2026 +0530"
      },
      "message": "docs(audit): describe the per-call query flag check\n\nThe audit query section said AuditQueryController is guarded by\n@ConditionalOnProperty, and api.adoc said the endpoint is only\nregistered when consumer.audit.query-enabled is set. Neither is true\nany more: the controller is always registered and\nAuditQueryServiceImpl checks the flag on every call, answering\nHTTP 404 (error.msg.consumer.audit.query.disabled) while it is off,\nbecause AOT evaluates bean conditions at build time.\n\nDescribe the actual mechanism and link it to the native image page,\nwhich gains an anchor for the cross-reference.\n"
    },
    {
      "commit": "2bbeaf60f0fce92abc8d079382b587a42e269f81",
      "tree": "b6b1fda21f0fcfe44b300ffb77c32e4e46e1f387",
      "parents": [
        "d3f34874e84ba8d573da79e529933f994a0a91dd",
        "c0453ddec6cd956d0fef744200aabf07b74fd4b1"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Nov 06 10:05:25 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 10:05:25 2026 +0530"
      },
      "message": "Merge pull request #234 from apache/dependabot/github_actions/graalvm/setup-graalvm-1.6.8\n\nchore(deps): bump graalvm/setup-graalvm from 1.6.7 to 1.6.8"
    },
    {
      "commit": "d3f34874e84ba8d573da79e529933f994a0a91dd",
      "tree": "e4529ff29b3043d49b0408c52c0f3f2025d7ad40",
      "parents": [
        "9b78c78faf7e2f0577fd248e0442508833feee96",
        "73c6fbdb9675b8e4be1e14a9c10b9880e8caf98b"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Nov 06 10:04:41 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 10:04:41 2026 +0530"
      },
      "message": "Merge pull request #233 from ayushcodes27/fix/232-reject-same-account-transfers\n\nfix(transfers): validate distinct accounts on savings transfers (#232)"
    },
    {
      "commit": "1ac7dcdfafe6113cea66494c5dbb1771de7d4c4e",
      "tree": "f2c1048d4f4d84a6040ad2e9aa8b1748cac7ac63",
      "parents": [
        "9b78c78faf7e2f0577fd248e0442508833feee96"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Nov 06 00:14:12 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 00:14:12 2026 +0000"
      },
      "message": "chore(deps): bump apache/infrastructure-actions/allowlist-check\n\nBumps [apache/infrastructure-actions/allowlist-check](https://github.com/apache/infrastructure-actions) from e3e0a2261a9c6d5bdd882802b303f34b1511b6df to 41e17e36fde176910607d2edb2bfe30e804cb23e.\n- [Commits](https://github.com/apache/infrastructure-actions/compare/e3e0a2261a9c6d5bdd882802b303f34b1511b6df...41e17e36fde176910607d2edb2bfe30e804cb23e)\n\n---\nupdated-dependencies:\n- dependency-name: apache/infrastructure-actions/allowlist-check\n  dependency-version: 41e17e36fde176910607d2edb2bfe30e804cb23e\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "89449498df0f1968bb9a54f14a653e4b56761701",
      "tree": "0b96a25467e2ee64ced820382056ee9555aa6ade",
      "parents": [
        "9b78c78faf7e2f0577fd248e0442508833feee96"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Nov 06 00:14:07 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 00:14:07 2026 +0000"
      },
      "message": "chore(deps): bump gradle/actions/setup-gradle from 6.4.0 to 6.4.1\n\nBumps [gradle/actions/setup-gradle](https://github.com/gradle/actions) from 6.4.0 to 6.4.1.\n- [Release notes](https://github.com/gradle/actions/releases)\n- [Commits](https://github.com/gradle/actions/compare/3f5f9adaf7d9fecd50b5935e54106014257a94e6...8da46b539cd8fe6ab27ca75128919a18d757604c)\n\n---\nupdated-dependencies:\n- dependency-name: gradle/actions/setup-gradle\n  dependency-version: 6.4.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "c0453ddec6cd956d0fef744200aabf07b74fd4b1",
      "tree": "f047242f3f3951fd4d808f54251b0fbe4775d79e",
      "parents": [
        "9b78c78faf7e2f0577fd248e0442508833feee96"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Nov 06 00:14:02 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 06 00:14:02 2026 +0000"
      },
      "message": "chore(deps): bump graalvm/setup-graalvm from 1.6.7 to 1.6.8\n\nBumps [graalvm/setup-graalvm](https://github.com/graalvm/setup-graalvm) from 1.6.7 to 1.6.8.\n- [Release notes](https://github.com/graalvm/setup-graalvm/releases)\n- [Commits](https://github.com/graalvm/setup-graalvm/compare/27b360dbb857524eaf0b4c4cef364d38e5b4f173...f70bc8032f90a104502824a54bcb94b6f01715bc)\n\n---\nupdated-dependencies:\n- dependency-name: graalvm/setup-graalvm\n  dependency-version: 1.6.8\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "9b78c78faf7e2f0577fd248e0442508833feee96",
      "tree": "e42bf57aa8e2a57aad7292475fb9c964b63a24d5",
      "parents": [
        "ce2621c0fe76c28f58de5cf5627c49f20f5980ca",
        "2cf75d094822a6c12c1d357d48e88f7d3ed31327"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Thu Nov 05 12:46:01 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 05 12:46:01 2026 +0530"
      },
      "message": "Merge pull request #231 from saidhanushae/feat/issue-188-savings-query-fineract-adapter\n\nrefactor(savings): route Fineract savings query calls through SavingsFineractClient (#188)"
    },
    {
      "commit": "73c6fbdb9675b8e4be1e14a9c10b9880e8caf98b",
      "tree": "4e61e7263d654ef0aebb7d521180aba71d9f2496",
      "parents": [
        "ce2621c0fe76c28f58de5cf5627c49f20f5980ca"
      ],
      "author": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Sat Oct 31 16:23:04 2026 +0530"
      },
      "committer": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Mon Nov 02 18:54:07 2026 +0530"
      },
      "message": "fix(transfers): validate distinct accounts on savings transfers (#232)\n\n- Reject same-account transfers early during initiate and confirm\n\n- Add TransferSameAccountException with error.msg.consumer.transfers.command.account.same\n\n- Add frontend i18n error translations\n\n- Add unit test coverage in TransfersCommandServiceImplTest\n"
    },
    {
      "commit": "2cf75d094822a6c12c1d357d48e88f7d3ed31327",
      "tree": "e42bf57aa8e2a57aad7292475fb9c964b63a24d5",
      "parents": [
        "ce2621c0fe76c28f58de5cf5627c49f20f5980ca"
      ],
      "author": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Sun Nov 01 10:19:31 2026 +0530"
      },
      "committer": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Sun Nov 01 12:21:49 2026 +0530"
      },
      "message": "refactor(savings): route Fineract savings query calls through SavingsFineractClient (#188)\n"
    },
    {
      "commit": "ce2621c0fe76c28f58de5cf5627c49f20f5980ca",
      "tree": "ae971da1ea8dee02014a460d70c26f936577dc44",
      "parents": [
        "07b6e1b6e10792f0698fdf9cdf169c6aefebc4ac",
        "01b5eddd9a46577bd779a9363ac13e6e39392bdf"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 30 11:11:52 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 11:11:52 2026 +0530"
      },
      "message": "Merge pull request #229 from apache/dependabot/npm_and_yarn/frontend/fast-uri-3.1.9\n\nchore(deps): bump fast-uri from 3.1.7 to 3.1.9 in /frontend"
    },
    {
      "commit": "01b5eddd9a46577bd779a9363ac13e6e39392bdf",
      "tree": "ae971da1ea8dee02014a460d70c26f936577dc44",
      "parents": [
        "07b6e1b6e10792f0698fdf9cdf169c6aefebc4ac"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 30 05:03:25 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 05:03:25 2026 +0000"
      },
      "message": "chore(deps): bump fast-uri from 3.1.7 to 3.1.9 in /frontend\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.7 to 3.1.9.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.7...v3.1.9)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.9\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "07b6e1b6e10792f0698fdf9cdf169c6aefebc4ac",
      "tree": "a7bac8b15d72be9786df8187f986ed967475b4da",
      "parents": [
        "42b682abe1304551e576374e32bc6035e54a3638",
        "5f1b4749f29351bc6842abdde3325f7c3076683f"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 30 10:32:39 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 10:32:39 2026 +0530"
      },
      "message": "Merge pull request #227 from apache/dependabot/github_actions/zizmorcore/zizmor-action-0.8.0\n\nchore(deps): bump zizmorcore/zizmor-action from 0.7.1 to 0.8.0"
    },
    {
      "commit": "42b682abe1304551e576374e32bc6035e54a3638",
      "tree": "816bd710d856699b1dadfa12de42570a4014b5bc",
      "parents": [
        "1bf466c40fd88fe0443278b4f02e089806d8d5fa",
        "8536517524d81f0a97ddbe7ee880165acbdc0453"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 30 10:32:25 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 10:32:25 2026 +0530"
      },
      "message": "Merge pull request #226 from apache/dependabot/github_actions/codeql-271845e79b\n\nchore(deps): bump the codeql group with 2 updates"
    },
    {
      "commit": "1bf466c40fd88fe0443278b4f02e089806d8d5fa",
      "tree": "f8a15e13303e67082c72f7fecf2871c95ec0e3c4",
      "parents": [
        "c16af896ba427a9abdabb2138f704459fdfb3c83",
        "fdb9a7f3de769fddab50e489709fdfab6f99b0df"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 30 10:31:54 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 10:31:54 2026 +0530"
      },
      "message": "Merge pull request #225 from saidhanushae/feat/issue-188-beneficiaries-fineract-adapter\n\nrefactor(beneficiaries): route Fineract beneficiary calls through BeneficiariesFineractClient (#188)"
    },
    {
      "commit": "fdb9a7f3de769fddab50e489709fdfab6f99b0df",
      "tree": "f8a15e13303e67082c72f7fecf2871c95ec0e3c4",
      "parents": [
        "c16af896ba427a9abdabb2138f704459fdfb3c83"
      ],
      "author": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Wed Oct 28 21:15:43 2026 +0530"
      },
      "committer": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Fri Oct 30 08:54:19 2026 +0530"
      },
      "message": "refactor(beneficiaries): route Fineract beneficiary calls through BeneficiariesFineractClient (#188)\n"
    },
    {
      "commit": "5f1b4749f29351bc6842abdde3325f7c3076683f",
      "tree": "d9d2858e96ed7915aa58a8e45abd3fac4fcc442c",
      "parents": [
        "c16af896ba427a9abdabb2138f704459fdfb3c83"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 30 00:49:38 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 00:49:38 2026 +0000"
      },
      "message": "chore(deps): bump zizmorcore/zizmor-action from 0.7.1 to 0.8.0\n\nBumps [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) from 0.7.1 to 0.8.0.\n- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)\n- [Commits](https://github.com/zizmorcore/zizmor-action/compare/85b2b9fb8e3325e7a23d7d0a9d7ba5ae0f999e3e...53290badfa369cb0bf7ad16342cb62c2fa47ac7b)\n\n---\nupdated-dependencies:\n- dependency-name: zizmorcore/zizmor-action\n  dependency-version: 0.8.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "8536517524d81f0a97ddbe7ee880165acbdc0453",
      "tree": "5b60a327326b101ec44dacd113b1385e832e2772",
      "parents": [
        "c16af896ba427a9abdabb2138f704459fdfb3c83"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 30 00:49:27 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 30 00:49:27 2026 +0000"
      },
      "message": "chore(deps): bump the codeql group with 2 updates\n\nBumps the codeql group with 2 updates: [github/codeql-action/init](https://github.com/github/codeql-action) and [github/codeql-action/analyze](https://github.com/github/codeql-action).\n\n\nUpdates `github/codeql-action/init` from 4.39.0 to 4.39.1\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee...9b3254085494b55a0f7c4c2b3d2d52cc712ce370)\n\nUpdates `github/codeql-action/analyze` from 4.39.0 to 4.39.1\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee...9b3254085494b55a0f7c4c2b3d2d52cc712ce370)\n\n---\nupdated-dependencies:\n- dependency-name: github/codeql-action/init\n  dependency-version: 4.39.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: codeql\n- dependency-name: github/codeql-action/analyze\n  dependency-version: 4.39.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: codeql\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "c16af896ba427a9abdabb2138f704459fdfb3c83",
      "tree": "faeeb62f008a3cba48227eca440e13487a6e004c",
      "parents": [
        "9f1422d1eaa7a2d6c0fd5c295299328ea86f24e8",
        "c00d15889b566623c8011eb25777fd1e2b558822"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Thu Oct 29 10:33:59 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 29 10:33:59 2026 +0530"
      },
      "message": "Merge pull request #224 from Aana123/refactor/188-loans-query-fineract-client\n\nrefactor(loans): route loan query calls through LoansQueryFineractClient (#188)"
    },
    {
      "commit": "c00d15889b566623c8011eb25777fd1e2b558822",
      "tree": "faeeb62f008a3cba48227eca440e13487a6e004c",
      "parents": [
        "a7838e4983edf084cdb54d60d8c3d01b0f0f9afa"
      ],
      "author": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Tue Oct 27 11:42:15 2026 +0530"
      },
      "committer": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Tue Oct 27 12:19:39 2026 +0530"
      },
      "message": "loans: cover LoansQueryServiceImpl read paths and error mapping with tests\n"
    },
    {
      "commit": "a7838e4983edf084cdb54d60d8c3d01b0f0f9afa",
      "tree": "b25b9975040ab2f7e3b0df0b0281785d0b54a54a",
      "parents": [
        "4087e50bdd9d219253ea43b28d0a53abeb844bf9"
      ],
      "author": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Tue Oct 27 11:29:35 2026 +0530"
      },
      "committer": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Tue Oct 27 12:19:39 2026 +0530"
      },
      "message": "loans: route LoansQueryServiceImpl through LoansQueryFineractClient\n"
    },
    {
      "commit": "4087e50bdd9d219253ea43b28d0a53abeb844bf9",
      "tree": "cc8a293c6afc79527bb656fd48c0454c5e08a36e",
      "parents": [
        "9f1422d1eaa7a2d6c0fd5c295299328ea86f24e8"
      ],
      "author": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Tue Oct 27 10:56:36 2026 +0530"
      },
      "committer": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Tue Oct 27 12:10:51 2026 +0530"
      },
      "message": "loans: add LoansQueryFineractClient adapter for loan query calls\n"
    },
    {
      "commit": "9f1422d1eaa7a2d6c0fd5c295299328ea86f24e8",
      "tree": "a8cbafd3fd4ecd3c10bb319c743f3ba384ca1e90",
      "parents": [
        "7a6f062972e4303c86dd8244d7d097d9e57d33d4",
        "929a98b8966ef2d142dd15f5270d333d176ee5e9"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Tue Oct 27 11:26:15 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:26:15 2026 +0530"
      },
      "message": "Merge pull request #221 from saidhanushae/feat/issue-188-loans-command-fineract-adapter\n\nrefactor(loans): route Fineract loan command calls through LoansFineractClient (#188)"
    },
    {
      "commit": "7a6f062972e4303c86dd8244d7d097d9e57d33d4",
      "tree": "1700a20005ffdff100149493afe41645a3ebcf1c",
      "parents": [
        "53e1d93dab8e851f9d52c4c65a73cd75fd95f496",
        "e27192d71a9fa4c4a95a90580a30bbb5818be845"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Tue Oct 27 11:25:58 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:25:58 2026 +0530"
      },
      "message": "Merge pull request #223 from saidhanushae/feat/issue-188-transfers-fineract-adapter\n\nrefactor(transfers): route Fineract transfer query calls through TransferFineractClient (#188)"
    },
    {
      "commit": "53e1d93dab8e851f9d52c4c65a73cd75fd95f496",
      "tree": "8ed30b1c68ec9d5e8f7cf177afe03c7ae005eaaf",
      "parents": [
        "c0e0d4d4389a9ed5fb751fc40aebc2fa939d1581",
        "ff0a4cb7f26cb6af1e7f25fca0673a754c1bdbde"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Tue Oct 27 11:14:16 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 27 11:14:16 2026 +0530"
      },
      "message": "Merge pull request #222 from Aana123/refactor/174-auth-app-translate\n\nrefactor(frontend): migrate auth screens to appTranslate pipe"
    },
    {
      "commit": "e27192d71a9fa4c4a95a90580a30bbb5818be845",
      "tree": "f2569985a936145212360e8fb46972c0e0e9625b",
      "parents": [
        "c0e0d4d4389a9ed5fb751fc40aebc2fa939d1581"
      ],
      "author": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Tue Oct 27 09:56:22 2026 +0530"
      },
      "committer": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Tue Oct 27 09:56:22 2026 +0530"
      },
      "message": "refactor(transfers): route Fineract transfer query calls through TransferFineractClient (#188)\n"
    },
    {
      "commit": "929a98b8966ef2d142dd15f5270d333d176ee5e9",
      "tree": "f54553c5ca08fa524d857d6d4e951565aa9706e1",
      "parents": [
        "c0e0d4d4389a9ed5fb751fc40aebc2fa939d1581"
      ],
      "author": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Mon Oct 26 20:01:30 2026 +0530"
      },
      "committer": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Mon Oct 26 20:01:30 2026 +0530"
      },
      "message": "refactor(loans): route Fineract loan command calls through LoansFineractClient (#188)\n"
    },
    {
      "commit": "ff0a4cb7f26cb6af1e7f25fca0673a754c1bdbde",
      "tree": "8ed30b1c68ec9d5e8f7cf177afe03c7ae005eaaf",
      "parents": [
        "c0e0d4d4389a9ed5fb751fc40aebc2fa939d1581"
      ],
      "author": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Mon Oct 26 01:14:27 2026 +0530"
      },
      "committer": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Mon Oct 26 01:14:27 2026 +0530"
      },
      "message": "frontend: migrate auth screens to the appTranslate pipe\n"
    },
    {
      "commit": "c0e0d4d4389a9ed5fb751fc40aebc2fa939d1581",
      "tree": "34bfb139a9cd4f78d8a091de0e983b3c66954024",
      "parents": [
        "b33840ce8990c49bbbb54b1b77bb3179139dae3a",
        "70425504457fc28dab649f6d5b353f778d22864e"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sun Oct 25 21:22:17 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 21:22:17 2026 +0530"
      },
      "message": "Merge pull request #220 from saidhanushae/feat/issue-188-summary-fineract-adapter\n\nrefactor(summary): route Fineract client account calls through SummaryFineractClient (#188)"
    },
    {
      "commit": "b33840ce8990c49bbbb54b1b77bb3179139dae3a",
      "tree": "374a077d650b71e8e26074d29a6d19b84e68759c",
      "parents": [
        "73b5b84c14b2987793a92769d9ee349d68514364",
        "dd5a2cbe5504c8894564173fbd43f3ab6b93882a"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sun Oct 25 20:45:10 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 20:45:10 2026 +0530"
      },
      "message": "Merge pull request #219 from Aana123/fix/113-transfer-fingerprint-helper\n\ntransfers(backend): route action fingerprint through a single helper #113"
    },
    {
      "commit": "73b5b84c14b2987793a92769d9ee349d68514364",
      "tree": "33ffba0f399fc7e80e140eeb8de629704f195e11",
      "parents": [
        "656be00f15836b0d941fcada1c45b7ebe2273e2a",
        "c0c29103b99c51ad8ae1b4aa9a66cebc99242230"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sun Oct 25 20:37:15 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 25 20:37:15 2026 +0530"
      },
      "message": "Merge pull request #218 from saidhanushae/feat/issue-188-identity-fineract-adapter\n\nrefactor(identity): route Fineract identifier calls through IdentityFineractClient (#188)"
    },
    {
      "commit": "70425504457fc28dab649f6d5b353f778d22864e",
      "tree": "fe496e869beec643cd8b04f2b4fe86acf8b36851",
      "parents": [
        "656be00f15836b0d941fcada1c45b7ebe2273e2a"
      ],
      "author": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Sun Oct 25 19:22:45 2026 +0530"
      },
      "committer": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Sun Oct 25 19:22:45 2026 +0530"
      },
      "message": "refactor(summary): route Fineract client account calls through SummaryFineractClient (#188)\n"
    },
    {
      "commit": "dd5a2cbe5504c8894564173fbd43f3ab6b93882a",
      "tree": "d60334e70cb9216b06e1242e774b255120d75b0e",
      "parents": [
        "00d21b64e5bcd012a675c4442dd5fb430e8424af"
      ],
      "author": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Sun Oct 25 16:14:49 2026 +0530"
      },
      "committer": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Sun Oct 25 16:14:49 2026 +0530"
      },
      "message": "transfers: assert initiate and confirm use the same action fingerprint\n"
    },
    {
      "commit": "00d21b64e5bcd012a675c4442dd5fb430e8424af",
      "tree": "54ea85e40ce2d3a7772badb34df75e45337ea7f8",
      "parents": [
        "10569505fb5dfe4b9c620a0e820925c425b7d9e6"
      ],
      "author": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Sun Oct 25 16:05:07 2026 +0530"
      },
      "committer": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Sun Oct 25 16:05:07 2026 +0530"
      },
      "message": "beneficiaries: drop duplicate fingerprint normalization\n"
    },
    {
      "commit": "c0c29103b99c51ad8ae1b4aa9a66cebc99242230",
      "tree": "33ffba0f399fc7e80e140eeb8de629704f195e11",
      "parents": [
        "656be00f15836b0d941fcada1c45b7ebe2273e2a"
      ],
      "author": {
        "name": "dhanush435",
        "email": "saidhanushae@gmail.com",
        "time": "Sun Oct 25 15:48:43 2026 +0530"
      },
      "committer": {
        "name": "Amarai Elluru Sai Dhanush",
        "email": "saidhanushae@gmail.com",
        "time": "Sun Oct 25 16:02:03 2026 +0530"
      },
      "message": "refactor(identity): route Fineract identifier calls through IdentityFineractClient (#188)\n"
    },
    {
      "commit": "10569505fb5dfe4b9c620a0e820925c425b7d9e6",
      "tree": "5dc906c84925d31ed03a4940cc60da553c09cc0e",
      "parents": [
        "656be00f15836b0d941fcada1c45b7ebe2273e2a"
      ],
      "author": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Sun Oct 25 15:56:29 2026 +0530"
      },
      "committer": {
        "name": "Aana",
        "email": "aanapandey00@gmail.com",
        "time": "Sun Oct 25 15:56:29 2026 +0530"
      },
      "message": "transfers: route action fingerprint through a single helper\n"
    },
    {
      "commit": "656be00f15836b0d941fcada1c45b7ebe2273e2a",
      "tree": "2cff96e12101031ff1752b802492fde3d41a6b81",
      "parents": [
        "59e642a11c87940ad8d1b72d5e5ebc4e0f3d539c",
        "b07ad6793d92cb81f2d1ca6499ab72fef13ff9df"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sat Oct 24 15:48:53 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 15:48:53 2026 +0530"
      },
      "message": "Merge pull request #213 from ayushcodes27/feat/181-migrate-summary-transfers-apptranslate\n\nrefactor(frontend): migrate summary and transfers screens to appTranslate"
    },
    {
      "commit": "59e642a11c87940ad8d1b72d5e5ebc4e0f3d539c",
      "tree": "cdd731ace696436493a8bfc363146ea387f843d4",
      "parents": [
        "d9eaefd3d277c8ea63bd9a0a320a13d4539b1f02",
        "fe217ddc0ba055ee40462b9808f102552a81817f"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 23 17:18:09 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 17:18:09 2026 +0530"
      },
      "message": "Merge pull request #153 from apache/dependabot/npm_and_yarn/frontend/undici-6.29.0\n\nchore(deps-dev): bump undici from 7.29.0 to 7.30.1 in /frontend"
    },
    {
      "commit": "d9eaefd3d277c8ea63bd9a0a320a13d4539b1f02",
      "tree": "7047d6a598deda8e9370b6f14216cdbce8913877",
      "parents": [
        "a60fb032ddc42bf43f6820bb96b65fe6f5eacd3f",
        "c708aed2c976ea0a3dcfd33fb6d3f07a70ceebe2"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 23 17:17:02 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 17:17:02 2026 +0530"
      },
      "message": "Merge pull request #215 from apache/dependabot/github_actions/codeql-e40781d787\n\nchore(deps): bump the codeql group with 2 updates"
    },
    {
      "commit": "a60fb032ddc42bf43f6820bb96b65fe6f5eacd3f",
      "tree": "a302d413517b0fb7bbb7f4f4e0c453f734b9c85a",
      "parents": [
        "1c8f524ecfe08ae9981e5c388773b614237fcdb5",
        "0fbe5e29982970e02861fec795d9765ba653a193"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 23 17:16:53 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 17:16:53 2026 +0530"
      },
      "message": "Merge pull request #216 from apache/dependabot/github_actions/zizmorcore/zizmor-action-0.7.1\n\nchore(deps): bump zizmorcore/zizmor-action from 0.6.4 to 0.7.1"
    },
    {
      "commit": "1c8f524ecfe08ae9981e5c388773b614237fcdb5",
      "tree": "79431ccb69159bc5556d1b45414d91e6b3b7ef94",
      "parents": [
        "21c3d5140774e3eba8fc0733ab21df521bf59a9e",
        "ba8529aa29e47c2fa227978f511faae203cdfb50"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 23 17:16:38 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 17:16:38 2026 +0530"
      },
      "message": "Merge pull request #217 from apache/dependabot/github_actions/actions/setup-java-6.1.0\n\nchore(deps): bump actions/setup-java from 6.0.1 to 6.1.0"
    },
    {
      "commit": "ba8529aa29e47c2fa227978f511faae203cdfb50",
      "tree": "79431ccb69159bc5556d1b45414d91e6b3b7ef94",
      "parents": [
        "21c3d5140774e3eba8fc0733ab21df521bf59a9e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 23 01:29:47 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 01:29:47 2026 +0000"
      },
      "message": "chore(deps): bump actions/setup-java from 6.0.1 to 6.1.0\n\nBumps [actions/setup-java](https://github.com/actions/setup-java) from 6.0.1 to 6.1.0.\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/de7274f081f381c8f8158605e0321c36c376e2e6...b843ebf9b913146b38da2eaa7aeddf76074ae1ad)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 6.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "0fbe5e29982970e02861fec795d9765ba653a193",
      "tree": "ba26257ccdb4421ba12147852c6b7d79719af7a5",
      "parents": [
        "21c3d5140774e3eba8fc0733ab21df521bf59a9e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 23 01:29:10 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 01:29:10 2026 +0000"
      },
      "message": "chore(deps): bump zizmorcore/zizmor-action from 0.6.4 to 0.7.1\n\nBumps [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) from 0.6.4 to 0.7.1.\n- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)\n- [Commits](https://github.com/zizmorcore/zizmor-action/compare/cc914d7f3750a2d13d75c7f184a1060aa0e9d482...85b2b9fb8e3325e7a23d7d0a9d7ba5ae0f999e3e)\n\n---\nupdated-dependencies:\n- dependency-name: zizmorcore/zizmor-action\n  dependency-version: 0.7.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "c708aed2c976ea0a3dcfd33fb6d3f07a70ceebe2",
      "tree": "2c1ffcffdfaffcb2d2c6bc55947d2d9490da4605",
      "parents": [
        "21c3d5140774e3eba8fc0733ab21df521bf59a9e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 23 01:29:02 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 01:29:02 2026 +0000"
      },
      "message": "chore(deps): bump the codeql group with 2 updates\n\nBumps the codeql group with 2 updates: [github/codeql-action/init](https://github.com/github/codeql-action) and [github/codeql-action/analyze](https://github.com/github/codeql-action).\n\n\nUpdates `github/codeql-action/init` from 4.38.3 to 4.39.0\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/24c54180a607b1449ed407dd24f251e4e9147c8d...6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee)\n\nUpdates `github/codeql-action/analyze` from 4.38.3 to 4.39.0\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/24c54180a607b1449ed407dd24f251e4e9147c8d...6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee)\n\n---\nupdated-dependencies:\n- dependency-name: github/codeql-action/init\n  dependency-version: 4.39.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: codeql\n- dependency-name: github/codeql-action/analyze\n  dependency-version: 4.39.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: codeql\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "b07ad6793d92cb81f2d1ca6499ab72fef13ff9df",
      "tree": "441fafdc4f3dc53e476c840078d949304220fdc2",
      "parents": [
        "21c3d5140774e3eba8fc0733ab21df521bf59a9e"
      ],
      "author": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Tue Oct 20 17:49:58 2026 +0530"
      },
      "committer": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Tue Oct 20 17:49:58 2026 +0530"
      },
      "message": "refactor(frontend): migrate summary and transfers screens to appTranslate\n"
    },
    {
      "commit": "fe217ddc0ba055ee40462b9808f102552a81817f",
      "tree": "13e9bff44c462c64bf312fc808d1b6c2e348fc72",
      "parents": [
        "21c3d5140774e3eba8fc0733ab21df521bf59a9e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Oct 18 16:39:57 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 18 16:39:57 2026 +0000"
      },
      "message": "chore(deps-dev): bump undici from 7.29.0 to 7.30.1 in /frontend\n\nBumps [undici](https://github.com/nodejs/undici) from 7.29.0 to 7.30.1.\n- [Release notes](https://github.com/nodejs/undici/releases)\n- [Commits](https://github.com/nodejs/undici/compare/v7.29.0...v7.30.1)\n\n---\nupdated-dependencies:\n- dependency-name: undici\n  dependency-version: 6.29.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "21c3d5140774e3eba8fc0733ab21df521bf59a9e",
      "tree": "435fe9093681698fbd02da1344246b8e0b07f62f",
      "parents": [
        "0415fe2750f1015247eadac8d092c216f90f6b47",
        "9469346a9ce0559c2a872a08d4eee8e2627823f1"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sun Oct 18 22:06:14 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 18 22:06:14 2026 +0530"
      },
      "message": "Merge pull request #157 from apache/dependabot/npm_and_yarn/frontend/multi-6a8874f207\n\nchore(deps): bump @modelcontextprotocol/sdk and @angular/cli in /frontend"
    },
    {
      "commit": "0415fe2750f1015247eadac8d092c216f90f6b47",
      "tree": "21f6b28bf1317e5009c80bfc37f48ad53f7d901e",
      "parents": [
        "23f6a5cc89f8edc1db525fcb2441c9d229a8f532",
        "1d0f31dca8ffcb7b92f94208b2332855c301ce92"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sat Oct 17 15:00:55 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 17 15:00:55 2026 +0530"
      },
      "message": "Merge pull request #212 from Aman-Mittal/fix/security-hardening\n\nsecurity: bind one-time codes to a purpose and close the registration identity oracle"
    },
    {
      "commit": "1d0f31dca8ffcb7b92f94208b2332855c301ce92",
      "tree": "21f6b28bf1317e5009c80bfc37f48ad53f7d901e",
      "parents": [
        "7d8c94a9498ee584cbd037af2c1f56397a4f452a"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 17 14:22:17 2026 +0530"
      },
      "committer": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 17 14:22:17 2026 +0530"
      },
      "message": "registration: retarget the OTP replay scenario at the state guard\n\nRequiring PENDING_OTP on the OTP steps changes what a replay of a verified\ncode answers: the state guard refuses it (409) before the spent code is\nlooked at (400). The scenario asserted the old code, so it now asserts the\nrefusal it actually gets, and says why the single-use property it used to\nstand for is pinned elsewhere — OtpServiceImplTest and login.feature.\n\nAlso fixes the one multi-line createOtp verification the purpose change\nmissed, which broke compileTestJava.\n"
    },
    {
      "commit": "7d8c94a9498ee584cbd037af2c1f56397a4f452a",
      "tree": "defe94097deb56dd8b786182f2d14849c353da27",
      "parents": [
        "23f6a5cc89f8edc1db525fcb2441c9d229a8f532"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 17 14:11:40 2026 +0530"
      },
      "committer": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 17 14:11:40 2026 +0530"
      },
      "message": "security: bind one-time codes to a purpose and close the registration identity oracle\n\nTwo findings from a review of the auth, OTP, ABAC, open-banking and audit\npaths. The ABAC and open-banking surfaces came back clean; these are the\nplaces where the code did not hold.\n\nOTP purpose binding. The pending-code slot was keyed on the user alone\n(`otp:pending:{publicId}`), so all six ceremonies that mint codes shared it\nand whichever code was minted last satisfied whichever challenge was\npresented. That made the weakest challenge in the system a credential for\nthe strongest: a code the user was asked for on a \"verify your email\" or\nlogin screen also satisfied POST /api/v1/user/password/reset, which is\npublic and takes nothing but an email address, a code and a new password.\n`OtpPurpose` now joins both the Valkey key and the hashed material, so\nneither a slot read nor a lifted hash crosses ceremonies, and the delivery\nemail names what the code authorises.\n\nRegistration identity oracle. POST /api/v1/registration/submit verified the\napplicant\u0027s government ID before checking whether the Fineract client was\nalready registered, so a correct ID answered 409 and a wrong one 403 — an\nunauthenticated oracle confirming an SSN or Aadhaar against a sequential\nclient id, with no attempt cap, since the per-user rate limiter keys on an\nauthenticated subject. The already-registered check now runs first, so both\nanswers are identical, and `IdentityVerificationAttemptCounter` caps\nfailures at five per client per fifteen minutes, reporting a lockout as the\nsame generic mismatch. Separately, /registration/otp/send now requires\nPENDING_OTP: it would previously mail a fresh code for any account whose\npublic id was presented, including a fully onboarded one.\n\n`PendingOtp` also moves to the project\u0027s explicit-only `@ToString`: it is\nthe one place a live code exists in plaintext.\n\nCucumber covers the purpose binding in both directions, the identical\nrefusal of an already-registered client, the lockout, and the OTP-send\nguard. A per-IP throttle on the public endpoints is still an edge concern\nand is documented as such.\n"
    },
    {
      "commit": "23f6a5cc89f8edc1db525fcb2441c9d229a8f532",
      "tree": "28c42a21fecb2d639dc0ebe2eefbb47503bfe43b",
      "parents": [
        "4a5a762a33e923d3053d5de86e38fbaa89ee8d72",
        "ed9b2ebbab64c0a218c4521e5ae6b584fae27930"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sat Oct 17 13:53:41 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 17 13:53:41 2026 +0530"
      },
      "message": "Merge pull request #204 from ayushcodes27/feat/114-loan-payment-limit\n\nfeat(transfers): validate loan overpayment and active status on repayments (#114)"
    },
    {
      "commit": "ed9b2ebbab64c0a218c4521e5ae6b584fae27930",
      "tree": "28c42a21fecb2d639dc0ebe2eefbb47503bfe43b",
      "parents": [
        "331b8c14ff0d50bb4b22cad45ea616f01038a32e"
      ],
      "author": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Fri Oct 16 17:41:00 2026 +0530"
      },
      "committer": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Fri Oct 16 17:55:07 2026 +0530"
      },
      "message": "feat(transfers): validate loan overpayment and active status on repayments (#114)\n- validate destination loan is active and payment does not exceed prepayLoan payoff amount\n- return HTTP 422 with TransferLoanOverpaymentException or TransferLoanNotActiveException\n- add unit tests covering overpayment, boundary equal to payoff, and inactive loan rejection\n- add Cucumber overpayment scenario asserting HTTP 422 and error code\n- update transfers.adoc documentation and add frontend i18n error translations\n\nSigned-off-by: Ayush \u003cdeoreayush555@gmail.com\u003e\n"
    },
    {
      "commit": "331b8c14ff0d50bb4b22cad45ea616f01038a32e",
      "tree": "e37a407d85aa1283d7da2e38c3e2b766489eefe0",
      "parents": [
        "4a5a762a33e923d3053d5de86e38fbaa89ee8d72"
      ],
      "author": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Fri Oct 16 16:34:45 2026 +0530"
      },
      "committer": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Fri Oct 16 16:34:45 2026 +0530"
      },
      "message": "refactor(transfers): move feign clients behind TransferFineractClient gateway\n\nMove ClientApi, SavingsAccountApi, and AccountTransfersApi calls out of TransfersCommandServiceImpl into TransferFineractClient under consumer.infrastructure to eliminate direct Feign dependencies from the transfers feature service and shrink the ArchUnit baseline.\nAdd lightweight getLoanPayoff lookup to TransferFineractClient to fetch prepay payoff amount for active loans.\n\nSigned-off-by: Ayush \u003cdeoreayush555@gmail.com\u003e\n"
    },
    {
      "commit": "4a5a762a33e923d3053d5de86e38fbaa89ee8d72",
      "tree": "32094edffe579d36ae6e187ae19d7865401b258a",
      "parents": [
        "f12a1c28e4ec62e7e073059bdec7922ee7cf4206",
        "f4c9926bc7118e885680d64c0d0e2a86b9b5b86a"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 16 14:10:49 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 14:10:49 2026 +0530"
      },
      "message": "Merge pull request #205 from Kollishion/fix/frontend-i18n-storage-adapters\n\nfrontend: move I18nService and the device fingerprint onto the I18N and STORAGE adapters"
    },
    {
      "commit": "f12a1c28e4ec62e7e073059bdec7922ee7cf4206",
      "tree": "9903fe8f8a65346055ffeed55b0dbfd587180a6b",
      "parents": [
        "0ba60a5398b8d837fe92f8c8dfcd33bad9466367",
        "c5cb8b823f457b174946d36b398fc54e3d95ee53"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 16 10:11:14 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:11:14 2026 +0530"
      },
      "message": "Merge pull request #207 from apache/dependabot/github_actions/apache/infrastructure-actions/allowlist-check-e3e0a2261a9c6d5bdd882802b303f34b1511b6df\n\nchore(deps): bump apache/infrastructure-actions/allowlist-check from 9cc7da9d7ea5430d68dd0a0dcee8f47dd170ef94 to e3e0a2261a9c6d5bdd882802b303f34b1511b6df"
    },
    {
      "commit": "0ba60a5398b8d837fe92f8c8dfcd33bad9466367",
      "tree": "790c912f635fdc2b2c148ae8d9ae42311972dab1",
      "parents": [
        "e80af040869244fcec0662c6d68cb819d3cbf2ee",
        "bd75c86f51f653129d532399f39d8f7042a25deb"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 16 10:11:02 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:11:02 2026 +0530"
      },
      "message": "Merge pull request #206 from apache/dependabot/github_actions/codeql-9159e49961\n\nchore(deps): bump the codeql group with 2 updates"
    },
    {
      "commit": "e80af040869244fcec0662c6d68cb819d3cbf2ee",
      "tree": "2079b3d2de9f64dbfa5d0c8f9dce6d3dd0ec5d0d",
      "parents": [
        "b1775db1ea0a31c891c82930a0b5ba66c6d4f2de",
        "32ff618cdac274d6dac39b8b56f8597671e8058b"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 16 10:10:24 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:10:24 2026 +0530"
      },
      "message": "Merge pull request #208 from apache/dependabot/github_actions/actions/upload-artifact-7.0.2\n\nchore(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2"
    },
    {
      "commit": "b1775db1ea0a31c891c82930a0b5ba66c6d4f2de",
      "tree": "41269297258371911e1a24f9cefbb1a2031cafd6",
      "parents": [
        "32658a6e4cddf72d90641c9629cd4209b98dfd99",
        "f0fdfa68d1472f01ca357b8952ea0ea03c8d86d9"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 16 10:10:04 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:10:04 2026 +0530"
      },
      "message": "Merge pull request #209 from apache/dependabot/github_actions/actions/setup-node-7.1.0\n\nchore(deps): bump actions/setup-node from 7.0.0 to 7.1.0"
    },
    {
      "commit": "32658a6e4cddf72d90641c9629cd4209b98dfd99",
      "tree": "2dced4a5c79d0c5a1d675496c7edc7e49a7c1fa5",
      "parents": [
        "d9a6bfc021530aa76cf8bafd7d81188318f5646a",
        "20d8e87f901b76ce9bb6483848470dbab6ece18d"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Fri Oct 16 10:09:53 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 10:09:53 2026 +0530"
      },
      "message": "Merge pull request #210 from apache/dependabot/github_actions/gradle/actions/setup-gradle-6.4.0\n\nchore(deps): bump gradle/actions/setup-gradle from 6.3.0 to 6.4.0"
    },
    {
      "commit": "20d8e87f901b76ce9bb6483848470dbab6ece18d",
      "tree": "2dced4a5c79d0c5a1d675496c7edc7e49a7c1fa5",
      "parents": [
        "d9a6bfc021530aa76cf8bafd7d81188318f5646a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 00:16:29 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 00:16:29 2026 +0000"
      },
      "message": "chore(deps): bump gradle/actions/setup-gradle from 6.3.0 to 6.4.0\n\nBumps [gradle/actions/setup-gradle](https://github.com/gradle/actions) from 6.3.0 to 6.4.0.\n- [Release notes](https://github.com/gradle/actions/releases)\n- [Commits](https://github.com/gradle/actions/compare/v6.3.0...3f5f9adaf7d9fecd50b5935e54106014257a94e6)\n\n---\nupdated-dependencies:\n- dependency-name: gradle/actions/setup-gradle\n  dependency-version: 6.4.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f0fdfa68d1472f01ca357b8952ea0ea03c8d86d9",
      "tree": "2807588bd3ffbdd84e879f2f4aabe3c0ba68b261",
      "parents": [
        "d9a6bfc021530aa76cf8bafd7d81188318f5646a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 00:16:03 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 00:16:03 2026 +0000"
      },
      "message": "chore(deps): bump actions/setup-node from 7.0.0 to 7.1.0\n\nBumps [actions/setup-node](https://github.com/actions/setup-node) from 7.0.0 to 7.1.0.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/820762786026740c76f36085b0efc47a31fe5020...949feb2413d6458794dcd2491c4babbbce0c15c1)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n  dependency-version: 7.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "32ff618cdac274d6dac39b8b56f8597671e8058b",
      "tree": "516125add327b946bcdfddce04e1747029f2960c",
      "parents": [
        "d9a6bfc021530aa76cf8bafd7d81188318f5646a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 00:15:57 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 00:15:57 2026 +0000"
      },
      "message": "chore(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 7.0.1 to 7.0.2.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/043fb46d1a93c77aae656e7c1c64a875d1fc6a0a...cf430e030ddbb5b0abf93d22962f4752f3646cd9)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: 7.0.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "c5cb8b823f457b174946d36b398fc54e3d95ee53",
      "tree": "64e707419395ea23001965f2e933029e899921e9",
      "parents": [
        "d9a6bfc021530aa76cf8bafd7d81188318f5646a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 00:15:44 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 00:15:44 2026 +0000"
      },
      "message": "chore(deps): bump apache/infrastructure-actions/allowlist-check\n\nBumps [apache/infrastructure-actions/allowlist-check](https://github.com/apache/infrastructure-actions) from 9cc7da9d7ea5430d68dd0a0dcee8f47dd170ef94 to e3e0a2261a9c6d5bdd882802b303f34b1511b6df.\n- [Commits](https://github.com/apache/infrastructure-actions/compare/9cc7da9d7ea5430d68dd0a0dcee8f47dd170ef94...e3e0a2261a9c6d5bdd882802b303f34b1511b6df)\n\n---\nupdated-dependencies:\n- dependency-name: apache/infrastructure-actions/allowlist-check\n  dependency-version: e3e0a2261a9c6d5bdd882802b303f34b1511b6df\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "bd75c86f51f653129d532399f39d8f7042a25deb",
      "tree": "a356a813006c69035853d67de09576534e0e7a3b",
      "parents": [
        "d9a6bfc021530aa76cf8bafd7d81188318f5646a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Oct 16 00:15:40 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 00:15:40 2026 +0000"
      },
      "message": "chore(deps): bump the codeql group with 2 updates\n\nBumps the codeql group with 2 updates: [github/codeql-action/init](https://github.com/github/codeql-action) and [github/codeql-action/analyze](https://github.com/github/codeql-action).\n\n\nUpdates `github/codeql-action/init` from 4.38.2 to 4.38.3\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2...24c54180a607b1449ed407dd24f251e4e9147c8d)\n\nUpdates `github/codeql-action/analyze` from 4.38.2 to 4.38.3\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2...24c54180a607b1449ed407dd24f251e4e9147c8d)\n\n---\nupdated-dependencies:\n- dependency-name: github/codeql-action/init\n  dependency-version: 4.38.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: codeql\n- dependency-name: github/codeql-action/analyze\n  dependency-version: 4.38.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: codeql\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f4c9926bc7118e885680d64c0d0e2a86b9b5b86a",
      "tree": "1c5b05c47523b61f66535ea448c0749ba0477e96",
      "parents": [
        "d9a6bfc021530aa76cf8bafd7d81188318f5646a"
      ],
      "author": {
        "name": "Abhishek",
        "email": "a86421383@gmail.com",
        "time": "Fri Oct 16 00:24:41 2026 +0530"
      },
      "committer": {
        "name": "Abhishek",
        "email": "a86421383@gmail.com",
        "time": "Fri Oct 16 00:24:41 2026 +0530"
      },
      "message": "frontend: move I18nService and the device fingerprint onto the I18N and STORAGE adapters\n\nCloses #173. Part of #172.\n"
    },
    {
      "commit": "d9a6bfc021530aa76cf8bafd7d81188318f5646a",
      "tree": "9be9d7255eaa708f5e84b473e950e97305f0ce3c",
      "parents": [
        "9a7c8a9fa92f8f84f6df9882cbe003c766e03787",
        "72101374ad92a4e814c465fb262f89630a0ce29d"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Thu Oct 15 11:13:15 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 11:13:15 2026 +0530"
      },
      "message": "Merge pull request #203 from ayushcodes27/refactor/migrate-registration-to-app-translate\n\nrefactor(frontend): migrate registration screen to appTranslate pipe"
    },
    {
      "commit": "9a7c8a9fa92f8f84f6df9882cbe003c766e03787",
      "tree": "1faf1621eb3cfa48b92c079e9ac97bc8af163172",
      "parents": [
        "be5da8d0c6c3ce8632b3d05cc686024969feb253",
        "6116176b99cd27b1644d1282d50593035d21eda2"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Wed Oct 14 10:17:03 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 10:17:03 2026 +0530"
      },
      "message": "Merge pull request #196 from Kollishion/fix/cqrs-data-naming\n\nfix: align command data class names with CQRS conventions"
    },
    {
      "commit": "6116176b99cd27b1644d1282d50593035d21eda2",
      "tree": "1faf1621eb3cfa48b92c079e9ac97bc8af163172",
      "parents": [
        "57299b195f0cf0fc3546b39fcde0426113fe842d"
      ],
      "author": {
        "name": "Abhishek",
        "email": "a86421383@gmail.com",
        "time": "Wed Oct 14 00:53:22 2026 +0530"
      },
      "committer": {
        "name": "Abhishek",
        "email": "a86421383@gmail.com",
        "time": "Wed Oct 14 00:53:22 2026 +0530"
      },
      "message": "test: remove freeze from command data naming rule and its violation store\n"
    },
    {
      "commit": "57299b195f0cf0fc3546b39fcde0426113fe842d",
      "tree": "c087ee8a9f57f5ef81343b8ed0b3dbc3a80cc424",
      "parents": [
        "be5da8d0c6c3ce8632b3d05cc686024969feb253"
      ],
      "author": {
        "name": "Abhishek",
        "email": "a86421383@gmail.com",
        "time": "Sat Oct 10 22:27:02 2026 +0530"
      },
      "committer": {
        "name": "Abhishek",
        "email": "a86421383@gmail.com",
        "time": "Wed Oct 14 00:08:33 2026 +0530"
      },
      "message": "fix: align command data class names with CQRS conventions\n"
    },
    {
      "commit": "72101374ad92a4e814c465fb262f89630a0ce29d",
      "tree": "609b3c8c6605587441457e2bfae4cc80988da292",
      "parents": [
        "be5da8d0c6c3ce8632b3d05cc686024969feb253"
      ],
      "author": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Mon Oct 12 16:20:34 2026 +0530"
      },
      "committer": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Tue Oct 13 19:44:04 2026 +0530"
      },
      "message": "refactor(frontend): migrate registration screen to appTranslate pipe\n"
    },
    {
      "commit": "be5da8d0c6c3ce8632b3d05cc686024969feb253",
      "tree": "778454b6b31330889b231c9836abf7a4446ff0c8",
      "parents": [
        "921795680f6e2b8874c9122f022cfb71280e7c63",
        "4179d506a9628ce9821aff3239ae16317df887d4"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Tue Oct 13 09:06:38 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 09:06:38 2026 +0530"
      },
      "message": "Merge pull request #202 from 1cbyc/1cbyc/177-loans-i18n-adapter\n\nrefactor(frontend): migrate loans screens to appTranslate pipe"
    },
    {
      "commit": "9469346a9ce0559c2a872a08d4eee8e2627823f1",
      "tree": "6f5c6fcfd4a818da36a4ace99442d2e8bc5105c9",
      "parents": [
        "921795680f6e2b8874c9122f022cfb71280e7c63"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 12 11:19:40 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 11:19:40 2026 +0000"
      },
      "message": "chore(deps): bump @modelcontextprotocol/sdk and @angular/cli\n\nRemoves [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk). It\u0027s no longer used after updating ancestor dependency [@angular/cli](https://github.com/angular/angular-cli). These dependencies need to be updated together.\n\n\nRemoves `@modelcontextprotocol/sdk`\n\nUpdates `@angular/cli` from 22.0.3 to 22.2.2\n- [Release notes](https://github.com/angular/angular-cli/releases)\n- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/angular/angular-cli/compare/v22.0.3...v22.2.2)\n\n---\nupdated-dependencies:\n- dependency-name: \"@angular/cli\"\n  dependency-version: 22.2.2\n  dependency-type: direct:development\n- dependency-name: \"@modelcontextprotocol/sdk\"\n  dependency-version:\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "4179d506a9628ce9821aff3239ae16317df887d4",
      "tree": "778454b6b31330889b231c9836abf7a4446ff0c8",
      "parents": [
        "921795680f6e2b8874c9122f022cfb71280e7c63"
      ],
      "author": {
        "name": "1cbyc",
        "email": "isaacnsisong@gmail.com",
        "time": "Mon Oct 12 06:32:36 2026 +0000"
      },
      "committer": {
        "name": "1cbyc",
        "email": "isaacnsisong@gmail.com",
        "time": "Mon Oct 12 10:18:01 2026 +0000"
      },
      "message": "refactor(frontend): migrate loans screens to appTranslate pipe\n\nCo-authored-by: insisong \u003cemmanuelisaacnsisong@gmail.com\u003e\n"
    },
    {
      "commit": "921795680f6e2b8874c9122f022cfb71280e7c63",
      "tree": "fc3ab04e30ece2ed9e1c494f5810171578279c06",
      "parents": [
        "e05b6853a98948db9a9aca7b33f26aa7f2c091c3",
        "8918be068e164b54f885b58d8a6579c23e5dbdae"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Mon Oct 12 15:28:38 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 15:28:38 2026 +0530"
      },
      "message": "Merge pull request #160 from apache/dependabot/npm_and_yarn/frontend/brace-expansion-5.0.12\n\nchore(deps-dev): bump brace-expansion from 5.0.7 to 5.0.12 in /frontend"
    },
    {
      "commit": "e05b6853a98948db9a9aca7b33f26aa7f2c091c3",
      "tree": "9684b0e97f5c209a77ff4ba75940705b3ce09982",
      "parents": [
        "411ea8f58a0887a9645c5f603a65148d9e1548fe",
        "c022412092edd4f2a374248073ee075ef5e1e207"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Mon Oct 12 15:28:02 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 15:28:02 2026 +0530"
      },
      "message": "Merge pull request #200 from ayushcodes27/refactor/migrate-beneficiaries-to-app-translate\n\nrefactor(frontend): migrate beneficiaries screen to appTranslate pipe"
    },
    {
      "commit": "411ea8f58a0887a9645c5f603a65148d9e1548fe",
      "tree": "a469a1c15b1cf4f506dc0cf76bde3d9338b3aaef",
      "parents": [
        "7fc33cfdcf02ec7639a9a1a2cabcce9431e4b23e",
        "f444ba12bb28fb77e53f3f0c46272be66cb652d0"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Mon Oct 12 14:05:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 14:05:08 2026 +0530"
      },
      "message": "Merge pull request #159 from apache/dependabot/npm_and_yarn/frontend/source-map-js-1.2.2\n\nchore(deps-dev): bump source-map-js from 1.2.1 to 1.2.2 in /frontend"
    },
    {
      "commit": "c022412092edd4f2a374248073ee075ef5e1e207",
      "tree": "13fdfaf7bb25d5c8d84ff81b8d42c1c9d03a4208",
      "parents": [
        "7fc33cfdcf02ec7639a9a1a2cabcce9431e4b23e"
      ],
      "author": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Sun Oct 11 16:22:30 2026 +0530"
      },
      "committer": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Mon Oct 12 13:33:15 2026 +0530"
      },
      "message": "refactor(frontend): migrate beneficiaries screen to appTranslate pipe\n"
    },
    {
      "commit": "7fc33cfdcf02ec7639a9a1a2cabcce9431e4b23e",
      "tree": "12e6254bb296806b119849b3c70ffc6deb9e24f4",
      "parents": [
        "d08ac0f6027e0ad9cb2ba51ff96f9572668d14fe",
        "6b25386b59ef350bae500ffa85bdbef59740f004"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Mon Oct 12 10:05:40 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 10:05:40 2026 +0530"
      },
      "message": "Merge pull request #158 from apache/dependabot/npm_and_yarn/frontend/proxy-addr-2.0.8\n\nchore(deps): bump proxy-addr from 2.0.7 to 2.0.8 in /frontend"
    },
    {
      "commit": "d08ac0f6027e0ad9cb2ba51ff96f9572668d14fe",
      "tree": "e322d7bbfd04fcf59aa548270114c3a415eeaba7",
      "parents": [
        "6e9ab126a188b91e7d3a903d692be9b8372870ee",
        "e071600d1dcb222b30eec3fd4c3b790e1398605f"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Mon Oct 12 10:04:23 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 10:04:23 2026 +0530"
      },
      "message": "Merge pull request #198 from FenjuFu/refactor/migrate-profile-settings-to-app-translate\n\nrefactor(frontend): migrate profile and settings screens to appTranslate pipe"
    },
    {
      "commit": "6e9ab126a188b91e7d3a903d692be9b8372870ee",
      "tree": "cb001cc53ab620c2a760272c60601bda4a620125",
      "parents": [
        "6963e6e6520145cd0d4549e01609362387fe9e9c",
        "488a381f0e6da865471aeb445461ff21c74ea4aa"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Mon Oct 12 10:02:26 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 10:02:26 2026 +0530"
      },
      "message": "Merge pull request #201 from 1cbyc/1cbyc/176-consent-demo-i18n\n\nrefactor(frontend): migrate consent and demo i18n"
    },
    {
      "commit": "6963e6e6520145cd0d4549e01609362387fe9e9c",
      "tree": "a943c0cc36a556596806d28848455f2c7d7a0245",
      "parents": [
        "dc931049b8f85ec825d43e0182561e62bb4e4d4c",
        "4c4a1432fadefeb6a4e9532495de7f9d3872a934"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Mon Oct 12 09:58:19 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 12 09:58:19 2026 +0530"
      },
      "message": "Merge pull request #156 from apache/dependabot/github_actions/gradle/actions/setup-gradle-6.4.0\n\nchore(deps): bump gradle/actions/setup-gradle from 6.3.0 to 6.4.0"
    },
    {
      "commit": "488a381f0e6da865471aeb445461ff21c74ea4aa",
      "tree": "8003b1531580411477c9a790bbe09470fa8594c1",
      "parents": [
        "dc931049b8f85ec825d43e0182561e62bb4e4d4c"
      ],
      "author": {
        "name": "1cbyc",
        "email": "isaacnsisong@gmail.com",
        "time": "Sun Oct 11 23:24:03 2026 +0000"
      },
      "committer": {
        "name": "1cbyc",
        "email": "isaacnsisong@gmail.com",
        "time": "Sun Oct 11 23:24:03 2026 +0000"
      },
      "message": "refactor(frontend): migrate consent and demo i18n\n\nReplace direct ngx-translate usage with the application adapter and migrate the consent test to the shared i18n provider. Remove the corresponding lint suppressions.\n\nCo-authored-by: insisong \u003cemmanuelisaacnsisong@gmail.com\u003e\n"
    },
    {
      "commit": "e071600d1dcb222b30eec3fd4c3b790e1398605f",
      "tree": "f97c95eeb8315cfa8d70e51b81d6ce0eaf560c66",
      "parents": [
        "dc931049b8f85ec825d43e0182561e62bb4e4d4c"
      ],
      "author": {
        "name": "FenjuFu",
        "email": "92919259+FenjuFu@users.noreply.github.com",
        "time": "Sun Oct 11 13:34:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 11 13:34:16 2026 +0800"
      },
      "message": "refactor(frontend): migrate profile and settings screens to appTranslate pipe\n\nPart of #172. Closes #179.\n\nSigned-off-by: FenjuFu \u003c92919259+FenjuFu@users.noreply.github.com\u003e"
    },
    {
      "commit": "dc931049b8f85ec825d43e0182561e62bb4e4d4c",
      "tree": "023be69a38aa9133c4897a4cd6d41fcf10a31a49",
      "parents": [
        "a935ca444dc7aa109d8eb2f68fe955bd4b1a8ab7",
        "ae9ae921a99cbd7ee2a778a7744c25de4a90f8e0"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sat Oct 10 22:40:39 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 22:40:39 2026 +0530"
      },
      "message": "Merge pull request #195 from ayushcodes27/refactor/migrate-savings-to-app-translate\n\nrefactor(frontend): migrate savings screens to appTranslate pipe"
    },
    {
      "commit": "a935ca444dc7aa109d8eb2f68fe955bd4b1a8ab7",
      "tree": "059a695ec05e7f5a56b392ca6047b332efcec147",
      "parents": [
        "ecb35d47352f8e59209c3fc7f4bd18def9c259d9",
        "faeb85cf88ac0ad43c534bbce8366cd86bb39429"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sat Oct 10 22:33:23 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 22:33:23 2026 +0530"
      },
      "message": "Merge pull request #194 from ayushcodes27/refactor/migrate-shell-shared-to-app-translate\n\nrefactor(frontend): migrate shell and shared components to appTranslate pipe"
    },
    {
      "commit": "ae9ae921a99cbd7ee2a778a7744c25de4a90f8e0",
      "tree": "02032739f0108d463ff979ea4f824bde530b5d23",
      "parents": [
        "ecb35d47352f8e59209c3fc7f4bd18def9c259d9"
      ],
      "author": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Sat Oct 10 22:07:01 2026 +0530"
      },
      "committer": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Sat Oct 10 22:07:01 2026 +0530"
      },
      "message": "refactor(frontend): migrate savings screens to appTranslate pipe\n"
    },
    {
      "commit": "ecb35d47352f8e59209c3fc7f4bd18def9c259d9",
      "tree": "66ec7bc3823174b044d3f52ee0b993d9a29f9a96",
      "parents": [
        "24074cca3c06a818dc07c70fc383597af2247979",
        "eb8301a9c15f92b8c205de30eaa67ee9f0b529dc"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sat Oct 10 21:33:47 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 21:33:47 2026 +0530"
      },
      "message": "Merge pull request #193 from Aman-Mittal/test/e2e-full-stack-playwright\n\ntest: full-stack Playwright journeys with MFA, in a dedicated multi-stack CI workflow"
    },
    {
      "commit": "faeb85cf88ac0ad43c534bbce8366cd86bb39429",
      "tree": "bda2b2c196c468a41fb5e5e9bdc9e273c4b73db3",
      "parents": [
        "2b947e1f2bb9404d16a518af9492ccbd80ace223"
      ],
      "author": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Sat Oct 10 21:20:03 2026 +0530"
      },
      "committer": {
        "name": "Ayush",
        "email": "deoreayush555@gmail.com",
        "time": "Sat Oct 10 21:20:03 2026 +0530"
      },
      "message": "refactor(frontend): migrate shell and shared components to appTranslate pipe\n"
    },
    {
      "commit": "eb8301a9c15f92b8c205de30eaa67ee9f0b529dc",
      "tree": "66ec7bc3823174b044d3f52ee0b993d9a29f9a96",
      "parents": [
        "aa553f119ef39032fd3ad11e18c2999d304e5007"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 10 21:18:39 2026 +0530"
      },
      "committer": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 10 21:18:39 2026 +0530"
      },
      "message": "ci: run the full-stack journeys in a dedicated workflow across stack combinations\n\nAdd `npm run e2e:full-stack` (and `:ui`), include it in\n`e2e:stack:run`, and run it from a new workflow, e2e-full-stack.yml,\nwhich builds and starts the whole stack (app, BFF, Fineract, both\ndatabases, Valkey, Mailpit) per combination:\n\n- pull requests and main: pinned Fineract image, BFF on the JVM\n- nightly: also Fineract `develop` and the BFF as a native image\n- workflow_dispatch: any Fineract tag with either runtime\n\ndocker-compose.e2e.native.yml swaps in the native BFF for the e2e stack\n(consumer/compose.native.yaml cannot be layered on directly because\nCompose resolves an override\u0027s relative paths against the first file\u0027s\ndirectory). Each run records the images under test in the job summary\nand keeps the report; failures keep traces, videos and container logs.\nDocument the journeys, how to write one, and the CI matrix.\n"
    },
    {
      "commit": "aa553f119ef39032fd3ad11e18c2999d304e5007",
      "tree": "e32bf35bd03f460657dd9454325498e2ad04b16b",
      "parents": [
        "24074cca3c06a818dc07c70fc383597af2247979"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 10 21:12:37 2026 +0530"
      },
      "committer": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 10 21:18:26 2026 +0530"
      },
      "message": "test(frontend): full-stack Playwright journeys against the real BFF and Fineract\n\nThe existing Playwright specs stub every BFF response. Add a second\nsuite, playwright.full-stack.config.ts, that drives the built app\nagainst the docker-compose.e2e.yml stack with nothing mocked.\n\nEach test seeds its own consumer the way the product does: staff create\nthe client, an SSN identifier, two savings accounts and a disbursed\nloan through Fineract\u0027s REST API; the consumer then self-registers in\nthe app with an emailed OTP and signs in with password and emailed\nsecond factor. OTPs are read from Mailpit.\n\n17 journeys cover registration and multi-factor sign-in, wrong\npassword and wrong code, password reset by email, the summary, savings\nand loan details, beneficiaries (add, rename, delete, own-account\nrefusal), transfers to own accounts and to a beneficiary with its\nlimit enforced, loan application with schedule preview and withdrawal,\nloan repayment, profile, password change, the audit trail with an ABAC\nrefusal, navigation and language switching. Money movements and loan\nstatus are asserted in Fineract, not only on screen.\n"
    },
    {
      "commit": "24074cca3c06a818dc07c70fc383597af2247979",
      "tree": "8156650640f89df91fa5e6e46181dc59765b6061",
      "parents": [
        "809a080e119ec1096bd1efaa2d99e616b8814581",
        "c234502a507f413131db10239edf9f05fe3db770"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "32237955+Aman-Mittal@users.noreply.github.com",
        "time": "Sat Oct 10 21:17:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 10 21:17:08 2026 +0530"
      },
      "message": "Merge pull request #191 from Aman-Mittal/fix/frontend-loan-withdraw-command\n\nfix(frontend): send the withdraw command the BFF accepts"
    },
    {
      "commit": "c234502a507f413131db10239edf9f05fe3db770",
      "tree": "8156650640f89df91fa5e6e46181dc59765b6061",
      "parents": [
        "809a080e119ec1096bd1efaa2d99e616b8814581"
      ],
      "author": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 10 21:06:55 2026 +0530"
      },
      "committer": {
        "name": "Aman Mittal",
        "email": "aman.mittal3052000@gmail.com",
        "time": "Sat Oct 10 21:06:55 2026 +0530"
      },
      "message": "fix(frontend): send the withdraw command the BFF accepts\n\nWithdrawing a draft loan application always failed with 400\n(error.msg.consumer.loans.command.application.invalid). The BFF\u0027s\nPOST /api/v1/loans/{loanId} only accepts command\u003dwithdrawnByApplicant,\nFineract\u0027s name for the transition, but the app sent command\u003dwithdraw,\nwhich the controller rejects before calling Fineract.\n\nSend withdrawnByApplicant. The store spec pinned the wrong value and\nnow pins the right one. Found by the full-stack Playwright journey that\nsubmits and withdraws a loan application against the real BFF.\n"
    }
  ],
  "next": "809a080e119ec1096bd1efaa2d99e616b8814581"
}
