{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 76,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "fa896a5318df87b1aa5174e5fa6bd0de3502f077",
            "branch" : [
              {
                "SHA1" : "fa896a5318df87b1aa5174e5fa6bd0de3502f077",
                "name" : "refs/remotes/origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "fa896a5318df87b1aa5174e5fa6bd0de3502f077",
            "branch" : [
              {
                "SHA1" : "fa896a5318df87b1aa5174e5fa6bd0de3502f077",
                "name" : "refs/remotes/origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "fa896a5318df87b1aa5174e5fa6bd0de3502f077",
        "branch" : [
          {
            "SHA1" : "fa896a5318df87b1aa5174e5fa6bd0de3502f077",
            "name" : "refs/remotes/origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/UstadMobile/Respect.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "respect-app-compose-debug.apk",
      "fileName" : "respect-app-compose-debug.apk",
      "relativePath" : "respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk"
    },
    {
      "displayPath" : "respect-app-compose-release.apk",
      "fileName" : "respect-app-compose-release.apk",
      "relativePath" : "respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk"
    },
    {
      "displayPath" : "respect-cli.zip",
      "fileName" : "respect-cli.zip",
      "relativePath" : "respect-cli/build/distributions/respect-cli.zip"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#76",
  "duration" : 190708,
  "estimatedDuration" : 185241,
  "executor" : None,
  "fullDisplayName" : "RESPECT-Primary #76",
  "id" : "76",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 76,
  "queueId" : 3611,
  "result" : "SUCCESS",
  "timestamp" : 1757506260467,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary/76/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportConditionFilterOptions.kt",
          "respect-lib-util/build.gradle.kts",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LocalDateTimeExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportSeries.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportPeriod.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportOptions.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/DateConstants.kt"
        ],
        "commitId" : "90edb85214c2c536e5ecab067ce823313eac5378",
        "timestamp" : 1752569391000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add basic data model for report\u000a",
        "date" : "2025-07-15 14:19:51 +0530",
        "id" : "90edb85214c2c536e5ecab067ce823313eac5378",
        "msg" : "add basic data model for report",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/DateConstants.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportOptions.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportConditionFilterOptions.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LocalDateTimeExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportPeriod.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportSeries.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-util/build.gradle.kts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/headers/directives/DirectivesToMap.kt",
          "respect-lib-shared/build.gradle.kts",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt",
          "gradle/libs.versions.toml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/DateConstants.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportOptions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GenderGraphFormatter.kt",
          "respect-app-compose/build.gradle.kts",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportConditionFilterOptions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/StatementReportRow.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportConditionFilterOptions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ReportQueryResult.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportSeries.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportPeriod.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportPeriod.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportOptions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GraphFormatter.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CountGraphFormatter.kt"
        ],
        "commitId" : "91706f7ba6f87a74072d71da632de0ab98796a1a",
        "timestamp" : 1752655345000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add runreportusecase\u000a",
        "date" : "2025-07-16 14:12:25 +0530",
        "id" : "91706f7ba6f87a74072d71da632de0ab98796a1a",
        "msg" : "add runreportusecase",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportConditionFilterOptions.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/DateConstants.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportPeriod.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportPeriod.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/StatementReportRow.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/headers/directives/DirectivesToMap.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ReportQueryResult.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GraphFormatter.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportSeries.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GenderGraphFormatter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportOptions.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportConditionFilterOptions.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CountGraphFormatter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ReportOptions.kt"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/README.md",
          "respect-test-end-to-end/test-description/004_create_report_test_description.md"
        ],
        "commitId" : "b05053b95779edad0e6740e306b882692eca6c74",
        "timestamp" : 1752656306000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Test-description added for reports\u000a",
        "date" : "2025-07-16 12:58:26 +0400",
        "id" : "b05053b95779edad0e6740e306b882692eca6c74",
        "msg" : "Test-description added for reports",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/README.md"
          },
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/test-description/004_create_report_test_description.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/README.md"
        ],
        "commitId" : "e42093f09ae92bfdbe791654b51c2c93721f9ad8",
        "timestamp" : 1752656402000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Test-description added for reports\u000a",
        "date" : "2025-07-16 13:00:02 +0400",
        "id" : "e42093f09ae92bfdbe791654b51c2c93721f9ad8",
        "msg" : "Test-description added for reports",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/README.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/ReportDao.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/ModifierExt.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDateField.kt",
          "respect-lib-shared/build.gradle.kts",
          "respect-datalayer-db/build.gradle.kts",
          "gradle/libs.versions.toml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/replace.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/MutableStateExt.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/Report.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPagingItems.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "e125dadc29667ded41250f2ab674a5dec1a9d5fd",
        "timestamp" : 1752833656000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add report screens and viewmodels with mock data\u000a",
        "date" : "2025-07-18 15:44:16 +0530",
        "id" : "e125dadc29667ded41250f2ab674a5dec1a9d5fd",
        "msg" : "add report screens and viewmodels with mock data",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/ModifierExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/ReportDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDateField.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPagingItems.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/replace.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/MutableStateExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/Report.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/RunReportResultAndFormatters.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseClientImpl.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
        ],
        "commitId" : "3785347fee9ab79161831889fd04a8087c90829a",
        "timestamp" : 1753079598000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "Added RunReportUseCase as constructor parameter in ReportsViewModels\u000a",
        "date" : "2025-07-21 12:03:18 +0530",
        "id" : "3785347fee9ab79161831889fd04a8087c90829a",
        "msg" : "Added RunReportUseCase as constructor parameter in ReportsViewModels",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseClientImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/RunReportResultAndFormatters.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
        ],
        "commitId" : "c80e9b33288e062eef6d8f8aa173c509978cc66d",
        "timestamp" : 1753082790000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "resolve conflict\u000a",
        "date" : "2025-07-21 12:56:30 +0530",
        "id" : "c80e9b33288e062eef6d8f8aa173c509978cc66d",
        "msg" : "resolve conflict",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt"
        ],
        "commitId" : "8ef4666e610929cb8c72fbbab0fc7addd60ada0f",
        "timestamp" : 1753090994000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add basic report datalayer interface and class.\u000a",
        "date" : "2025-07-21 12:43:14 +0300",
        "id" : "8ef4666e610929cb8c72fbbab0fc7addd60ada0f",
        "msg" : "Add basic report datalayer interface and class.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportPeriod.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
        ],
        "commitId" : "bf072d6801c5bb3fd09b05cfacf1d52a70d85e4b",
        "timestamp" : 1753249709000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "Integrated the mock Respect report data source into dependency injection\u000a",
        "date" : "2025-07-23 11:18:29 +0530",
        "id" : "bf072d6801c5bb3fd09b05cfacf1d52a70d85e4b",
        "msg" : "Integrated the mock Respect report data source into dependency injection",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportPeriod.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/build.gradle.kts",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt"
        ],
        "commitId" : "0b215165389e9d7ec869727ee63f5c511f101603",
        "timestamp" : 1753343136000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "updated list screen with paging source\u000a",
        "date" : "2025-07-24 13:15:36 +0530",
        "id" : "0b215165389e9d7ec869727ee63f5c511f101603",
        "msg" : "updated list screen with paging source",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt"
        ],
        "commitId" : "61ac4af0af40740a4456f984999ccb9da7ba2b37",
        "timestamp" : 1753683436000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "Added ReportTemplateList Screen\u000a",
        "date" : "2025-07-28 11:47:16 +0530",
        "id" : "61ac4af0af40740a4456f984999ccb9da7ba2b37",
        "msg" : "Added ReportTemplateList Screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
        ],
        "commitId" : "a3860ee698dccaebd15c01fdef471353d780e30b",
        "timestamp" : 1753696490000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "resolve conflict\u000a",
        "date" : "2025-07-28 15:24:50 +0530",
        "id" : "a3860ee698dccaebd15c01fdef471353d780e30b",
        "msg" : "resolve conflict",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
        ],
        "commitId" : "e4afcfc5b5f5e850df9cec7d160492638a241856",
        "timestamp" : 1753708420000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "maestro test added - Create Report\u000a",
        "date" : "2025-07-28 17:13:40 +0400",
        "id" : "e4afcfc5b5f5e850df9cec7d160492638a241856",
        "msg" : "maestro test added - Create Report",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml",
          "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
        ],
        "commitId" : "675d55bcd4511b2f6708f614182df3ebf9d908d0",
        "timestamp" : 1753767211000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "maestro test added - tags\u000a",
        "date" : "2025-07-29 09:33:31 +0400",
        "id" : "675d55bcd4511b2f6708f614182df3ebf9d908d0",
        "msg" : "maestro test added - tags",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorData.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indictor/IndictorEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
        ],
        "commitId" : "b8cd0b793566179dc7d19ebd162eb15ce15c1626",
        "timestamp" : 1753767564000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add basic indicator screen\u000a",
        "date" : "2025-07-29 11:09:24 +0530",
        "id" : "b8cd0b793566179dc7d19ebd162eb15ce15c1626",
        "msg" : "add basic indicator screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indictor/IndictorEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorData.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
        ],
        "commitId" : "e8c29d146886847cb91c21e34da3994ebcbab816",
        "timestamp" : 1753769940000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "maestro test added - scroll update\u000a",
        "date" : "2025-07-29 10:19:00 +0400",
        "id" : "e8c29d146886847cb91c21e34da3994ebcbab816",
        "msg" : "maestro test added - scroll update",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
        ],
        "commitId" : "29ecdff64eee928bb83d79e2bdef4a3eb4222467",
        "timestamp" : 1753771678000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "maestro test added - scroll commented\u000a",
        "date" : "2025-07-29 10:47:58 +0400",
        "id" : "29ecdff64eee928bb83d79e2bdef4a3eb4222467",
        "msg" : "maestro test added - scroll commented",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt"
        ],
        "commitId" : "63b7d6193343279ccee94dc377a6998627c5d2d0",
        "timestamp" : 1753851454000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add edit filter screen\u000a",
        "date" : "2025-07-30 10:27:34 +0530",
        "id" : "63b7d6193343279ccee94dc377a6998627c5d2d0",
        "msg" : "add edit filter screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
        ],
        "commitId" : "a037c1be519e02955f6018228959862cb22348ef",
        "timestamp" : 1753940180000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "update filter screen\u000a",
        "date" : "2025-07-31 11:06:20 +0530",
        "id" : "a037c1be519e02955f6018228959862cb22348ef",
        "msg" : "update filter screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorData.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
        ],
        "commitId" : "5adc0e1ed55342909574812fc93e5f0a0b7094da",
        "timestamp" : 1754028871000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "update edit screen\u000a",
        "date" : "2025-08-01 11:44:31 +0530",
        "id" : "5adc0e1ed55342909574812fc93e5f0a0b7094da",
        "msg" : "update edit screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorData.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/joinclazzwithcode/JoinClazzWithCodeViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorSerializer.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/StringResourceSerializer.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indictor/IndictorEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/DefaultIndicators.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorData.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "08f7e848d229d569dadae31d350e7c3c3915c035",
        "timestamp" : 1754455915000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "update indicator screen\u000a",
        "date" : "2025-08-06 10:21:55 +0530",
        "id" : "08f7e848d229d569dadae31d350e7c3c3915c035",
        "msg" : "update indicator screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorSerializer.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indictor/IndictorEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/StringResourceSerializer.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorData.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/DefaultIndicators.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/joinclazzwithcode/JoinClazzWithCodeViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/joinclazzwithcode/JoinClazzWithCodeViewModel.kt"
        ],
        "commitId" : "d302481e89f55febebc91e7ad6fe13e770170985",
        "timestamp" : 1754460402000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "fix test failure\u000a",
        "date" : "2025-08-06 11:36:42 +0530",
        "id" : "d302481e89f55febebc91e7ad6fe13e770170985",
        "msg" : "fix test failure",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/joinclazzwithcode/JoinClazzWithCodeViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indictor/IndictorEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
        ],
        "commitId" : "c0df1a1a128bc59b4d542414ab3bd8eb19f46155",
        "timestamp" : 1754558733000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "update indicator\u000a",
        "date" : "2025-08-07 14:55:33 +0530",
        "id" : "c0df1a1a128bc59b4d542414ab3bd8eb19f46155",
        "msg" : "update indicator",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indictor/IndictorEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
        ],
        "commitId" : "ac77d489b9d370ba3ab7c596b3da23a68c8c4987",
        "timestamp" : 1754641874000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "remove data table from detail screen\u000a",
        "date" : "2025-08-08 14:01:14 +0530",
        "id" : "ac77d489b9d370ba3ab7c596b3da23a68c8c4987",
        "msg" : "remove data table from detail screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indictor/IndictorEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/Indicator.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorSerializer.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/DefaultIndicators.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt"
        ],
        "commitId" : "ac20aeb7f271ceca9339856ed75a95b5b039295b",
        "timestamp" : 1754990282000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add indicator list screen\u000a",
        "date" : "2025-08-12 14:48:02 +0530",
        "id" : "ac20aeb7f271ceca9339856ed75a95b5b039295b",
        "msg" : "add indicator list screen",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/IndicatorSerializer.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/DefaultIndicators.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indictor/IndictorEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/Indicator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
        ],
        "commitId" : "10f9c6f1d79cb056c15f396c5a332aeff3d347a2",
        "timestamp" : 1755496732000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add json on di\u000a",
        "date" : "2025-08-18 11:28:52 +0530",
        "id" : "10f9c6f1d79cb056c15f396c5a332aeff3d347a2",
        "msg" : "add json on di",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
        ],
        "commitId" : "1be91205e4b3c904d8c70ab7a059fcda486b1af2",
        "timestamp" : 1755498818000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "resolve conflict\u000a",
        "date" : "2025-08-18 12:03:38 +0530",
        "id" : "1be91205e4b3c904d8c70ab7a059fcda486b1af2",
        "msg" : "resolve conflict",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
        ],
        "commitId" : "e7266431ed8ff2b9a732d9b96c9cc4952821d37c",
        "timestamp" : 1755508231000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "resolve conflict\u000a",
        "date" : "2025-08-18 14:40:31 +0530",
        "id" : "e7266431ed8ff2b9a732d9b96c9cc4952821d37c",
        "msg" : "resolve conflict",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
        ],
        "commitId" : "9bea3b2273eb8bfe55f14f2de715c0219e073540",
        "timestamp" : 1755515062000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "update filter screen\u000a",
        "date" : "2025-08-18 16:34:22 +0530",
        "id" : "9bea3b2273eb8bfe55f14f2de715c0219e073540",
        "msg" : "update filter screen",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
        ],
        "commitId" : "2e92a1aa26383ef3fe92f18572fadb8badca0be4",
        "timestamp" : 1755592720000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "refactor\u000a",
        "date" : "2025-08-19 14:08:40 +0530",
        "id" : "2e92a1aa26383ef3fe92f18572fadb8badca0be4",
        "msg" : "refactor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
        ],
        "commitId" : "8df9e17b4626e9988a4c871d0fa03666a693844a",
        "timestamp" : 1755666783000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add refactor\u000a",
        "date" : "2025-08-20 10:43:03 +0530",
        "id" : "8df9e17b4626e9988a4c871d0fa03666a693844a",
        "msg" : "add refactor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/ReportDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/Report.kt"
        ],
        "commitId" : "888b74c2008f47881e657c64fd9206ad09b9bd18",
        "timestamp" : 1755671451000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "remove unused code\u000a",
        "date" : "2025-08-20 12:00:51 +0530",
        "id" : "888b74c2008f47881e657c64fd9206ad09b9bd18",
        "msg" : "remove unused code",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/ReportDao.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/Report.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
        ],
        "commitId" : "d482bf5071c493e5e9f778fc5808cd6c40125d82",
        "timestamp" : 1755764629000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "code refactor\u000a",
        "date" : "2025-08-21 13:53:49 +0530",
        "id" : "d482bf5071c493e5e9f778fc5808cd6c40125d82",
        "msg" : "code refactor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
        ],
        "commitId" : "43c0e20abcf081c7ae70b992a85c7132a06f0735",
        "timestamp" : 1755783432000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated test flow as per new design\u000a",
        "date" : "2025-08-21 17:37:12 +0400",
        "id" : "43c0e20abcf081c7ae70b992a85c7132a06f0735",
        "msg" : "Updated test flow as per new design",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
        ],
        "commitId" : "c1c0c77255d3ba900aad3dfa56a441dac8d3bd36",
        "timestamp" : 1755847112000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "fix app crash\u000a",
        "date" : "2025-08-22 12:48:32 +0530",
        "id" : "c1c0c77255d3ba900aad3dfa56a441dac8d3bd36",
        "msg" : "fix app crash",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportPeriod.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/StringResourceSerializer.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
        ],
        "commitId" : "d6a6b1d03f747bbc18bc2cad5fdf249537710f2a",
        "timestamp" : 1755853344000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "resolve conflict\u000a",
        "date" : "2025-08-22 14:32:24 +0530",
        "id" : "d6a6b1d03f747bbc18bc2cad5fdf249537710f2a",
        "msg" : "resolve conflict",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportPeriod.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/StringResourceSerializer.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportOptions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/StatementReportRow.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportOptions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/DefaultIndicators.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportConditionFilterOptions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/StatementReportRow.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportPeriod.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportSeries.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportPeriod.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/ReportDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportConditionFilterOptions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/DefaultIndicators.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
        ],
        "commitId" : "d4cdc10c466efb74fd50ff145a2788d0ff9fc181",
        "timestamp" : 1755862514000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Refactor for implementation of report data source\u000a",
        "date" : "2025-08-22 15:35:14 +0400",
        "id" : "d4cdc10c466efb74fd50ff145a2788d0ff9fc181",
        "msg" : "Refactor for implementation of report data source",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportConditionFilterOptions.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportOptions.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/ReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportPeriod.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/DefaultIndicators.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportSeries.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportSeries.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/StatementReportRow.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/DefaultIndicators.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportConditionFilterOptions.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportOptions.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/ReportPeriod.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/StatementReportRow.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/2.json",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/RealmPrimaryKeyGenerator.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/DateConstants.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/Indicator.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/DefaultIndicators.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/ReportEntity.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/IndicatorEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/IndicatorEntity.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportPeriod.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/ReportEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportSeries.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/IndicatorDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/ReportAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/ReportDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/realm/ReportDataSourceRepository.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/ReportDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportConditionFilterOptions.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/IndicatorDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LocalDateTimeExt.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/ReportScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt"
        ],
        "commitId" : "e1fa893aee51eb4b375c7d03f2cfbb825fd5306b",
        "timestamp" : 1756366110000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "implement report data storage\u000a",
        "date" : "2025-08-28 12:58:30 +0530",
        "id" : "e1fa893aee51eb4b375c7d03f2cfbb825fd5306b",
        "msg" : "implement report data storage",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/ReportScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/IndicatorEntity.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/MockRespectReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/realm/RealmPrimaryKeyGenerator.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LocalDateTimeExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectReportDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/ReportEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/IndicatorDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/IndicatorDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/DefaultIndicators.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportSeries.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportPeriod.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/2.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/ReportDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/entities/ReportEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/Indicator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectRealmDatabase/1.json"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/DateConstants.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/ReportDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/realm/ReportDataSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/adapters/ReportAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/IndicatorEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectRealmDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/model/report/ReportConditionFilterOptions.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/ReportEntityDao.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/ReportDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/realm/ReportDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/ReportDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
        ],
        "commitId" : "0757a3d5d3131638c8a6768b04c2b7df48669042",
        "timestamp" : 1756448786000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "add code refactor\u000a",
        "date" : "2025-08-29 11:56:26 +0530",
        "id" : "0757a3d5d3131638c8a6768b04c2b7df48669042",
        "msg" : "add code refactor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/ReportDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/realm/ReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/realm/daos/ReportEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/realm/ReportDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
        ],
        "commitId" : "cb56ed424c28c132d8375860d05935f887889572",
        "timestamp" : 1756461560000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "resolve conflict\u000a",
        "date" : "2025-08-29 15:29:20 +0530",
        "id" : "cb56ed424c28c132d8375860d05935f887889572",
        "msg" : "resolve conflict",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportOptions.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/DefaultIndicators.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportConditionFilterOptions.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportPeriod.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportSeries.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/StatementReportRow.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt"
        ],
        "commitId" : "627f9d7e12af6eba455e6d7997e8659e74008a99",
        "timestamp" : 1756463566000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "code refactor\u000a",
        "date" : "2025-08-29 16:02:46 +0530",
        "id" : "627f9d7e12af6eba455e6d7997e8659e74008a99",
        "msg" : "code refactor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/DefaultIndicators.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportSeries.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/StatementReportRow.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportPeriod.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportOptions.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportConditionFilterOptions.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt",
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt",
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/RespectAccountExt.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatetoken/ValidateTokenUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthenticatedUserPrincipalId.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt",
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/AuthenticatedUserPrincipalId.kt"
        ],
        "commitId" : "d5aae0a2a00380378e588d248a71845a913de19b",
        "timestamp" : 1756640711000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Rework handling of scopeId to be consistent server side and client side.\u000a",
        "date" : "2025-08-31 15:45:11 +0400",
        "id" : "d5aae0a2a00380378e588d248a71845a913de19b",
        "msg" : "Rework handling of scopeId to be consistent server side and client side.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthenticatedUserPrincipalId.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/RespectAccountExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatetoken/ValidateTokenUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/AuthenticatedUserPrincipalId.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-server/build.gradle.kts",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt",
          "gradle/libs.versions.toml",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/ForbiddenException.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ForbiddenException.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatetoken/ValidateTokenUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
        ],
        "commitId" : "8e393860a4c066ca7bdb93b6e1b8f739004c634a",
        "timestamp" : 1756653928000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress to implement server and client side support for authentication based scopes\u000a\u000aUse StatusPages plugin on KTOR server to set status code from exception\u000aAdd support for obtaining a URL asynchronously in http data sources\u000aAdd server-side dependency injection support for account scope with bearer authentication (which in turn ties data sources to an authenticated users to enforce permission restrictions)\u000a",
        "date" : "2025-08-31 19:25:28 +0400",
        "id" : "8e393860a4c066ca7bdb93b6e1b8f739004c634a",
        "msg" : "Work in progress to implement server and client side support for authentication based scopes",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ForbiddenException.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/ForbiddenException.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatetoken/ValidateTokenUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
        ],
        "commitId" : "cfff8d405cf2b0816b72bd0d7b896841f6483add",
        "timestamp" : 1756721132000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated test flow as per review comment\u000a",
        "date" : "2025-09-01 14:05:32 +0400",
        "id" : "cfff8d405cf2b0816b72bd0d7b896841f6483add",
        "msg" : "Updated test flow as per review comment",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/android-maestro/e2e-tests/004_create_report_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt",
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeIdTest.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/util/di/RespectAccountScopeIdTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt",
          "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
        ],
        "commitId" : "4a854dee6cef8c03060a172d0c810d3a652f288d",
        "timestamp" : 1756738643000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress implementation of using school and account scope based datasources.\u000a",
        "date" : "2025-09-01 18:57:23 +0400",
        "id" : "4a854dee6cef8c03060a172d0c810d3a652f288d",
        "msg" : "Work in progress implementation of using school and account scope based datasources.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeIdTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/util/di/RespectAccountScopeIdTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCaseClient.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt"
        ],
        "commitId" : "e7c0bbebdf552ea78faed3e267e4cc509e1e2889",
        "timestamp" : 1756745243000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress implementation of using school and account scope based datasources.\u000a\u000aFix Application.kt authentication for school realm: was not using standardized scope id.\u000aEnsure respect school api extensions path matches\u000aUpdate ManagerServerCLI to add trailing / to ensure that resolve works as expected\u000aInitial implementation of PersonDataSourceHttp read/fetch functions\u000aAdd ValidateAuthorization to server Koin module\u000a",
        "date" : "2025-09-01 20:47:23 +0400",
        "id" : "e7c0bbebdf552ea78faed3e267e4cc509e1e2889",
        "msg" : "Work in progress implementation of using school and account scope based datasources.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCaseClient.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt"
        ],
        "commitId" : "b1b582356d23830a5e7bfb3abb68565c00a96926",
        "timestamp" : 1756791580000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "code refactor\u000a",
        "date" : "2025-09-02 11:09:40 +0530",
        "id" : "b1b582356d23830a5e7bfb3abb68565c00a96926",
        "msg" : "code refactor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt",
          "respect-lib-util/src/jvmTest/kotlin/world/respect/libutil/ext/UrlResolveTest.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt"
        ],
        "commitId" : "eaf15689526d248b0482be7dc3a8efd9d92d0232",
        "timestamp" : 1756801785000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add improved functions to resolve school endpoint urls.\u000a",
        "date" : "2025-09-02 12:29:45 +0400",
        "id" : "eaf15689526d248b0482be7dc3a8efd9d92d0232",
        "msg" : "Add improved functions to resolve school endpoint urls.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-util/src/jvmTest/kotlin/world/respect/libutil/ext/UrlResolveTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCaseClient.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
        ],
        "commitId" : "96069a792b016e9391f49935d1b9f354c0c1d2d6",
        "timestamp" : 1756802687000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Use updated endpoint url functions on ManagerServerCLI. Change Application path respect-ext to respect to match openapi doc.\u000a",
        "date" : "2025-09-02 12:44:47 +0400",
        "id" : "96069a792b016e9391f49935d1b9f354c0c1d2d6",
        "msg" : "Use updated endpoint url functions on ManagerServerCLI. Change Application path respect-ext to respect to match openapi doc.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithUsernameAndPasswordUseCaseClient.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
        ],
        "commitId" : "dba8de4d9a87b27f05e205f6373156cbacdc638c",
        "timestamp" : 1756807198000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "code refactor\u000a",
        "date" : "2025-09-02 15:29:58 +0530",
        "id" : "dba8de4d9a87b27f05e205f6373156cbacdc638c",
        "msg" : "code refactor",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-http/README.md",
          "respect-datalayer-db/README.md",
          "respect-datalayer-repository/README.md",
          "respect-datalayer/README.md"
        ],
        "commitId" : "1330a3f9e47b97fb6a3cff18830a45b5d6483a18",
        "timestamp" : 1756896752000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update README documentation for datalayer.\u000a",
        "date" : "2025-09-03 14:52:32 +0400",
        "id" : "1330a3f9e47b97fb6a3cff18830a45b5d6483a18",
        "msg" : "Update README documentation for datalayer.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/README.md"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/README.md"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/README.md"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/README.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/README.md",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/TimeInMillis.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/TimeInMillis.kt"
        ],
        "commitId" : "b0496ec948833ba3aab642fded68dc711b776ba5",
        "timestamp" : 1756896825000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update README documentation for datalayer.\u000a",
        "date" : "2025-09-03 14:53:45 +0400",
        "id" : "b0496ec948833ba3aab642fded68dc711b776ba5",
        "msg" : "Update README documentation for datalayer.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/TimeInMillis.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/TimeInMillis.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/README.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt",
          "respect-datalayer-repository/README.md",
          "respect-lib-xxhash/src/commonMain/kotlin/world/respect/libxxhash/jvmimpl/XXHasher64FactoryCommonJvm.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/daos/NetworkValidationInfoEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSourceLocal.kt",
          "respect-lib-xxhash/src/commonMain/kotlin/world/respect/libxxhash/XXHasher64Factory.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkDataSourceValidationHelper.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt",
          "respect-datalayer/build.gradle.kts",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ValidationInfo.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppEntityDao.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/LastModifiedAndETagDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt",
          "respect-lib-util/src/jvmMain/kotlin/world/respect/libutil/util/time/TimeInMillis.jvm.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/ExtendedValidationHelperIntegrationTest.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/TimeInMillis.android.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt",
          "respect-lib-util/src/androidMain/kotlin/world/respect/libutil/util/time/TimeInMillis.android.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json",
          "respect-lib-xxhash/src/commonMain/kotlin/world/respect/libxxhash/XXHasher64.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/TimeInMillis.jvm.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt",
          "respect-lib-xxhash/src/commonMain/kotlin/world/respect/libxxhash/jvmimpl/XXHasher64CommonJvm.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ValidationInfoAdapter.kt"
        ],
        "commitId" : "739e1b734956c086694e1ccab1667ed7521ff972",
        "timestamp" : 1756913689000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress implementation of support for retrieving entities since last check based on time stored.\u000a",
        "date" : "2025-09-03 19:34:49 +0400",
        "id" : "739e1b734956c086694e1ccab1667ed7521ff972",
        "msg" : "Work in progress implementation of support for retrieving entities since last check based on time stored.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/ExtendedValidationHelperIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/androidMain/kotlin/world/respect/libutil/util/time/TimeInMillis.android.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-xxhash/src/commonMain/kotlin/world/respect/libxxhash/jvmimpl/XXHasher64CommonJvm.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/TimeInMillis.android.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/jvmMain/kotlin/world/respect/libutil/util/time/TimeInMillis.jvm.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-xxhash/src/commonMain/kotlin/world/respect/libxxhash/XXHasher64.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ValidationInfo.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/daos/NetworkValidationInfoEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ValidationInfoAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-xxhash/src/commonMain/kotlin/world/respect/libxxhash/XXHasher64Factory.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkDataSourceValidationHelper.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-xxhash/src/commonMain/kotlin/world/respect/libxxhash/jvmimpl/XXHasher64FactoryCommonJvm.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/LastModifiedAndETagDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCaseDbImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/TimeInMillis.jvm.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/README.md"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-server/src/main/kotlin/world/respect/server/Application.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt",
          "respect-datalayer-repository/README.md",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/ExtendedValidationHelperIntegrationTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt",
          "respect-datalayer/build.gradle.kts",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-repository/build.gradle.kts",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/clientservertest/ClientServerDatasourceTest.kt"
        ],
        "commitId" : "d5308698bc23b635a38e83b0961b4cd15d3d0b2d",
        "timestamp" : 1756997788000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Implement end-to-end integration test with a client repository and http server.\u000a\u000aMove authentication into application so it is not required to be used in tests.\u000a",
        "date" : "2025-09-04 18:56:28 +0400",
        "id" : "d5308698bc23b635a38e83b0961b4cd15d3d0b2d",
        "msg" : "Implement end-to-end integration test with a client repository and http server.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/clientservertest/ClientServerDatasourceTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/ExtendedValidationHelperIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/README.md"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/Application.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt",
          "respect-datalayer-repository/README.md",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/ExtendedValidationHelperIntegrationTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimesExt.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimes.kt"
        ],
        "commitId" : "efc31f24719303f370511f7929412ed3250d6cce",
        "timestamp" : 1757056659000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add separate stored property to Person and update docs.\u000a",
        "date" : "2025-09-05 11:17:39 +0400",
        "id" : "efc31f24719303f370511f7929412ed3250d6cce",
        "msg" : "Add separate stored property to Person and update docs.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/README.md"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/ExtendedValidationHelperIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimesExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimes.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-http/build.gradle.kts",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/ExtendedValidationHelperIntegrationTest.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/clientservertest/ClientServerDatasourceTest.kt"
        ],
        "commitId" : "0c95b7fff5294f4cf81520b3c96511f8fcdb7a42",
        "timestamp" : 1757075115000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Improve repository integration testing - broken up into four separate clear given when then scenarios.\u000a",
        "date" : "2025-09-05 16:25:15 +0400",
        "id" : "0c95b7fff5294f4cf81520b3c96511f8fcdb7a42",
        "msg" : "Improve repository integration testing - broken up into four separate clear given when then scenarios.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/clientservertest/ClientServerDatasourceTest.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/ExtendedValidationHelperIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DatalayerPagingUtil.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt",
          "respect-datalayer-db/build.gradle.kts",
          "gradle/libs.versions.toml",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer/build.gradle.kts",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
        ],
        "commitId" : "84ba7389a2164fbe799a86b3d28b8598848e1f57",
        "timestamp" : 1757145771000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress implementation of OffsetLimitHttpPagingSource.\u000a",
        "date" : "2025-09-06 12:02:51 +0400",
        "id" : "84ba7389a2164fbe799a86b3d28b8598848e1f57",
        "msg" : "Work in progress implementation of OffsetLimitHttpPagingSource.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "gradle/libs.versions.toml"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DatalayerPagingUtil.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt",
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
        ],
        "commitId" : "7954b51d1f2ab979c98a88ef8fdad0244db3888b",
        "timestamp" : 1757153691000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress implementing paging source support: use database paging source on the Http REST API server endpoint.\u000a",
        "date" : "2025-09-06 14:14:51 +0400",
        "id" : "7954b51d1f2ab979c98a88ef8fdad0244db3888b",
        "msg" : "Work in progress implementing paging source support: use database paging source on the Http REST API server endpoint.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt"
        ],
        "commitId" : "13f7f92f0ee48df17e7b9c3086297d4d90686bb1",
        "timestamp" : 1757243619000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add validation headers from validation helper to paging source http requests.\u000a",
        "date" : "2025-09-07 15:13:39 +0400",
        "id" : "13f7f92f0ee48df17e7b9c3086297d4d90686bb1",
        "msg" : "Add validation headers from validation helper to paging source http requests.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/LocalModelDataSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt",
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
        ],
        "commitId" : "ccded0b1d3ddd1d77280b8ed0ef5eef717c3c8b6",
        "timestamp" : 1757249938000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress to implement repository paging source support.\u000a\u000aRework getAsDataLoadState to support Ktor TypeInfo (so it can be used from OffsetLimitHttpPagingSource.kt\u000a",
        "date" : "2025-09-07 16:58:58 +0400",
        "id" : "ccded0b1d3ddd1d77280b8ed0ef5eef717c3c8b6",
        "msg" : "Work in progress to implement repository paging source support.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/LocalModelDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/LocalModelDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt"
        ],
        "commitId" : "02e143e805d2728e8f766bfe6a71d35005b12e7e",
        "timestamp" : 1757254760000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial implementation of a repository paging source.\u000a",
        "date" : "2025-09-07 18:19:20 +0400",
        "id" : "02e143e805d2728e8f766bfe6a71d35005b12e7e",
        "msg" : "Initial implementation of a repository paging source.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/LocalModelDataSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt",
          "respect-datalayer-http/build.gradle.kts",
          "respect-datalayer-db/build.gradle.kts",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt",
          "respect-datalayer/build.gradle.kts",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSource.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/build.gradle.kts",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt",
          "respect-datalayer-repository/build.gradle.kts",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
        ],
        "commitId" : "49bdcadd9e85636dcf3e2520df359314bbb756d9",
        "timestamp" : 1757262781000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial mostly working usage of PagingSource repository.\u000a\u000aFix RepositoryOffsetLimitPagingSource to user super.load such that registerInvalidateCallbackIfNeeded is called. This fixes displaying data once loaded.\u000a\u000aAdd Napier logging.\u000a\u000aSwitch PersonList to use Paging.\u000a",
        "date" : "2025-09-07 20:33:01 +0400",
        "id" : "49bdcadd9e85636dcf3e2520df359314bbb756d9",
        "msg" : "Initial mostly working usage of PagingSource repository.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/build.gradle.kts"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt"
        ],
        "commitId" : "9da8003cc993fdfcdd81802dfcb269d5b0634e19",
        "timestamp" : 1757316165000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix PersonAdapter to set stored instant in .toModel() . This was missed which caused http response validation to fail.\u000a",
        "date" : "2025-09-08 11:22:45 +0400",
        "id" : "9da8003cc993fdfcdd81802dfcb269d5b0634e19",
        "msg" : "Fix PersonAdapter to set stored instant in .toModel() . This was missed which caused http response validation to fail.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt",
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt",
          "respect-server/build.gradle.kts",
          "respect-datalayer-repository/build.gradle.kts",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/clientservertest/ClientServerDatasourceTest.kt"
        ],
        "commitId" : "3a3ee8aa2751e50f44375b91d4b08e2d31ea3603",
        "timestamp" : 1757316868000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial testing for repository handling PagingSource cache validation.\u000a",
        "date" : "2025-09-08 11:34:28 +0400",
        "id" : "3a3ee8aa2751e50f44375b91d4b08e2d31ea3603",
        "msg" : "Initial testing for repository handling PagingSource cache validation.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/clientservertest/ClientServerDatasourceTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/build.gradle.kts"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
        ],
        "commitId" : "f7db42b8a738bb0c025bf4bc8702c1bf310bf122",
        "timestamp" : 1757318306000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Handle http paging source cache scenarios.\u000a",
        "date" : "2025-09-08 11:58:26 +0400",
        "id" : "f7db42b8a738bb0c025bf4bc8702c1bf310bf122",
        "msg" : "Handle http paging source cache scenarios.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
        ],
        "commitId" : "718fca95982adfdd10aa622031b8bf2b041a70aa",
        "timestamp" : 1757320272000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix PersonRepositoryIntegrationTest: Set last modified time after when updating on server side.\u000a",
        "date" : "2025-09-08 12:31:12 +0400",
        "id" : "718fca95982adfdd10aa622031b8bf2b041a70aa",
        "msg" : "Fix PersonRepositoryIntegrationTest: Set last modified time after when updating on server side.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt",
          "respect-datalayer-repository/build.gradle.kts",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
        ],
        "commitId" : "04eba64bf51ea5882dbb7f00c947c27579d867fb",
        "timestamp" : 1757328601000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Repository paging work in progress:\u000aa) Implement person find by guid properly\u000ab) Temporary change to AddSchoolUseCase to add more people to allow real-world paging test.\u000a",
        "date" : "2025-09-08 14:50:01 +0400",
        "id" : "04eba64bf51ea5882dbb7f00c947c27579d867fb",
        "msg" : "Repository paging work in progress:",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
        ],
        "commitId" : "55e1c526556194356ce3ad5229a7c33c12313f0e",
        "timestamp" : 1757330065000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Avoid paging data source not making refresh request to server where required.\u000a",
        "date" : "2025-09-08 15:14:25 +0400",
        "id" : "55e1c526556194356ce3ad5229a7c33c12313f0e",
        "msg" : "Avoid paging data source not making refresh request to server where required.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
        ],
        "commitId" : "b4d8063988d772f494dfeb7c3e6c27490c7591c5",
        "timestamp" : 1757337739000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Work in progress : convert to using DataLoadState on PagingSource.\u000a",
        "date" : "2025-09-08 17:22:19 +0400",
        "id" : "b4d8063988d772f494dfeb7c3e6c27490c7591c5",
        "msg" : "Work in progress : convert to using DataLoadState on PagingSource.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagedItemHolder.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
        ],
        "commitId" : "a4c0e9f4da98156fd4ba1fa75f8494f8a4204748",
        "timestamp" : 1757344122000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add PagedItemHolder for datalayer paging sources.\u000a",
        "date" : "2025-09-08 19:08:42 +0400",
        "id" : "a4c0e9f4da98156fd4ba1fa75f8494f8a4204748",
        "msg" : "Add PagedItemHolder for datalayer paging sources.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagedItemHolder.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-lib-util/src/androidMain/kotlin/world/respect/libutil/util/ConcurrentSafeList.android.kt",
          "respect-lib-util/src/jvmMain/kotlin/world/respect/libutil/util/ConcurrentSafeList.jvm.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-repository/build.gradle.kts",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/ConcurrentSafeList.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/PagingSourceMediatorStore.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt"
        ],
        "commitId" : "65b72499f6eab9876bd305fd625f969183c9c853",
        "timestamp" : 1757402120000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Initial working offline-first paging source based on DoorOffsetLimitRemoteMediator.\u000a",
        "date" : "2025-09-09 11:15:20 +0400",
        "id" : "65b72499f6eab9876bd305fd625f969183c9c853",
        "msg" : "Initial working offline-first paging source based on DoorOffsetLimitRemoteMediator.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/androidMain/kotlin/world/respect/libutil/util/ConcurrentSafeList.android.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/jvmMain/kotlin/world/respect/libutil/util/ConcurrentSafeList.jvm.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/ConcurrentSafeList.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/PagingSourceMediatorStore.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-lib-shared/build.gradle.kts",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LoadParamsExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-repository/build.gradle.kts",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagedItemHolder.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt"
        ],
        "commitId" : "9aec73aa181ada9a9ee73b45b314ed5b920470b3",
        "timestamp" : 1757418613000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix paging infinite loop issue\u000a\u000aUsing lazypagingitems.get within the key function in Jetpack compose led to an infinite loading loop.\u000a\u000aPaging related logging updated to use consistent log prefixes for troubleshooting.\u000a",
        "date" : "2025-09-09 15:50:13 +0400",
        "id" : "9aec73aa181ada9a9ee73b45b314ed5b920470b3",
        "msg" : "Fix paging infinite loop issue",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/build.gradle.kts"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagedItemHolder.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LoadParamsExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt"
        ],
        "commitId" : "71f3c316ca1068936527b0a59f93bb8e6d1de8b2",
        "timestamp" : 1757426443000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Tidy up handling of http parameters for person endpoint.\u000a",
        "date" : "2025-09-09 18:00:43 +0400",
        "id" : "71f3c316ca1068936527b0a59f93bb8e6d1de8b2",
        "msg" : "Tidy up handling of http parameters for person endpoint.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt",
          "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
        ],
        "commitId" : "61478d57e700ad7bd15d497279c2f3215b2f3913",
        "timestamp" : 1757433673000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix handling of person role joins on datalayer-db\u000a",
        "date" : "2025-09-09 20:01:13 +0400",
        "id" : "61478d57e700ad7bd15d497279c2f3215b2f3913",
        "msg" : "Fix handling of person role joins on datalayer-db",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithUsernameAndPasswordDbImpl.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
        ],
        "commitId" : "8614140970a399a5f9a22f999ef8651564f0e66d",
        "timestamp" : 1757487207000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add respectPagingItems to avoid pitfalls of using lazy paging items in other screens.\u000a",
        "date" : "2025-09-10 10:53:27 +0400",
        "id" : "8614140970a399a5f9a22f999ef8651564f0e66d",
        "msg" : "Add respectPagingItems to avoid pitfalls of using lazy paging items in other screens.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt",
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt"
        ],
        "commitId" : "a9d6d197895a8bc00b892d0b6b2c871b0a31509c",
        "timestamp" : 1757489535000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Tidy up person datasource model to include store function and avoid duplicated update local from remote function.\u000a",
        "date" : "2025-09-10 11:32:15 +0400",
        "id" : "a9d6d197895a8bc00b892d0b6b2c871b0a31509c",
        "msg" : "Tidy up person datasource model to include store function and avoid duplicated update local from remote function.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt",
          "respect-server/src/main/resources/openapi/openapi.yaml"
        ],
        "commitId" : "97242801e32bc9da3d59ef2da125c5c42936ef7f",
        "timestamp" : 1757490595000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update PersonDataSource and openapi.yaml docs.\u000a",
        "date" : "2025-09-10 11:49:55 +0400",
        "id" : "97242801e32bc9da3d59ef2da125c5c42936ef7f",
        "msg" : "Update PersonDataSource and openapi.yaml docs.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/resources/openapi/openapi.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
        ],
        "commitId" : "8219743c4b6c43651c8288875ede4f0c9f7ec550",
        "timestamp" : 1757492119000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix respectPagingItems key function\u000a",
        "date" : "2025-09-10 12:15:19 +0400",
        "id" : "8219743c4b6c43651c8288875ede4f0c9f7ec550",
        "msg" : "Fix respectPagingItems key function",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/resources/openapi/openapi.yaml",
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
        ],
        "commitId" : "1f1b90e081deffa468ed11a9c27fb06bf6bc5178",
        "timestamp" : 1757495010000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update openapi.yaml API docs. Add logging to OffsetLimitHttpPagingSource.kt\u000a",
        "date" : "2025-09-10 13:03:30 +0400",
        "id" : "1f1b90e081deffa468ed11a9c27fb06bf6bc5178",
        "msg" : "Update openapi.yaml API docs. Add logging to OffsetLimitHttpPagingSource.kt",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/resources/openapi/openapi.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt"
        ],
        "commitId" : "a044ece3c490c0200b13dec34ded0f6be4753942",
        "timestamp" : 1757495837000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
          "fullName" : "Anugraha"
        },
        "authorEmail" : "Anugraha@sutara.org",
        "comment" : "resolve conflict\u000a",
        "date" : "2025-09-10 14:47:17 +0530",
        "id" : "a044ece3c490c0200b13dec34ded0f6be4753942",
        "msg" : "resolve conflict",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt",
          "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/Indicator.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/DefaultIndicators.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportSeries.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSourceLocal.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportEntity.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Indicator.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt",
          "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt",
          "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
        ],
        "commitId" : "021422b6cc0f2bb8860cfc8dd60fae874701bbc3",
        "timestamp" : 1757502979000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Refactor report data source to match with person model.\u000a",
        "date" : "2025-09-10 15:16:19 +0400",
        "id" : "021422b6cc0f2bb8860cfc8dd60fae874701bbc3",
        "msg" : "Refactor report data source to match with person model.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Indicator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportSeries.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportEntity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/Indicator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSourceLocal.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/DefaultIndicators.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectReport.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/anugraha",
      "fullName" : "Anugraha"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
      "fullName" : "Mike Dawson"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
      "fullName" : "Pooja Ravi"
    }
  ]
}