)]}'
{
  "log": [
    {
      "commit": "5dfff716773460e5ca6d8d45271282a14f495d09",
      "tree": "3cfb48d9cf683232a37d49f67f8adadc7c308790",
      "parents": [
        "d706d430e1916722640d3ef87c8a9230a83a3af8"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Mar 28 12:23:47 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Mar 28 12:23:47 2026 +0800"
      },
      "message": "fix: update Apache Casbin link\n"
    },
    {
      "commit": "d706d430e1916722640d3ef87c8a9230a83a3af8",
      "tree": "d884c3c672e7e4b453ecdde44b6fb7c389dfee48",
      "parents": [
        "e19ec956537325b6a747f80fd7450ca08fbf5483"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Mar 28 12:22:26 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Mar 28 12:22:26 2026 +0800"
      },
      "message": "feat: publish to asf-site branch\n"
    },
    {
      "commit": "e19ec956537325b6a747f80fd7450ca08fbf5483",
      "tree": "9079c6d9c695768d20d8c90f6e3570b4e2ee6c71",
      "parents": [
        "db147443560d88974286bbc0ff84eb2519916339"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Mar 27 21:25:04 2026 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Mar 27 21:25:04 2026 +0800"
      },
      "message": "fix: add .asf.yaml\n"
    },
    {
      "commit": "db147443560d88974286bbc0ff84eb2519916339",
      "tree": "a396d0482f692243593149bff2dfb79a07df31a7",
      "parents": [
        "84747bdb2b107d52b5e2f9ff7969b1d21527877e"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Dec 23 01:25:10 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Dec 23 01:25:10 2025 +0800"
      },
      "message": "feat: hide editor title bar when embedded in iframe (#368)\n"
    },
    {
      "commit": "84747bdb2b107d52b5e2f9ff7969b1d21527877e",
      "tree": "ddb991eb367205ae3b89b13626fd63c1a5de5f2d",
      "parents": [
        "6f9836025ea7e3c9a24f893c266a7345c6c49201"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Thu Dec 11 21:02:11 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Thu Dec 11 21:02:11 2025 +0800"
      },
      "message": "feat: add preview panel to model gallery (#366)\n"
    },
    {
      "commit": "6f9836025ea7e3c9a24f893c266a7345c6c49201",
      "tree": "d231d5ff68f3839ad7eb4bcc6f6cf42fbb73c6e5",
      "parents": [
        "593a92cc6f2f4292b4bedf65bccfacf8ba605217"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Thu Dec 11 20:44:21 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Thu Dec 11 20:44:21 2025 +0800"
      },
      "message": "feat: improve role graph layout for policy updates (#364)\n"
    },
    {
      "commit": "593a92cc6f2f4292b4bedf65bccfacf8ba605217",
      "tree": "a313a48c4b3944fa31953067b2caddf709286d1b",
      "parents": [
        "33dd41f4062dc86562a0c125ff73918f04ebbfd5"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Tue Dec 09 20:46:04 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Tue Dec 09 20:46:04 2025 +0800"
      },
      "message": "fix: replace whole-card click with dedicated \"Load in Editor\" button in Model Gallery (#362)\n"
    },
    {
      "commit": "33dd41f4062dc86562a0c125ff73918f04ebbfd5",
      "tree": "a6bfe0c0f7760a8813e416bc17b79c89af5697cf",
      "parents": [
        "b7c4acc95083f41a817a8014ab060e0f79c738cc"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Tue Dec 09 20:43:29 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Tue Dec 09 20:43:29 2025 +0800"
      },
      "message": "fix: add search bar to Model Gallery for keyword filtering (#360)\n"
    },
    {
      "commit": "b7c4acc95083f41a817a8014ab060e0f79c738cc",
      "tree": "acb194340e497260cf4089f44f604524a2970236",
      "parents": [
        "767981e50d998f39a441d36933d89257125be536"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Tue Dec 09 01:23:15 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Tue Dec 09 01:23:15 2025 +0800"
      },
      "message": "fix: fix footer positioning on Model Gallery page (#358)\n"
    },
    {
      "commit": "767981e50d998f39a441d36933d89257125be536",
      "tree": "6dee968f3f55df55b6928e572b5c6cb1577a7258",
      "parents": [
        "1ea585dbf9f82b11950f7601f8aff3638a66d46c"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Dec 06 21:53:03 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Dec 06 21:53:03 2025 +0800"
      },
      "message": "fix: make Model and Policy toolbar buttons responsive to viewport width in UI (#356)\n"
    },
    {
      "commit": "1ea585dbf9f82b11950f7601f8aff3638a66d46c",
      "tree": "2d36b1cc056634e3ac8079d5f3d48f67e124af0b",
      "parents": [
        "1b4925d128620654a0713b619b7534142febc82c"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Dec 06 21:01:29 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Dec 06 21:01:29 2025 +0800"
      },
      "message": "fix: fix syntax highlighting for g2, g3+ role definitions (#355)\n"
    },
    {
      "commit": "1b4925d128620654a0713b619b7534142febc82c",
      "tree": "d6b2b7127c2b1823e66583504ef24d043b0945d5",
      "parents": [
        "c52fba06862797c63644524923c2b6089f75c44e"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Dec 06 18:02:35 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Dec 06 18:02:35 2025 +0800"
      },
      "message": "feat: add validation for invalid policy lines in Policy editor (#349)\n"
    },
    {
      "commit": "c52fba06862797c63644524923c2b6089f75c44e",
      "tree": "3374a796b57ee51676f3f040bf9d7eabf49b3716",
      "parents": [
        "97ee81cf611e7dce99034e0eb28a105ce0039195"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Dec 06 18:00:33 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Dec 06 18:00:33 2025 +0800"
      },
      "message": "fix: fix duplicate function names bug (#353)\n"
    },
    {
      "commit": "97ee81cf611e7dce99034e0eb28a105ce0039195",
      "tree": "63d98a1f67d330c054984b937db7748f80802908",
      "parents": [
        "a1bc0343adfde5bfc4daabef4a8519a9519e1d33"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Dec 06 10:58:26 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Dec 06 10:58:26 2025 +0800"
      },
      "message": "fix: fix policy highlighting when clicking Role Inheritance Graph nodes (#348)\n"
    },
    {
      "commit": "a1bc0343adfde5bfc4daabef4a8519a9519e1d33",
      "tree": "3002abb6a1da74f76245d337186e8c7e88c4b3c3",
      "parents": [
        "576328c7b53866d2a376aeedf4dd704b2270cb7b"
      ],
      "author": {
        "name": "TTT",
        "email": "97741063+tjyyy3@users.noreply.github.com",
        "time": "Fri Dec 05 23:16:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 05 23:16:29 2025 +0800"
      },
      "message": "fix: replace inline SVGs with lucide-react icons and `.svg` images (#347)\n\n"
    },
    {
      "commit": "576328c7b53866d2a376aeedf4dd704b2270cb7b",
      "tree": "4d91769fdcfbb42b8ec2c804e667a160db0f0d4e",
      "parents": [
        "9c589e3b6c79666f43a2e07dc71b5e88f21d10c8"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sun Nov 30 01:35:50 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sun Nov 30 01:35:50 2025 +0800"
      },
      "message": "feat: remove redundant expand/collapse button from sidebar (#341)\n"
    },
    {
      "commit": "9c589e3b6c79666f43a2e07dc71b5e88f21d10c8",
      "tree": "c1a3921325894635b8d529a25308b2e352dd8f2c",
      "parents": [
        "0d446d35c4664305fee12fca34a82564b176f1ec"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Nov 29 21:15:31 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Nov 29 21:15:31 2025 +0800"
      },
      "message": "fix: fix Custom Function panel height to resize dynamically (#339)\n"
    },
    {
      "commit": "0d446d35c4664305fee12fca34a82564b176f1ec",
      "tree": "e4b3dbe4ce23842c887800a7fc982dbd7a40a836",
      "parents": [
        "42c5ea057a9c70be8834338b69bfa9cd304eabdf"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Nov 29 16:37:35 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Nov 29 16:37:35 2025 +0800"
      },
      "message": "feat: add resizable sidebar panels (#337)\n"
    },
    {
      "commit": "42c5ea057a9c70be8834338b69bfa9cd304eabdf",
      "tree": "c9515d796149ef518032edc7a3083e3a646914bb",
      "parents": [
        "9d4fe7926a67c2f0114eb586c8f901f5efa27db5"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Nov 29 01:18:17 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Sat Nov 29 01:18:17 2025 +0800"
      },
      "message": "feat: fix node colors in Role Inheritance Graph (#335)\n"
    },
    {
      "commit": "9d4fe7926a67c2f0114eb586c8f901f5efa27db5",
      "tree": "c3bba6d34784e78e8327ccef7628a70895d55327",
      "parents": [
        "3e4df72ae7ae92f2e7ac8a16ffeb4835ad9b291c"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Fri Nov 28 22:35:01 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Fri Nov 28 22:35:01 2025 +0800"
      },
      "message": "feat: add tooltips for buttons (#333)\n"
    },
    {
      "commit": "3e4df72ae7ae92f2e7ac8a16ffeb4835ad9b291c",
      "tree": "80f303543f16ec5cd6e199146c3e9ab9a2ee29c1",
      "parents": [
        "d4d0cd7f7cd459e10481e20e47eefd301fed59e5"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Thu Nov 27 22:07:01 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Thu Nov 27 22:07:01 2025 +0800"
      },
      "message": "feat: improve visibility of nodes and edges in role inheritance graph on dark mode (#332)\n"
    },
    {
      "commit": "d4d0cd7f7cd459e10481e20e47eefd301fed59e5",
      "tree": "b5adab4a14c85c3780cffb9f9c288fd4b89fd855",
      "parents": [
        "54890ef904e57546d9ba14fbcc25997bd9b4970c"
      ],
      "author": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Thu Nov 27 21:34:37 2025 +0800"
      },
      "committer": {
        "name": "Jiayi Tu",
        "email": "istjy@foxmail.com",
        "time": "Thu Nov 27 21:34:37 2025 +0800"
      },
      "message": "feat: improve button and tooltip visibility in dark mode (#329)\n"
    },
    {
      "commit": "54890ef904e57546d9ba14fbcc25997bd9b4970c",
      "tree": "f6ead7214a0101ea813b33509809f0fa985281c6",
      "parents": [
        "5f16aadd4c23c860250e7020b6a25f8fc59774f6"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Wed Nov 26 22:19:00 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Wed Nov 26 22:19:00 2025 +0800"
      },
      "message": "feat: add Discord link to footer (#326)\n"
    },
    {
      "commit": "5f16aadd4c23c860250e7020b6a25f8fc59774f6",
      "tree": "b7b76e5290c40274178ff174c0cb392535d9aeb6",
      "parents": [
        "3c5860fd58435eea15e8ae462cc2a5a00a802a80"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Nov 25 22:43:12 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Nov 25 22:43:12 2025 +0800"
      },
      "message": "feat: disable Auto switch when user is performing actions (#324)\n"
    },
    {
      "commit": "3c5860fd58435eea15e8ae462cc2a5a00a802a80",
      "tree": "a51b2274c57f1d0add8277b4f4a4d0baf6095739",
      "parents": [
        "5fa93ebe59097cf900cbff215f9185863f5314cb"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Nov 25 00:11:45 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Tue Nov 25 00:11:45 2025 +0800"
      },
      "message": "feat: add \"(empty)\" label to Role Inheritance Graph when no policy exists (#321)\n"
    },
    {
      "commit": "5fa93ebe59097cf900cbff215f9185863f5314cb",
      "tree": "01a793d7ed38516ba0a29daed26fc8d5638ab46f",
      "parents": [
        "8a2e7a389cf688738507832a5c00cc50018d4820"
      ],
      "author": {
        "name": "TTT",
        "email": "97741063+tjyyy3@users.noreply.github.com",
        "time": "Tue Nov 25 00:03:12 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 25 00:03:12 2025 +0800"
      },
      "message": "feat: improve three buttons UI of \"Custom Functions\" (#314)\n\n"
    },
    {
      "commit": "8a2e7a389cf688738507832a5c00cc50018d4820",
      "tree": "f12edfb2c2c8105d1b6d9f5f717645bf5ff8b448",
      "parents": [
        "5bb04a0f58777e016a1d6202136e4ca1ca86b9b8"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Nov 23 22:17:07 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Nov 23 22:17:07 2025 +0800"
      },
      "message": "feat: refactor CustomConfigPanel code (#319)\n"
    },
    {
      "commit": "5bb04a0f58777e016a1d6202136e4ca1ca86b9b8",
      "tree": "28daea4222d1db86a3f12ae23a36fed9112f59e8",
      "parents": [
        "ca14cd90cd740869348e2946c45ea489644c622d"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Nov 23 21:50:37 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sun Nov 23 21:50:37 2025 +0800"
      },
      "message": "feat: replace inline SVGs with lucide-react icons in CustomConfigPanel (#318)\n"
    },
    {
      "commit": "ca14cd90cd740869348e2946c45ea489644c622d",
      "tree": "1ead3496e6783628dcbeee85a83c29703903a58a",
      "parents": [
        "fc317c8a35f1a086c4082386ccc79ed8a6731b1f"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 22 20:38:22 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 22 20:38:22 2025 +0800"
      },
      "message": "feat: add i18n support for UI text strings (#313)\n"
    },
    {
      "commit": "fc317c8a35f1a086c4082386ccc79ed8a6731b1f",
      "tree": "da7db3a98c6d4909be584c0ab61386bf1bbe542a",
      "parents": [
        "bc5349f953aee1dec2bfc4851296bee6b792360f"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 22 19:51:56 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 22 19:51:56 2025 +0800"
      },
      "message": "feat: add auto-carousel for model options (#309)\n"
    },
    {
      "commit": "bc5349f953aee1dec2bfc4851296bee6b792360f",
      "tree": "918d2a480841d3427d5b7867ec4828946f394003",
      "parents": [
        "69d2e68d0ae97ab6eda409aada0ac4d6419c6744"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 22 17:11:35 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 22 17:11:35 2025 +0800"
      },
      "message": "feat: set \"RBAC with multiple roles\" as default model (#307)\n"
    },
    {
      "commit": "69d2e68d0ae97ab6eda409aada0ac4d6419c6744",
      "tree": "00bc10ea9caa5316c3e358746c4fce86bbff6805",
      "parents": [
        "b048f7fe3046f02d9c1847a3bf677c6a354f2318"
      ],
      "author": {
        "name": "TTT",
        "email": "97741063+tjyyy3@users.noreply.github.com",
        "time": "Fri Nov 21 22:05:47 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 21 22:05:47 2025 +0800"
      },
      "message": "feat: add graph highlight (#305)\n\n"
    },
    {
      "commit": "b048f7fe3046f02d9c1847a3bf677c6a354f2318",
      "tree": "2501a1deedfaf427c79ba250da8cc9e34ba90dda",
      "parents": [
        "d24df6898b1a1a0f8bb171d9f7e33bf8eeda4c06"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 14:38:08 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 14:38:08 2025 +0800"
      },
      "message": "feat: add download button to export configurations (#302)\n"
    },
    {
      "commit": "d24df6898b1a1a0f8bb171d9f7e33bf8eeda4c06",
      "tree": "875c2e6038e7b5786afc795c19f132ca83bf2432",
      "parents": [
        "75d06e6a991e219c874de89e2a925e37fbe97733"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 14:16:15 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 14:16:15 2025 +0800"
      },
      "message": "feat: increase spacing between action toolbar buttons (#301)\n"
    },
    {
      "commit": "75d06e6a991e219c874de89e2a925e37fbe97733",
      "tree": "9da22742f8f4a943fe970fb9f356a84e3d04feb3",
      "parents": [
        "4f4e72783ccb04cf4aa4c0105b866241c9c6078b"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 01:36:45 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 01:36:45 2025 +0800"
      },
      "message": "feat: fix Role Inheritance Graph overlapping footer (#296)\n"
    },
    {
      "commit": "4f4e72783ccb04cf4aa4c0105b866241c9c6078b",
      "tree": "c2e921f45b68ec20d99524ca920bbe9df69ca7c1",
      "parents": [
        "54b0b67d2db29dc9512de482f837e7b05e4759d1"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 01:04:25 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 01:04:25 2025 +0800"
      },
      "message": "feat: fix tokenizer incorrectly highlighting \u0027g\u0027 within identifiers as keyword (#294)\n"
    },
    {
      "commit": "54b0b67d2db29dc9512de482f837e7b05e4759d1",
      "tree": "aaf3b457bce73f822e9c5e52b5887353e416953e",
      "parents": [
        "3bf1c6438897107a383b6a8d85d2d44f2d3bce8f"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 01:02:23 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Nov 21 01:02:23 2025 +0800"
      },
      "message": "feat: improve Role Inheritance Graph layout to prevent edge crossing (#292)\n"
    },
    {
      "commit": "3bf1c6438897107a383b6a8d85d2d44f2d3bce8f",
      "tree": "1757a7c6231ae0a9bd54d49ece4cfd971fb86eed",
      "parents": [
        "6149c5bee4f710f92405a81597a8334cbc1f7386"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 20 22:08:50 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 20 22:08:50 2025 +0800"
      },
      "message": "feat: add visual indicator for deny rules in Role Inheritance Graph (#291)\n"
    },
    {
      "commit": "6149c5bee4f710f92405a81597a8334cbc1f7386",
      "tree": "017ca29ac494eebd5956b361371f26a566637542",
      "parents": [
        "56c0983628acbd0778f5e2ba28b3d14ba147d006"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 20 21:33:36 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 20 21:33:36 2025 +0800"
      },
      "message": "feat: include custom function names in Ask AI prompt (#290)\n"
    },
    {
      "commit": "56c0983628acbd0778f5e2ba28b3d14ba147d006",
      "tree": "57441dcbe3d1503fd7d79dc2ffc4075fd01f23c2",
      "parents": [
        "a57e3f5e9ee94d9e2d12d7af05ca22f6a269dc6a"
      ],
      "author": {
        "name": "TTT",
        "email": "97741063+tjyyy3@users.noreply.github.com",
        "time": "Thu Nov 20 14:43:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 20 14:43:40 2025 +0800"
      },
      "message": "feat: remove irrelevant text from \u0027Ask AI\u0027 prompt (#285)\n\n"
    },
    {
      "commit": "a57e3f5e9ee94d9e2d12d7af05ca22f6a269dc6a",
      "tree": "00bedc787fd9bb8b8d1a18b24095a905abec848e",
      "parents": [
        "56b65bc074867cf4f03dfabf881ea934803e7b26"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Wed Nov 19 14:13:50 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Wed Nov 19 14:13:50 2025 +0800"
      },
      "message": "feat: aggregate multiple actions on Role Inheritance Graph links (#283)\n"
    },
    {
      "commit": "56b65bc074867cf4f03dfabf881ea934803e7b26",
      "tree": "16ce7bb47094b6f0c76766eaddabeb76bf555a8c",
      "parents": [
        "b9a7bdaf597bcc617136c892e50ddd03560479e5"
      ],
      "author": {
        "name": "TTT",
        "email": "97741063+tjyyy3@users.noreply.github.com",
        "time": "Wed Nov 19 00:25:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 19 00:25:40 2025 +0800"
      },
      "message": "feat: add detailed error message when share button fails (#280)\n\n"
    },
    {
      "commit": "b9a7bdaf597bcc617136c892e50ddd03560479e5",
      "tree": "cc4c01a6097f8c9a06a5815a9dbb3aef838c94ba",
      "parents": [
        "63deab46bed476ceb64479c7aa75f28bbe3336fc"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 13 01:51:35 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Thu Nov 13 01:51:35 2025 +0800"
      },
      "message": "feat: add Copy button to export editor content (#278)\n"
    },
    {
      "commit": "63deab46bed476ceb64479c7aa75f28bbe3336fc",
      "tree": "f5df494fff368ed097ab4344c3f739d1c201d25d",
      "parents": [
        "0d90485817e1ee470a171c7864a9848a11b87877"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 11:26:47 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 11:26:47 2025 +0800"
      },
      "message": "feat: Unify /model-editor iframe UI with main editor (#273)\n"
    },
    {
      "commit": "0d90485817e1ee470a171c7864a9848a11b87877",
      "tree": "f2b1c47f4b261e389cabb34cb9838e5b3b56b71d",
      "parents": [
        "38a8351a56dfb29c646b67e2fa9b89507c52f4c4"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 02:07:12 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 02:07:12 2025 +0800"
      },
      "message": "feat: fix release owner should be github issue\n"
    },
    {
      "commit": "38a8351a56dfb29c646b67e2fa9b89507c52f4c4",
      "tree": "f7cd45741fa98be19ef3e4e6113f111b4ee052bf",
      "parents": [
        "9e13292d1aaf7a1f574110f5ba4474d69166dc55"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 01:58:29 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 02:00:10 2025 +0800"
      },
      "message": "fix: fix dark mode UI (#269)\n"
    },
    {
      "commit": "9e13292d1aaf7a1f574110f5ba4474d69166dc55",
      "tree": "259070d0be5ba66d1061ffa39e592008b89096dd",
      "parents": [
        "1c359996b134110c44441a04855726f4f8fd2f73"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 01:57:09 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 01:57:09 2025 +0800"
      },
      "message": "feat: add model gallery page (#270)\n"
    },
    {
      "commit": "1c359996b134110c44441a04855726f4f8fd2f73",
      "tree": "de8a401dd0b68f8674562156075db30bc662cf92",
      "parents": [
        "f9158c2cb625038c548be4237e1bd1f8784d0943"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 01:56:04 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Sat Nov 08 01:56:04 2025 +0800"
      },
      "message": "fix: fix some dark mode UI issues (#267)\n"
    },
    {
      "commit": "f9158c2cb625038c548be4237e1bd1f8784d0943",
      "tree": "60d05264d4ecff826dcfa58bb607aef430a76fcb",
      "parents": [
        "da2347f12cc16ca1d608388e967d1715572c1956"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Mon Oct 27 18:13:37 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 27 18:13:37 2025 +0800"
      },
      "message": "feat: add \"Casbin Policy Editor\" to title bar (#265)\n\n"
    },
    {
      "commit": "da2347f12cc16ca1d608388e967d1715572c1956",
      "tree": "8661b25c91a9091e14c4f476683d82bf4f21d430",
      "parents": [
        "9376374d2389f9669f5905db42ca0350abc1848e"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Mon Oct 27 17:27:53 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 27 17:27:53 2025 +0800"
      },
      "message": "fix: add i18n for status messages, unify purple theme, enhance hover effects (#263)\n\n"
    },
    {
      "commit": "9376374d2389f9669f5905db42ca0350abc1848e",
      "tree": "f6cfd6cfbf411c9b3d9e942935d86390eda27d86",
      "parents": [
        "069c5398ee9e2275c5db2df2eb70b11e3f0d182e"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Mon Oct 27 16:10:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 27 16:10:38 2025 +0800"
      },
      "message": "fix: improve editor UI (#257)\n\n"
    },
    {
      "commit": "069c5398ee9e2275c5db2df2eb70b11e3f0d182e",
      "tree": "71a9d793bfb4204431810d8c8e796136e4b4c456",
      "parents": [
        "97827f7e6ba94f413bf371a6f820525e73e367b3"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Mon Oct 27 16:08:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 27 16:08:10 2025 +0800"
      },
      "message": "feat: limit cross-engine tests and electron builds to feature PRs only (#261)\n\n"
    },
    {
      "commit": "97827f7e6ba94f413bf371a6f820525e73e367b3",
      "tree": "a4000184fcec45417ab59b5b76b899b16c47caff",
      "parents": [
        "3d50542a1e540a25daa8040b98b341964409bf94"
      ],
      "author": {
        "name": "Copilot",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Mon Oct 27 14:58:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 27 14:58:35 2025 +0800"
      },
      "message": "feat: update Node.js to 24.10.0 for semantic-release CI (#259)\n\n"
    },
    {
      "commit": "3d50542a1e540a25daa8040b98b341964409bf94",
      "tree": "5046d83797ddcefa790b6f05bedf881e8fa33e61",
      "parents": [
        "f59efaf9e763d52643fb3a92a33244dfa8be8284"
      ],
      "author": {
        "name": "kevin kwok (GUO KE)",
        "email": "13146699620ke@gmail.com",
        "time": "Tue Sep 23 00:20:52 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 23 00:20:52 2025 +0800"
      },
      "message": "feat: improve role graph UI (#253)\n\n"
    },
    {
      "commit": "f59efaf9e763d52643fb3a92a33244dfa8be8284",
      "tree": "abc7da6b0e5496f8621572540061f2e87b4540fe",
      "parents": [
        "5b1024729953285a07b5196a565b1c41627a4a7a"
      ],
      "author": {
        "name": "Zhendong Liu",
        "email": "148350506+bugoutianzhen123@users.noreply.github.com",
        "time": "Mon Sep 22 00:28:23 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 22 00:28:23 2025 +0800"
      },
      "message": "feat: add PBAC model to editor examples (#252)\n\n"
    },
    {
      "commit": "5b1024729953285a07b5196a565b1c41627a4a7a",
      "tree": "92064e32b3cbdff488c11e23ed12dd59722cb6eb",
      "parents": [
        "ba443a7bacf18fc3b3782ac2ae84fac782a1ff2a"
      ],
      "author": {
        "name": "kevin kwok (GUO KE)",
        "email": "13146699620ke@gmail.com",
        "time": "Wed Sep 17 23:59:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 17 23:59:10 2025 +0800"
      },
      "message": "feat: add role inheritance graph (#251)\n\n"
    },
    {
      "commit": "ba443a7bacf18fc3b3782ac2ae84fac782a1ff2a",
      "tree": "fc18ec94394e473bc4a468b21c2815ea47adf029",
      "parents": [
        "5503fca1fb6878ac32f0197fe5b91ca538c7c8ad"
      ],
      "author": {
        "name": "kevin kwok (GUO KE)",
        "email": "13146699620ke@gmail.com",
        "time": "Mon Sep 15 23:37:17 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 23:37:17 2025 +0800"
      },
      "message": "feat: add Casbin.NET (C#) engine to editor (#249)\n\n"
    },
    {
      "commit": "5503fca1fb6878ac32f0197fe5b91ca538c7c8ad",
      "tree": "4137887217e43c99fca7caf0cbfb06bc8c593f29",
      "parents": [
        "610fc324426eccdae7278ab1689b6b9ef7d61979"
      ],
      "author": {
        "name": "FAUST.",
        "email": "126341483+FAUST-BENCHOU@users.noreply.github.com",
        "time": "Mon Sep 15 23:07:51 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 23:07:51 2025 +0800"
      },
      "message": "feat: add per-engine timeout with serial execution (#250)\n\n"
    },
    {
      "commit": "610fc324426eccdae7278ab1689b6b9ef7d61979",
      "tree": "8d247174d1a4e901dafc3ba56fab12b0dcb028c3",
      "parents": [
        "a10204c9d612d4e2e11337a242cff85dbcf0973b"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Tue Aug 12 23:39:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 12 23:39:58 2025 +0800"
      },
      "message": "feat: add LBAC model to editor examples (#247)\n\n"
    },
    {
      "commit": "a10204c9d612d4e2e11337a242cff85dbcf0973b",
      "tree": "9afea91c24c477c5ea258943bb4678a92b69527a",
      "parents": [
        "ef3cddee7054c46579e82770bda5fa713bf92883"
      ],
      "author": {
        "name": "kevin kwok",
        "email": "13146699620ke@gmail.com",
        "time": "Tue Aug 12 10:01:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 12 10:01:10 2025 +0800"
      },
      "message": "feat: improve model selector dropdown UI (#244)\n\n"
    },
    {
      "commit": "ef3cddee7054c46579e82770bda5fa713bf92883",
      "tree": "be6c33c4ae6a41920c82028a2a19915420d0e147",
      "parents": [
        "5da090df7535a354fcdfcb69ca9ca451d344857c"
      ],
      "author": {
        "name": "Zhendong Liu",
        "email": "148350506+bugoutianzhen123@users.noreply.github.com",
        "time": "Sun Aug 10 21:05:09 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 10 21:05:09 2025 +0800"
      },
      "message": "feat: add Biba model example (#245)\n\n"
    },
    {
      "commit": "5da090df7535a354fcdfcb69ca9ca451d344857c",
      "tree": "3a95aa5ea4fe39ac1d2a12296c96554f6d7a1b95",
      "parents": [
        "3b553ba54f9241460b78a5b017e6afb1dd0ff16a"
      ],
      "author": {
        "name": "yxrxy",
        "email": "1532529704@qq.com",
        "time": "Sat Aug 09 17:08:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 09 17:08:40 2025 +0800"
      },
      "message": "feat: upgrade example to support BLP (Bell-LaPadula) model (#243)\n\n"
    },
    {
      "commit": "3b553ba54f9241460b78a5b017e6afb1dd0ff16a",
      "tree": "8940d7075a111cb72a68029925ea6a8a0774f830",
      "parents": [
        "3e5170866094d479ada55444eb8bce9bf74b642d"
      ],
      "author": {
        "name": "kevin kwok",
        "email": "13146699620ke@gmail.com",
        "time": "Mon Aug 04 18:37:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 04 18:37:54 2025 +0800"
      },
      "message": "feat: add PyCasbin (Python) engine to editor (#239)\n\n"
    },
    {
      "commit": "3e5170866094d479ada55444eb8bce9bf74b642d",
      "tree": "efd48f25e5f3c28ca7a7b239c3189f59690348c8",
      "parents": [
        "7f673a9cef23b6c6a8712d9937efb8c8b5fb3b15"
      ],
      "author": {
        "name": "kevin kwok",
        "email": "13146699620ke@gmail.com",
        "time": "Mon Aug 04 17:22:48 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 04 17:22:48 2025 +0800"
      },
      "message": "feat: incrase CI test timeout from 30000ms to 60000ms (#240)\n\n"
    },
    {
      "commit": "7f673a9cef23b6c6a8712d9937efb8c8b5fb3b15",
      "tree": "8bc54bbd0d7381743993d443923671c98b490211",
      "parents": [
        "5c2f99246b39a0901fc90fe7849de64d45bcced6"
      ],
      "author": {
        "name": "D0000M",
        "email": "62919166+D0000M@users.noreply.github.com",
        "time": "Fri Jul 18 15:21:34 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 18 15:21:34 2025 +0800"
      },
      "message": "feat: add ReBAC example (#237)\n\n"
    },
    {
      "commit": "5c2f99246b39a0901fc90fe7849de64d45bcced6",
      "tree": "0040557796b55ade4281ed8940f1f026d76b2ca7",
      "parents": [
        "9dd7f1019da4f336f8ce8ff6f69380959b46b7e6"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Thu Feb 13 21:37:21 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 13 21:37:21 2025 +0800"
      },
      "message": "feat: when the sidebar is open, the editor is fully displayed. (#234)\n\n* feat: introduce FooterToolbar component\r\n\r\n* fix: remove the mask layer\r\n\r\n* feat: add chat panel to editor screen\r\n\r\n* feat: improve PolicyToolbar layout in EditorScreen\r\n\r\n* feat: introduce ModelToolbar and PolicyToolbar components\r\n\r\n* feat: introduce RequestToolbar component"
    },
    {
      "commit": "9dd7f1019da4f336f8ce8ff6f69380959b46b7e6",
      "tree": "4e5dfb67961b7f1fa866317d0b88e1f112295ab3",
      "parents": [
        "aa73d34565e5fcf039d152c594ff4055e1b9ad34"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sun Feb 09 09:05:07 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 09 09:05:07 2025 +0800"
      },
      "message": "test: increase timeout for casbin engine tests (#232)\n\n"
    },
    {
      "commit": "aa73d34565e5fcf039d152c594ff4055e1b9ad34",
      "tree": "638f0f4507b43ada823452ecedd53d723acf02f9",
      "parents": [
        "198497208afa2c724e300450d7a081bd2f7c1677"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sat Feb 08 22:17:18 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 08 22:17:18 2025 +0800"
      },
      "message": "fix: resolve duplicate request issue (#231)\n\n"
    },
    {
      "commit": "198497208afa2c724e300450d7a081bd2f7c1677",
      "tree": "e59c022ac97dabad2a82e130560f0b879af3501a",
      "parents": [
        "307a7c129d6ee90280e9986d0f19f2a50b76cbfd"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Fri Feb 07 18:03:50 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 07 18:03:50 2025 +0800"
      },
      "message": "feat: add \"Refresh Engines\" button (#229)\n\n"
    },
    {
      "commit": "307a7c129d6ee90280e9986d0f19f2a50b76cbfd",
      "tree": "983dd19e3daed107f7406dcb5b1497527cd6c6c2",
      "parents": [
        "07fe099a35b1d10c73b76b326a3cf2aff0d955bd"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Tue Feb 04 23:32:13 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 04 23:32:13 2025 +0800"
      },
      "message": "refactor: centralize engine configuration and type definitions (#226)\n\n* refactor: centralize engine configuration and type definitions\r\n\r\n* refactor: simplify map callbacks with explicit return statements"
    },
    {
      "commit": "07fe099a35b1d10c73b76b326a3cf2aff0d955bd",
      "tree": "ab06b3ca2d76f5cd5ffe2c8c8ec42c29783ea096",
      "parents": [
        "3a4b917b1170c41399d81adf87cc1bef97cc2eea"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Tue Feb 04 02:18:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 04 02:18:40 2025 +0800"
      },
      "message": "feat: support casbin-rust-cli engine (#224)\n\n* feat: add rust engine support to casbin editor\r\n\r\n* feat: add rust version support to editor and policy toolbar"
    },
    {
      "commit": "3a4b917b1170c41399d81adf87cc1bef97cc2eea",
      "tree": "26b5a08672e6120b488fc29d5b1c93412a53c53c",
      "parents": [
        "38239f4e54676d40498614b57949861d0dd7ec60"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Thu Jan 30 17:08:08 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 30 17:08:08 2025 +0800"
      },
      "message": "fix: align identifier generation with backend implementation (#223)\n\n"
    },
    {
      "commit": "38239f4e54676d40498614b57949861d0dd7ec60",
      "tree": "6554425025c385fac079e8e708b02061a838f353",
      "parents": [
        "79cafeb35f8c7f6125993c8f6dc66b6f0097df08"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Wed Jan 29 18:29:46 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 29 18:29:46 2025 +0800"
      },
      "message": "feat: use identifier query param (#222)\n\n* refactor: replace X-Editor-Identifier header with identifier query param\r\n\r\n* feat: enhance identifier generation with SHA-256 hashing and timestamp in useRemoteEnforcer\r\n\r\n* refactor: use arrow function syntax in map callbacks for clarity\r\n\r\n* style: format code style"
    },
    {
      "commit": "79cafeb35f8c7f6125993c8f6dc66b6f0097df08",
      "tree": "74e376178c8b328b5163b9c8356a8cd24cd49e20",
      "parents": [
        "69c957f466b8d88a4bbf44f12f968e3c23afb9fd"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Mon Jan 27 21:03:02 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 27 21:03:02 2025 +0800"
      },
      "message": "feat: add editor identifier header (#221)\n\n"
    },
    {
      "commit": "69c957f466b8d88a4bbf44f12f968e3c23afb9fd",
      "tree": "b58c2c664ac2e86e47411f4e061d80afcefeea56",
      "parents": [
        "4aec98104d2131c95ddaf4caf487484e5b088bd4"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Thu Jan 23 16:17:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 23 16:17:14 2025 +0800"
      },
      "message": "feat: support selecting different Casbin engine endpoints and use icons to enhance UI (#220)\n\n* refactor: remove unused imports and refactor components for consistency\r\n\r\n* feat: add EndpointSelector component and integrate with PolicyToolbar\r\n\r\n* refactor: improve endpoint selection logic and state management\r\n\r\n* feat: add i18n support for custom endpoint placeholder in EndpointSelector\r\n\r\n* refactor: extract endpoint retrieval logic into `getEndpoint` function\r\n\r\n* feat: add tooltip components and integrate with existing UI elements"
    },
    {
      "commit": "4aec98104d2131c95ddaf4caf487484e5b088bd4",
      "tree": "9d590f4a6a1d2ce2916a21618418708b75ea309b",
      "parents": [
        "e6ab88a839a273d914846ed71775aa350f887250"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Wed Jan 22 17:14:53 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 22 17:14:53 2025 +0800"
      },
      "message": "feat: support loading from file and Refactor the folder (#217)\n\n* refactor: move editor-related components and hooks to dedicated directories\r\n\r\n* feat: add FileUploadButton component and reorganize editor components\r\n\r\n* feat: add localization support for \"Load\" text in FileUploadButton\r\n\r\n* refactor: update import paths and clean up unused React imports"
    },
    {
      "commit": "e6ab88a839a273d914846ed71775aa350f887250",
      "tree": "42f579db0c54203e8d450477ee0b176336536c3f",
      "parents": [
        "8a8a647b8dcc77d560678013d91ca2dc2bda3380"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Tue Jan 21 23:27:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 21 23:27:10 2025 +0800"
      },
      "message": "feat: update share functionality to include comparison engines state (#215)\n\n"
    },
    {
      "commit": "8a8a647b8dcc77d560678013d91ca2dc2bda3380",
      "tree": "2c866c4fb67b6b8b92d8e0fd0a910cd68d292955",
      "parents": [
        "27ce9f99372f1abd77150343dd3ce600dc035962"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Tue Jan 21 22:55:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 21 22:55:40 2025 +0800"
      },
      "message": "feat: fix UI for engine and model switching and result comparison (#214)\n\n* refactor: streamline loading state management and enhance enforcer call handling in EditorScreen component\r\n\r\n* refactor: optimize state management and loading behavior\r\n\r\n* refactor: move ModelEditor component to model-editor directory and update imports\r\n\r\n* feat: add request results history and formatting in EditorScreen\r\n\r\n* fix: improve result formatting in EditorScreen componentThe changes include\r\n\r\n* refactor: move result formatting logic to separate utility file and update imports\r\n\r\n* feat: enhance engine selection and comparison functionality in EditorScreen\r\n\r\n* refactor: reorganize state management and extract result formatting logic\r\n\r\n* feat: extract enforce call logic into custom hook useEnforceCall\r\n\r\n* refactor: store last echo value before setting it in useEnforceCall hook\r\n\r\n* refactor: move LanguageMenu component to context directory and update imports\r\n\r\n* feat: add translation for \"Compare\" button in EngineSelector component"
    },
    {
      "commit": "27ce9f99372f1abd77150343dd3ce600dc035962",
      "tree": "58981d482f0858f3bc12c8883a437c247c33c185",
      "parents": [
        "7872e610e6853bb69f82210f983249c25ec4bdfb"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sun Jan 19 23:39:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 19 23:39:29 2025 +0800"
      },
      "message": "feat: add new RBAC examples with domains, time constraints, tags, resource filters, multiple roles, and deny rules (#212)\n\n"
    },
    {
      "commit": "7872e610e6853bb69f82210f983249c25ec4bdfb",
      "tree": "46a880abf88c8f46efb20176fc0978a2aa0fe729",
      "parents": [
        "2fd22b8907ebed3bc9a588f1d6017d5f3b00b165"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sun Jan 19 19:37:44 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 19 19:37:44 2025 +0800"
      },
      "message": "fix: improve custom function panel layout flexibility (#211)\n\n"
    },
    {
      "commit": "2fd22b8907ebed3bc9a588f1d6017d5f3b00b165",
      "tree": "d688ce808bcc43d5cc31df5e9980b919363493a9",
      "parents": [
        "02883dded0c02411247b9b6d32dc5c3f4fa8ad5f"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sun Jan 19 13:21:28 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 19 13:21:28 2025 +0800"
      },
      "message": "feat: Enhance error handling with type-specific linters and error parsing (#210)\n\n"
    },
    {
      "commit": "02883dded0c02411247b9b6d32dc5c3f4fa8ad5f",
      "tree": "bcad323cb0008b74a0bc1f9d128a8a59b8d9d8f8",
      "parents": [
        "65d6103b73d92ed7230a4de7056f2c239dd3839f"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sat Jan 18 23:22:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 18 23:22:14 2025 +0800"
      },
      "message": "fix: handle JSON parsing in request parameters (#208)\n\n"
    },
    {
      "commit": "65d6103b73d92ed7230a4de7056f2c239dd3839f",
      "tree": "622e4ff24af629323e682780015519f7b5ec51b3",
      "parents": [
        "640a15d554b778c7c72e8ffef8b53c0a1d6141e9"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sat Jan 18 22:19:55 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 18 22:19:55 2025 +0800"
      },
      "message": "feat: fix too long error breaking UI (#207)\n\n* style: improve text overflow handling in EditorScreen component\r\n\r\n* feat: add MessageWithTooltip component for displaying truncated messages with tooltips"
    },
    {
      "commit": "640a15d554b778c7c72e8ffef8b53c0a1d6141e9",
      "tree": "c6cd2ebe016cca4cd7123ba12128d80a2ed3d649",
      "parents": [
        "c4e29ca56048296f20261b1a7d673cdb1ff6cf2b"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Thu Jan 16 17:19:26 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 16 17:19:26 2025 +0800"
      },
      "message": "feat: use standard JSON format to fix result for ABAC model (#203)\n\n"
    },
    {
      "commit": "c4e29ca56048296f20261b1a7d673cdb1ff6cf2b",
      "tree": "d513d391ac78d83f435de15ec544017908df33cd",
      "parents": [
        "39a8df9d98792597207fb0e42a8ed7cced66ed91"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Mon Jan 13 20:58:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 13 20:58:54 2025 +0800"
      },
      "message": "feat: show engine and CLI versions in engine dropdown widget (#202)\n\n* feat: add version fetching for Java and Go Casbin engines\r\n\r\n* fix: update engine GitHub links to use version-specific tags for Java and Go\r\n\r\n* feat: extract engine version logic into custom hook useEngineVersions\r\n\r\n* feat: handle unknown versions and refactor GitHub link generation in useEngineVersions hook\r\n\r\n* refactor: make getVersion method optional in ICasbinEngine interface and simplify version fetching in useEngineVersions hook\r\n\r\n* feat: enhance version handling to include both engine and library versions\r\n\r\n* fix: ensure consistent version formatting in editor component\r\n\r\n* refactor: simplify and generalize engine version handling in useEngineVersions hook\r\n\r\n* refactor: simplify version handling and improve type safety\r\n\r\n* style: update formatting in editor dropdown options for Java and Go versions"
    },
    {
      "commit": "39a8df9d98792597207fb0e42a8ed7cced66ed91",
      "tree": "6a42741400bd1d7101f27d22675ac0adc9317cdd",
      "parents": [
        "ca387c8278d5cde7f00dcc21ecdd045ffb00443d"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sat Jan 11 22:49:07 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 11 22:49:07 2025 +0800"
      },
      "message": "feat: add keymatch3, keymatch4, and keymatch5 to model list (#199)\n\n"
    },
    {
      "commit": "ca387c8278d5cde7f00dcc21ecdd045ffb00443d",
      "tree": "4235f53ec3be6c901c63e55bb21541df97fa2ab8",
      "parents": [
        "582a8f31c098ff75f180c7bb14945bc60bc818bf"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Jan 10 22:16:18 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Jan 10 22:16:18 2025 +0800"
      },
      "message": "feat: remove \"act\" in ABAC model text\n"
    },
    {
      "commit": "582a8f31c098ff75f180c7bb14945bc60bc818bf",
      "tree": "c7adc23bcdc2eb36d4c4e5aa8b5123f7ea2e08eb",
      "parents": [
        "9e81fe7e2c4db8014ce9affca46404e68a969b4d"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Fri Jan 10 22:10:05 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 10 22:10:05 2025 +0800"
      },
      "message": "feat: fix undefined reason in ABAC enforceEx result in Node.js engine (#196)\n\n* refactor: simplify ABAC model definition by removing unnecessary \u0027act\u0027 parameter\r\n\r\n* chore: update casbin dependency to version 5.37.0\r\n\r\n* Update example.ts\r\n\r\n---------\r\n\r\nCo-authored-by: hsluoyz \u003chsluoyz@qq.com\u003e"
    },
    {
      "commit": "9e81fe7e2c4db8014ce9affca46404e68a969b4d",
      "tree": "3668624797d34de594bd18685808c92c67816698",
      "parents": [
        "348526184ea895aa120bdf88f0d6540f1d6eade8"
      ],
      "author": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Jan 10 01:45:28 2025 +0800"
      },
      "committer": {
        "name": "Yang Luo",
        "email": "hsluoyz@gmail.com",
        "time": "Fri Jan 10 01:45:28 2025 +0800"
      },
      "message": "feat: fix bug, no need to keep request size as 3 in Go engine\n"
    },
    {
      "commit": "348526184ea895aa120bdf88f0d6540f1d6eade8",
      "tree": "6c7c5eb9f7d36a6605af507c943fdf25cfd4ddbc",
      "parents": [
        "df62f3c0c52b5554204058869bbae78679b6d76c"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Mon Jan 06 15:45:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 06 15:45:22 2025 +0800"
      },
      "message": "feat: add response window\u0027s loading UI for engine selection (#192)\n\n* feat: add loading state for engine selection in editor component\r\n\r\n* feat: add loading overlay to CodeMirror in editor component for improved user experience\r\n\r\n* feat: enhance engine selection logic with enforcer integration and response handling\r\n\r\n* fix: prevent unnecessary effect execution on engine change"
    },
    {
      "commit": "df62f3c0c52b5554204058869bbae78679b6d76c",
      "tree": "244cac94c6227d7c500d9b20866e56017574a12d",
      "parents": [
        "0b0f8aea1b6078f508db1c3d9d9e1eb8b4bf42c3"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sun Jan 05 17:48:06 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 05 17:48:06 2025 +0800"
      },
      "message": "feat: fix the bug that `matchingForGFunction` and `matchingDomainForGFunction` can affect the logic of role matching and domain matching (#189)\n\n"
    },
    {
      "commit": "0b0f8aea1b6078f508db1c3d9d9e1eb8b4bf42c3",
      "tree": "6e6785ea755c2469771797e998ec24c431ee0697",
      "parents": [
        "666552a4cf8a40c20b591cb930f1a7f42786d8b3"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sat Jan 04 19:46:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 04 19:46:29 2025 +0800"
      },
      "message": "feat: Improve \"Share\" button with engine selection and clipboard support, improve i18n (#188)\n\n* feat: improve share button UX with toast notifications\r\n\r\n* refactor: remove unused useCopy hook and related share state in EditorScreen\r\n\r\n* feat: add selectedEngine state and integrate it into share functionality\r\n\r\n* refactor: simplify enforcer logic in EditorScreen by removing redundant engine check\r\n\r\n* feat: add localization support for sharing messages in useShareInfo hook\r\n\r\n* feat: add translation for \"Test completed successfully\" in multiple languages"
    },
    {
      "commit": "666552a4cf8a40c20b591cb930f1a7f42786d8b3",
      "tree": "10cb124713067c843500c1c98930a038ba6cdd16",
      "parents": [
        "1bd5e26c9c0884532d8852645fbe4b1e5a73673e"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Fri Jan 03 20:35:42 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jan 03 20:35:42 2025 +0800"
      },
      "message": "feat: improve logging and error handling in Casbin Engine tests (#186)\n\n"
    },
    {
      "commit": "1bd5e26c9c0884532d8852645fbe4b1e5a73673e",
      "tree": "d9984313fbf82fef9417d922ac57571fcda7228e",
      "parents": [
        "73535059bbcc7393f49700942da283a6bf05852d"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Thu Jan 02 16:13:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 02 16:13:38 2025 +0800"
      },
      "message": "feat: set up a test in CI to verify whether all Casbin engines return the same response in all scenarios. (#185)\n\n* chore: add Jest configuration and update package.json for testing setup\r\n\r\n* feat: add Casbin engine cross-engine enforcement consistency tests\r\n\r\n* test: enhance error handling and logging in Casbin engine tests\r\n\r\n* refactor: simplify error handling and remove redundant try-catch in casbinEngine tests\r\n\r\n* chore: add cross-engine test workflow for Casbin\r\n\r\n* chore: add `add_jest_configuration` branch to cross-engine-test workflow triggers\r\n\r\n* chore: remove add_jest_configuration branch from cross-engine-test workflow"
    },
    {
      "commit": "73535059bbcc7393f49700942da283a6bf05852d",
      "tree": "270f610cf67399286d78623535dc0abde572a4c6",
      "parents": [
        "3f74ea3d2fb6c930875610d3934f7a6d77a6d7c1"
      ],
      "author": {
        "name": "Liao Xin",
        "email": "93535922+liewstar@users.noreply.github.com",
        "time": "Tue Dec 24 00:24:35 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 24 00:24:35 2024 +0800"
      },
      "message": "feat: use enforceEx in remoteEnforcer to show response reason (#182)\n\n* feat: modify the parameter enforce to enforceEx to display Reason\r\n\r\n* fix: synchronous display mode"
    },
    {
      "commit": "3f74ea3d2fb6c930875610d3934f7a6d77a6d7c1",
      "tree": "72096c4882b947d9c216952d5e22b44ec5b6f5d8",
      "parents": [
        "7e9d771d8cbbb9a0c5930d4fe10372a8e3f1df45"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Fri Dec 20 21:16:33 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 20 21:16:33 2024 +0800"
      },
      "message": "feat: Implement a unified Casbin engine interface and refactor the execution logic. (#180)\n\n* feat: implement CasbinEngine and refactor enforcement logic\r\n\r\n* refactor: simplify ModelKind type usage and remove unnecessary type declaration"
    },
    {
      "commit": "7e9d771d8cbbb9a0c5930d4fe10372a8e3f1df45",
      "tree": "a52f62ced213c8ab0dda4857935bf5401f0b9183",
      "parents": [
        "08708a1166696d892a738651127ad17fc24ae33b"
      ],
      "author": {
        "name": "Liao Xin",
        "email": "93535922+liewstar@users.noreply.github.com",
        "time": "Thu Dec 19 17:18:25 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 19 17:18:25 2024 +0800"
      },
      "message": "feat: support jCasbin backend (#178)\n\n"
    },
    {
      "commit": "08708a1166696d892a738651127ad17fc24ae33b",
      "tree": "9131423a6c2c30361b9b34a5f46f651d8bf0861a",
      "parents": [
        "0840e42d8d3c5dcc2a4e4c44c2b7cea7a3dbbb17"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Mon Dec 16 00:43:53 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 16 00:43:53 2024 +0800"
      },
      "message": "feat: improve model editor reset functionality (#177)\n\n"
    },
    {
      "commit": "0840e42d8d3c5dcc2a4e4c44c2b7cea7a3dbbb17",
      "tree": "5d1c66d585cb597b822a462d1b321da75ee9360d",
      "parents": [
        "b84d05b634c1582020d06e3e32deca40a4565668"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sun Dec 15 15:42:13 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 15 15:42:13 2024 +0800"
      },
      "message": "feat: support language sync in iframe editor (#176)\n\n"
    },
    {
      "commit": "b84d05b634c1582020d06e3e32deca40a4565668",
      "tree": "af12a83e87dd76c12c6c20bebc7d2eb52d731e4a",
      "parents": [
        "feab8702b0f3ac7ffc1f8edc04a3a98b78680e31"
      ],
      "author": {
        "name": "Coki",
        "email": "92775570+HashCookie@users.noreply.github.com",
        "time": "Sun Dec 15 00:43:23 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 15 00:43:23 2024 +0800"
      },
      "message": "feat: Improve the advanced editor on the Casdoor model editing page (#175)\n\n* feat: enhance ModelEditor with new features and UI improvements\r\n\r\n* fix: ensure modelText is set only if event.data.modelText exists\r\n\r\n* refactor: update page structure and content extraction logic"
    }
  ],
  "next": "feab8702b0f3ac7ffc1f8edc04a3a98b78680e31"
}
