<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Pooja Ravi</shortDescription><userId>pooja</userId><userName>Pooja Ravi</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>19</buildNumber><marked><SHA1>fde9d744516345a749d8bc5161a6ba686ecc3465</SHA1><branch><SHA1>fde9d744516345a749d8bc5161a6ba686ecc3465</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>fde9d744516345a749d8bc5161a6ba686ecc3465</SHA1><branch><SHA1>fde9d744516345a749d8bc5161a6ba686ecc3465</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>fde9d744516345a749d8bc5161a6ba686ecc3465</SHA1><branch><SHA1>fde9d744516345a749d8bc5161a6ba686ecc3465</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/UstadMobile/Respect.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/19/artifact</artifactsUrl><changesUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/changes</changesUrl><displayUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/19/</displayUrl><testsUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/19/testReport</testsUrl></action><building>false</building><displayName>#19</displayName><duration>325415</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #19</fullDisplayName><id>19</id><inProgress>false</inProgress><keepLog>false</keepLog><number>19</number><queueId>4058</queueId><result>FAILURE</result><timestamp>1761875798152</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/19/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsBelongsTo.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>respect-lib-serializers/README.md</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterOrgGUIDRef.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/SingleItemToListTransformerSerializer.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsSeries.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumSubject.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsPrice.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLink.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUser.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumMetadata.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkPropertiesEncrypted.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/UriStringSerializer.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumContributorObject.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/DisplayString.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsPublication.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/TransferJobDao.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFacet.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidateLinkUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/LangMapAdapter.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsBelongsTo.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/SingleItemToListTransformerSerializer.kt</affectedPath><affectedPath>respect-lib-serializers/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterResourceGUIDRef.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/OpdsSerializationTest.kt</affectedPath><affectedPath>respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/validator/TestValidationScenarios.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumMetadata.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/LangMapExt.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/respectappmanifest/validator/RespectAppManifestValidator.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumLinkEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateLinkUseCaseImpl.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsFacet.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantISO8601Serializer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/UriStringSerializer.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFacetAdapter.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsFeedValidator.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsGroup.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/StringOrObjectSerializer.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItem.kt</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/TransferJobItemDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumLinkProperties.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsPublicationValidator.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringValue.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/LocalDateOrDateTime.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJob.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsAcquisition.kt</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringListSerializer.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/StringListSerializer.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/model/RespectAppManifest.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/LangMap.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkProperties.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/InstantISO8601Serializer.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsFeedMetadata.kt</affectedPath><affectedPath>respect-lib-opds-model/README.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumLinkPropertiesEncrypted.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPrice.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsAcquisition.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsFeed.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/LocalDateOrDateTime.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsSeries.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/StringValue.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumLink.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringOrObjectSerializer.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumContributorObject.kt</affectedPath><commitId>29ef2ae5512c0557e98682858bda1aa8f2a13b92</commitId><timestamp>1753018528000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add downloader to lib-cache: work in progress. Move opds model into its own module so it can be used by lib cache.
</comment><date>2025-07-20 16:35:28 +0300</date><id>29ef2ae5512c0557e98682858bda1aa8f2a13b92</id><msg>Add downloader to lib-cache: work in progress. Move opds model into its own module so it can be used by lib cache.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/UriStringSerializer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/validator/TestValidationScenarios.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/LocalDateOrDateTime.kt</file></path><path><editType>edit</editType><file>respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumMetadata.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/StringValue.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumContributorObject.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFacet.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumLink.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsGroup.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsAcquisition.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidateLinkUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsFeed.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsPublicationValidator.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/model/RespectAppManifest.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumSubjectEntityAdapters.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringOrObjectSerializer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterUser.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringListSerializer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/DisplayString.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkPropertiesEncrypted.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsFeedValidator.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantISO8601Serializer.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsPrice.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumMetadata.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFacetAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsAcquisition.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumLinkEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/OpdsDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsBelongsTo.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/README.md</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLink.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/SingleItemToListTransformerSerializer.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJob.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsSeries.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/UriStringSerializer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/LangMapExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/InstantISO8601Serializer.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsSeries.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumContributorObject.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/README.md</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/respectappmanifest/validator/RespectAppManifestValidator.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/StringOrObjectSerializer.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/LangMap.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/TransferJobDao.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPrice.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkProperties.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/OpdsSerializationTest.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/TransferJobItemDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateLinkUseCaseImpl.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItem.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/SingleItemToListTransformerSerializer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumLinkProperties.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsFeedMetadata.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/serialization/StringListSerializer.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/LangMapAdapter.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsPublication.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsBelongsTo.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/LocalDateOrDateTime.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringValue.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumSubject.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/OpdsFacet.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterOrgGUIDRef.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/rostering/model/OneRosterResourceGUIDRef.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/opds/model/ReadiumLinkPropertiesEncrypted.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItem.kt</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/TransferJobDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/TransferJobItemDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJob.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationGetManifestInfoWorker.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</affectedPath><commitId>23fbf2cdad2a362ad6a717465ec4895d6196aa8a</commitId><timestamp>1753027500000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: add structure for pinning and downloading a publication.
</comment><date>2025-07-20 19:05:00 +0300</date><id>23fbf2cdad2a362ad6a717465ec4895d6196aa8a</id><msg>Work in progress: add structure for pinning and downloading a publication.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/TransferJobItemDao.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJob.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationGetManifestInfoWorker.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/TransferJobDao.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><commitId>7267910b1c8a2858b98fa77626e617ca4fc23cd2</commitId><timestamp>1753031120000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename fields on DownloadJob and DownloadJobItem.
</comment><date>2025-07-20 20:05:20 +0300</date><id>7267910b1c8a2858b98fa77626e617ca4fc23cd2</id><msg>Rename fields on DownloadJob and DownloadJobItem.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/PinnedPublicationDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/PinnedPublication.kt</affectedPath><commitId>9804a6e0b5cb2b587b10469e7130cb9bb14473bf</commitId><timestamp>1753032980000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Download publication work in progress - add pinned publication entity
</comment><date>2025-07-20 20:36:20 +0300</date><id>9804a6e0b5cb2b587b10469e7130cb9bb14473bf</id><msg>Download publication work in progress - add pinned publication entity</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/PinnedPublication.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/PinnedPublicationDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadStatusUpdate.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadProgressUpdate.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/OkCallExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><commitId>2a5022502524a661f9da0eae77a4c0afeb7b6049</commitId><timestamp>1753037247000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Port/adaptation of download implementation from Ustad Mobile to enable pinning web publications to be available offline.
</comment><date>2025-07-20 21:47:27 +0300</date><id>2a5022502524a661f9da0eae77a4c0afeb7b6049</id><msg>Port/adaptation of download implementation from Ustad Mobile to enable pinning web publications to be available offline.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadStatusUpdate.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadProgressUpdate.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/OkCallExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.html</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/audio.ogg</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.json</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/video.mp4</affectedPath><affectedPath>respect-lib-serializers/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/cover.png</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/script.js</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><commitId>37e74031cfa80873b7fab8499d8555535720971d</commitId><timestamp>1753078871000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial integration test for downloader.
</comment><date>2025-07-21 09:21:11 +0300</date><id>37e74031cfa80873b7fab8499d8555535720971d</id><msg>Initial integration test for downloader.</msg><path><editType>edit</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.html</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/cover.png</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/video.mp4</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.json</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/script.js</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/audio.ogg</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><commitId>8a510b56b487499da7d20714ce16092bd3d1dc4f</commitId><timestamp>1753084482000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial integration test for downloader: passes to download/pin an entire publication.
</comment><date>2025-07-21 10:54:42 +0300</date><id>8a510b56b487499da7d20714ce16092bd3d1dc4f</id><msg>Initial integration test for downloader: passes to download/pin an entire publication.</msg><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationGetManifestInfoWorker.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><commitId>4559562ec025db532391eac7c3b02d8835d8a0a9</commitId><timestamp>1754993008000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress adding pin publication job
</comment><date>2025-08-12 14:03:28 +0400</date><id>4559562ec025db532391eac7c3b02d8835d8a0a9</id><msg>Work in progress adding pin publication job</msg><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationGetManifestInfoWorker.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/005_admin_user_creates_a_report_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/004_admin_user_adds_classes_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_003_child_user_join_class_using_invitecode_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_browse_lessons_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/002_browse_lessons_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/006_admin_user_adds_person_account_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_001_user_login_to _app_with_school_name_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_002_Parent_user_join_class_using_invitecode_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/android-maestro/run_test.sh</affectedPath><commitId>9863b3985b93c1f9a5704c96a21e2d6dd23988c8</commitId><timestamp>1756294646000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>respect-e2e test scenarios
</comment><date>2025-08-27 15:37:26 +0400</date><id>9863b3985b93c1f9a5704c96a21e2d6dd23988c8</id><msg>respect-e2e test scenarios</msg><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_browse_lessons_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/002_browse_lessons_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/005_admin_user_creates_a_report_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_001_user_login_to _app_with_school_name_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_003_child_user_join_class_using_invitecode_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/004_admin_user_adds_classes_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/006_admin_user_adds_person_account_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_002_Parent_user_join_class_using_invitecode_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/android-maestro/run_test.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/001_002_user_login_to _app_with_school_link_provided_by_admin_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/005_admin_user_creates_a_report_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_003_child_user_join_class_using_invitecode_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/002_browse_lessons_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/006_admin_user_adds_person_account_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_004_child_user_join_class_using_invitecode_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_003_Parent_user_join_class_using_invitecode_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_002_Parent_user_join_class_using_invitecode_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/android-maestro/run_test.sh</affectedPath><commitId>52f060aad9315ef6bebe3293b967c9f2a12b86ae</commitId><timestamp>1756388628000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>modified test scripts
</comment><date>2025-08-28 17:43:48 +0400</date><id>52f060aad9315ef6bebe3293b967c9f2a12b86ae</id><msg>modified test scripts</msg><path><editType>edit</editType><file>respect-test-end-to-end/test-description/005_admin_user_creates_a_report_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/android-maestro/run_test.sh</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_002_user_login_to _app_with_school_link_provided_by_admin_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_004_child_user_join_class_using_invitecode_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/002_browse_lessons_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/006_admin_user_adds_person_account_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_003_Parent_user_join_class_using_invitecode_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_003_child_user_join_class_using_invitecode_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/android-maestro/e2e-tests/001_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_002_Parent_user_join_class_using_invitecode_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><commitId>4a070498160820112b6a16111e9c91b5dc5325fb</commitId><timestamp>1756388805000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>corrected links
</comment><date>2025-08-28 17:46:45 +0400</date><id>4a070498160820112b6a16111e9c91b5dc5325fb</id><msg>corrected links</msg><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>respect-test-end-to-end/android-maestro/run_test.sh</affectedPath><commitId>46696c06e1c661e671c41ec764a534c1b80eeed9</commitId><timestamp>1756388991000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>clean up
</comment><date>2025-08-28 17:49:51 +0400</date><id>46696c06e1c661e671c41ec764a534c1b80eeed9</id><msg>clean up</msg><path><editType>edit</editType><file>respect-test-end-to-end/android-maestro/run_test.sh</file></path><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/android-maestro/run_test.sh</affectedPath><commitId>839385647599d11cbaa26f744d0c0aa38e91d8b7</commitId><timestamp>1756389148000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Renamed REALM to SCHOOL
</comment><date>2025-08-28 17:52:28 +0400</date><id>839385647599d11cbaa26f744d0c0aa38e91d8b7</id><msg>Renamed REALM to SCHOOL</msg><path><editType>edit</editType><file>respect-test-end-to-end/android-maestro/run_test.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/001_003_Parent_user_join_class_using_invitecode_test_description.md</affectedPath><commitId>51854c8fdf28df8094657eb97c2d1d97527bdcbc</commitId><timestamp>1756728855000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>fix
</comment><date>2025-09-01 16:14:15 +0400</date><id>51854c8fdf28df8094657eb97c2d1d97527bdcbc</id><msg>fix</msg><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_003_Parent_user_join_class_using_invitecode_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><commitId>a38f3ec9fe4ec8aca9aa3e09c8e9e78942bb0152</commitId><timestamp>1758873829000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Implement Settings and School Directory screens

This commit introduces the initial framework for the Settings and School Directory features.

Key changes:

**Navigation &amp; ViewModels:**
- Added new navigation routes: `SettingScreen`, `SchoolDirectoryList`, and `SchoolDirectoryEdit` in `AppRoutes.kt`.
- Created corresponding ViewModels: `SettingViewModel`, `SchoolDirectoryListViewModel`, and `SchoolDirectoryEditViewModel`.
    - `SettingViewModel`:
        - Sets the app bar title to "Settings".
        - Hides the bottom navigation.
        - Provides `onClickSchoolDirectory` to navigate to `SchoolDirectoryList`.
    - `SchoolDirectoryListViewModel`:
        - Sets the app bar title to "School Directory".
        - Hides the bottom navigation.
        - Configures a FAB (Floating Action Button) to add a new directory, navigating to `SchoolDirectoryEdit`.
    - `SchoolDirectoryEditViewModel`:
        - Sets the app bar title to "Add Directory" (or "Edit Directory" - to be implemented).
        - Hides the bottom navigation.
- Registered these new ViewModels in `AppKoinModule.kt`.
- Integrated these new routes and ViewModels into `AppNavHost.kt`.

**UI Screens (Composable):**
- Created `SettingScreen.kt`:
    - Displays a list of settings options (currently only "School Directory").
    - Uses a `LazyColumn` and `SettingListItem` composable.
    - `SettingListItem` displays an icon and title for each option and handles clicks.
- Created `SchoolDirectoryListScreen.kt`:
    - Provides a basic `LazyColumn` structure for displaying school directory items (implementation pending).
- Created `SchoolDirectoryEditScreen.kt`:
    - Provides a placeholder structure for adding/editing school directory entries (implementation pending).

**Account List Integration:**
- Added a "Settings" option to `AccountListScreen.kt`.
    - This option uses `Icons.Default.Settings` and navigates to `SettingScreen` when clicked.
- Added `onClickSettings()` function to `AccountListViewModel.kt` to handle this navigation.

**String Resources:**
- Added new string resources in `strings.xml`:
    - `settings`: "Settings"
    - `school_directory`: "School Directory"
    - `add_directory`: "Add Directory"
    - `edit_directory`: "Edit Directory"
</comment><date>2025-09-26 13:33:49 +0530</date><id>a38f3ec9fe4ec8aca9aa3e09c8e9e78942bb0152</id><msg>feat: Implement Settings and School Directory screens</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><commitId>7d6ceaeaeb8fc9989ccc86204d23081e7e807c75</commitId><timestamp>1758874050000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Implement Settings and School Directory screens

This commit introduces the initial framework for the Settings and School Directory features.

Key changes:

**Navigation &amp; ViewModels:**
- Added new navigation routes: `SettingScreen`, `SchoolDirectoryList`, and `SchoolDirectoryEdit` in `AppRoutes.kt`.
- Created corresponding ViewModels: `SettingViewModel`, `SchoolDirectoryListViewModel`, and `SchoolDirectoryEditViewModel`.
    - `SettingViewModel`:
        - Sets the app bar title to "Settings".
        - Hides the bottom navigation.
        - Provides `onClickSchoolDirectory` to navigate to `SchoolDirectoryList`.
    - `SchoolDirectoryListViewModel`:
        - Sets the app bar title to "School Directory".
        - Hides the bottom navigation.
        - Configures a FAB (Floating Action Button) to add a new directory, navigating to `SchoolDirectoryEdit`.
    - `SchoolDirectoryEditViewModel`:
        - Sets the app bar title to "Add Directory" (or "Edit Directory" - to be implemented).
        - Hides the bottom navigation.
- Registered these new ViewModels in `AppKoinModule.kt`.
- Integrated these new routes and ViewModels into `AppNavHost.kt`.

**UI Screens (Composable):**
- Created `SettingScreen.kt`:
    - Displays a list of settings options (currently only "School Directory").
    - Uses a `LazyColumn` and `SettingListItem` composable.
    - `SettingListItem` displays an icon and title for each option and handles clicks.
- Created `SchoolDirectoryListScreen.kt`:
    - Provides a basic `LazyColumn` structure for displaying school directory items (implementation pending).
- Created `SchoolDirectoryEditScreen.kt`:
    - Provides a placeholder structure for adding/editing school directory entries (implementation pending).

**Account List Integration:**
- Added a "Settings" option to `AccountListScreen.kt`.
    - This option uses `Icons.Default.Settings` and navigates to `SettingScreen` when clicked.
- Added `onClickSettings()` function to `AccountListViewModel.kt` to handle this navigation.

**String Resources:**
- Added new string resources in `strings.xml`:
    - `settings`: "Settings"
    - `school_directory`: "School Directory"
    - `add_directory`: "Add Directory"
    - `edit_directory`: "Edit Directory"
</comment><date>2025-09-26 13:37:30 +0530</date><id>7d6ceaeaeb8fc9989ccc86204d23081e7e807c75</id><msg>feat: Implement Settings and School Directory screens</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><commitId>d67e61f911e9e34d0fc6316c69f71b6e0da5a724</commitId><timestamp>1758878725000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Feat: Implement delete directory functionality

This commit introduces the ability to delete school directories.

Key changes:
- Added `deleteDirectory` function to `SchoolDirectoryDataSource` interface and its implementations (`SchoolDirectoryDataSourceDb`, `SchoolDirectoryDataSourceHttp`, `SchoolDirectoryDataSourceRepository`).
- In `SchoolDirectoryDataSourceDb`, `deleteDirectory` calls `deleteByUrl` on `SchoolDirectoryEntityDao`.
- Added `deleteByUrl` query to `SchoolDirectoryEntityDao` to delete a directory by its URL.
- `SchoolDirectoryListViewModel` now:
    - Injects `RespectAppDataSource`.
    - Loads school directories on initialization.
    - Provides an `onDeleteDirectory` function which calls `deleteDirectory` on the data source and reloads the list.
    - Updates `SchoolDirectoryListUIState` to hold a list of `RespectSchoolDirectory` objects instead of `String`.
- `SchoolDirectoryListScreen` now:
    - Displays a list of `SchoolDirectoryListItem` composables.
    - Passes the `onDeleteDirectory` function from the ViewModel to each item.
- Introduced `SchoolDirectoryListItem` composable:
    - Displays the directory's base URL.
    - Includes a delete icon button that triggers the `onDeleteClick` callback.
- Added a new string resource `delete_directory`.
</comment><date>2025-09-26 14:55:25 +0530</date><id>d67e61f911e9e34d0fc6316c69f71b6e0da5a724</id><msg>Feat: Implement delete directory functionality</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><commitId>1669ddb47a49652cf109a35508d686f114e854d0</commitId><timestamp>1758883877000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Feat: Initial setup for SchoolDirectoryEdit screen

This commit introduces the basic structure for the school directory editing feature.

Key changes:
- Added `SchoolDirectoryEditViewModel` with an initial `SchoolDirectoryEditUIState`.
    - `SchoolDirectoryEditUIState` now includes `schoolDirectoryUrlError` and `schoolDirectory` (a `DataLoadState` for `SchoolDirectoryEntry`).
    - Added a `fieldsEnabled` computed property to `SchoolDirectoryEditUIState` based on the `schoolDirectory` loading state.
    - `SchoolDirectoryEditViewModel` now implements `KoinScopeComponent` and injects `RespectAppDataSource`.
    - The ViewModel initializes the app UI state to set the top app bar title to "Add Directory" and hide the bottom navigation.
    - Added an `onClearError` function to clear `schoolDirectoryUrlError` in the UI state.
- Created `SchoolDirectoryEditScreen.kt` with an initial layout.
    - The screen displays an `OutlinedTextField` for entering a link.
    - The text field's label is "Enter link" and has supporting text "Required".
    - The text field's enabled state is controlled by `uiState.fieldsEnabled`.
    - The text field's error state is controlled by `uiState.schoolDirectoryUrlError`.
    - Added `onClearError` callback to the screen.
</comment><date>2025-09-26 16:21:17 +0530</date><id>1669ddb47a49652cf109a35508d686f114e854d0</id><msg>Feat: Initial setup for SchoolDirectoryEdit screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><commitId>17a87c28b8138996ce185c2598ee1231ba4fa2b9</commitId><timestamp>1758887775000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Move deleteDirectory functionality to SchoolDirectoryEntryDataSource

This commit refactors the `deleteDirectory` functionality from `SchoolDirectoryDataSource` to `SchoolDirectoryEntryDataSource`.

Key changes:
- Removed `deleteDirectory` from `SchoolDirectoryDataSource` interface and its implementations (`SchoolDirectoryDataSourceHttp`, `SchoolDirectoryDataSourceRepository`, `SchoolDirectoryDataSourceDb`).
- Removed `deleteByUrl` from `SchoolDirectoryEntityDao`.
- Added `deleteDirectory` to `SchoolDirectoryEntryDataSource` interface and its implementations (`SchoolDirectoryEntryDataSourceHttp`, `SchoolDirectoryEntryDataSourceRepository`, `SchoolDirectoryEntryDataSourceDb`).
- Added `deleteByUrl` to `SchoolDirectoryEntryEntityDao`.
- Added `listAsPagingSource` (with a TODO) to `SchoolDirectoryEntryDataSource` and its implementations.
- `SchoolDirectoryListViewModel` now uses `SchoolDirectoryEntryDataSource` to load and delete directories.
- `SchoolDirectoryListUIState` now holds a list of `SchoolDirectoryEntry` instead of `RespectSchoolDirectory`.
- `SchoolDirectoryListScreen` and `SchoolDirectoryListItem` updated to use `SchoolDirectoryEntry`.
</comment><date>2025-09-26 17:26:15 +0530</date><id>17a87c28b8138996ce185c2598ee1231ba4fa2b9</id><msg>Refactor: Move deleteDirectory functionality to SchoolDirectoryEntryDataSource</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><commitId>e009056b50f00f8671e192a8a879267d302ebd8f</commitId><timestamp>1758888515000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Move deleteDirectory functionality to SchoolDirectoryEntryDataSource

This commit refactors the `deleteDirectory` functionality from `SchoolDirectoryDataSource` to `SchoolDirectoryEntryDataSource`.

Key changes:
- Removed `deleteDirectory` from `SchoolDirectoryDataSource` interface and its implementations (`SchoolDirectoryDataSourceHttp`, `SchoolDirectoryDataSourceRepository`, `SchoolDirectoryDataSourceDb`).
- Removed `deleteByUrl` from `SchoolDirectoryEntityDao`.
- Added `deleteDirectory` to `SchoolDirectoryEntryDataSource` interface and its implementations (`SchoolDirectoryEntryDataSourceHttp`, `SchoolDirectoryEntryDataSourceRepository`, `SchoolDirectoryEntryDataSourceDb`).
- Added `deleteByUrl` to `SchoolDirectoryEntryEntityDao`.
- Added `listAsPagingSource` (with a TODO) to `SchoolDirectoryEntryDataSource` and its implementations.
- `SchoolDirectoryListViewModel` now uses `SchoolDirectoryEntryDataSource` to load and delete directories.
- `SchoolDirectoryListUIState` now holds a list of `SchoolDirectoryEntry` instead of `RespectSchoolDirectory`.
- `SchoolDirectoryListScreen` and `SchoolDirectoryListItem` updated to use `SchoolDirectoryEntry`.
</comment><date>2025-09-26 17:38:35 +0530</date><id>e009056b50f00f8671e192a8a879267d302ebd8f</id><msg>Refactor: Move deleteDirectory functionality to SchoolDirectoryEntryDataSource</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><commitId>b804f78f632849ec536c0777a5f1f3731f9226e4</commitId><timestamp>1758890429000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Improve School Directory Edit screen UI and ViewModel

This commit refactors the School Directory Edit screen and its ViewModel for an improved user experience.

Key changes:
- In `SchoolDirectoryEditViewModel`:
    - Renamed `schoolDirectoryUrlError` in `SchoolDirectoryEditUIState` to `errorMessage` and changed its type to `UiText?`.
    - Added `linkUrl` to `SchoolDirectoryEditUIState` to hold the input link.
    - Added `onLinkChanged` function to update `linkUrl` and clear any existing error message.
    - Added `onClickNext` function to handle the "Next" button click, which currently parses the entered link.
    - Removed `onClearError` function as error handling is now managed within `onLinkChanged`.
- In `SchoolDirectoryEditScreen.kt`:
    - Updated the `SchoolDirectoryEditScreen` composable to take `onLinkChanged` and `onClickNext` as parameters.
    - Added a `Text` composable to display an introductory message (`app_link_provided_message`).
    - The `OutlinedTextField` now uses `uiState.linkUrl` for its value and calls `onLinkChanged` on value change.
    - The `OutlinedTextField` now displays a placeholder (`example_url_placeholder`) and uses `link_label` for its label.
    - Error messages are now displayed using `uiState.errorMessage` and `uiTextStringResource`.
    - Added a "Next" `Button` that calls `onClickNext` when clicked.
    - General layout adjustments with `Spacer` and `padding`.
- Removed an unused newline in `EnterLinkViewModel.kt`.
- Minor formatting change in `SchoolDirectoryEntryDataSourceHttp.kt`.
</comment><date>2025-09-26 18:10:29 +0530</date><id>b804f78f632849ec536c0777a5f1f3731f9226e4</id><msg>Refactor: Improve School Directory Edit screen UI and ViewModel</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><commitId>bbf9b808edf89e2a9255fdc8af239e5567b86d3d</commitId><timestamp>1758890730000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Remove app link message from SchoolDirectoryEditScreen

This commit removes the `Text` composable that displayed the "app_link_provided_message" string resource from the `SchoolDirectoryEditScreen`.

Key changes:
- Deleted the `Text` composable responsible for showing the app link message.
</comment><date>2025-09-26 18:15:30 +0530</date><id>bbf9b808edf89e2a9255fdc8af239e5567b86d3d</id><msg>Refactor: Remove app link message from SchoolDirectoryEditScreen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><commitId>cc4fcba42eeccf50aafafa43a25f90b06e583ed5</commitId><timestamp>1758890773000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Remove unused import in SchoolDirectoryEditScreen

This commit removes an unused import for `app_link_provided_message` from `SchoolDirectoryEditScreen.kt`.
</comment><date>2025-09-26 18:16:13 +0530</date><id>cc4fcba42eeccf50aafafa43a25f90b06e583ed5</id><msg>Refactor: Remove unused import in SchoolDirectoryEditScreen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</affectedPath><commitId>6e1a8b9c12dc6289c9fe3e9ed96accc2e337a0f7</commitId><timestamp>1759158370000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Implement School Directory Entry Insertion and Improve UI

This commit introduces functionality to insert school directory entries and enhances the user interface for managing accounts and editing school directories.

Key changes:
- Added `insertDirectoryEntry` function to `SchoolDirectoryEntryDataSource`, `SchoolDirectoryEntryDataSourceDb`, `SchoolDirectoryEntryDataSourceHttp`, and `SchoolDirectoryEntryDataSourceRepository` to support adding new directory entries.
- In `SchoolDirectoryEntryDataSourceDb`:
    - `insertDirectoryEntry` now uses a database transaction to insert a new school directory entry.
    - `deleteByUrl` in `SchoolDirectoryEntryEntityDao` and its usage in `SchoolDirectoryEntryDataSourceDb` now correctly accepts a `Url` object instead of a `String`.
- In `SchoolDirectoryEditViewModel`:
    - `onClickNext` now constructs a `SchoolDirectoryEntry` from the provided link.
    - It inserts the new entry using `respectAppDataSource.schoolDirectoryEntryDataSource.insertDirectoryEntry`.
    - Navigates to `SchoolDirectoryList` upon successful insertion.
    - Implemented error handling for invalid URLs, updating the UI with an error message.
- In `SchoolDirectoryListViewModel`:
    - Removed the call to `loadSchoolDirectories()` after deleting a directory, as the list is likely observed and will update automatically.
- In `AccountListViewModel`:
    - Added a `loading` state to `AccountListUiState` to indicate when account data is being fetched.
    - The `loading` state is set to `true` before starting to collect `selectedAccountAndPersonFlow` and set to `false` once the data is received.
</comment><date>2025-09-29 20:36:10 +0530</date><id>6e1a8b9c12dc6289c9fe3e9ed96accc2e337a0f7</id><msg>Refactor: Implement School Directory Entry Insertion and Improve UI</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</affectedPath><commitId>233a293bfd08d72b26f7e4d3daf76b8c500b1740</commitId><timestamp>1759173221000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add email field to Person entity and related screens

This commit introduces an email field to the `Person` entity and integrates it across various parts of the application.

Key changes:
- Added `email` (nullable String) property to the `Person` data model in `respect-datalayer`.
- Updated `PersonEntity` in `respect-datalayer-db` to include `pEmail` (nullable String).
- Modified `PersonAdapter` in `respect-datalayer-db` to map the `email` field during entity creation.
- Added `email` (nullable String) property to `PersonListDetails` composite model in `respect-datalayer`.
- Updated the `asListDetails()` extension function in `respect-datalayer` to include the new `email` field.
- Added a new string resource `email` ("Email") in `respect-lib-shared`.
- Integrated an `OutlinedTextField` for `email` in `PersonEditScreen` within `respect-app-compose`, allowing users to view and edit the person's email.
</comment><date>2025-09-30 00:43:41 +0530</date><id>233a293bfd08d72b26f7e4d3daf76b8c500b1740</id><msg>feat: Add email field to Person entity and related screens</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/OnClickPhoneNumUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtil.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadPhoneNumberTextField.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/CountryCodeTransformation.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtilExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.android.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumber.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatter.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/PhoneNumberVisualTransformation.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json</affectedPath><commitId>4e72dae3d2485dc6ced6c68e887abda89aa82d46</commitId><timestamp>1759208758000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Feat: Add phone number field to Person entity and edit screen

This commit introduces a phone number field to the `Person` entity and integrates it into the person editing and detail screens. It also adds utility classes for phone number formatting and validation.

Key changes:
- Added `phoneNumber` field to `Person` data class and `PersonEntity` database entity.
- Updated `PersonListDetails` to include `phoneNumber`.
- Added `phone_number` string resource.
- Introduced `UstadPhoneNumberTextField` composable for phone number input with country code selection and formatting.
- Integrated `UstadPhoneNumberTextField` into `PersonEditScreen`.
- Displayed phone number in `PersonDetailScreen`.
- Added `nationalPhoneNumSet` to `PersonEditUiState` and `onNationalPhoneNumSetChanged` to `PersonEditViewModel` to track if a national number has been entered.
- Created utility classes for phone number handling:
    - `PhoneNumberTransformation`: Visual transformation for formatting phone numbers as they are typed.
    - `CountryCodeTransformation`: Visual transformation to prefix country codes with "+".
    - `GuessCountryCode`: Composable function to guess the initial phone country code (platform-specific implementation needed).
    - `PhoneUtils`: Utility functions for phone number character validation (platform-specific implementation needed).
    - Interfaces for phone number utilities (`IPhoneNumber`, `IPhoneNumberUtil`, `IAsYouTypeFormatter`, `PhoneNumValidatorUseCase`, `OnClickPhoneNumUseCase`).
- Updated database schema for `PersonEntity` to include `pPhoneNumber`.
</comment><date>2025-09-30 10:35:58 +0530</date><id>4e72dae3d2485dc6ced6c68e887abda89aa82d46</id><msg>Feat: Add phone number field to Person entity and edit screen</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/PhoneNumberVisualTransformation.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtil.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorUseCase.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumber.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/OnClickPhoneNumUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/CountryCodeTransformation.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.android.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtilExt.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadPhoneNumberTextField.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.android.kt</affectedPath><commitId>5b3c4e795e585f2ae160009f2e84864c421d456d</commitId><timestamp>1759208770000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Feat: Implement Android phone number utilities

This commit introduces utility functions for handling phone numbers on Android.

Key changes:
- Added `PhoneUtils.android.kt` with constants for phone number characters (`PAUSE`, `WAIT`, `WILD`).
- Implemented `isNonSeparator` function to check if a character is a non-separable phone number character.
- Implemented `isReallyDialable` function to check if a character is a dialable phone number character.
</comment><date>2025-09-30 10:36:10 +0530</date><id>5b3c4e795e585f2ae160009f2e84864c421d456d</id><msg>Feat: Implement Android phone number utilities</msg><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.android.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtilAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumberAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorAndroid.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.android.kt</affectedPath><commitId>c2fd32f364b874c3696f622cd2ff23b1f01453b0</commitId><timestamp>1759216328000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Integrate phone number formatting and validation

This commit introduces phone number formatting and validation capabilities using `libphonenumber`.

Key changes:
- Added `libphonenumber` dependency.
- Implemented `guessInitialPhoneCountryCode` for Android and desktop to determine the initial country code based on device settings (network/SIM for Android, default locale for desktop).
- Created Android-specific implementations for phone number utilities:
    - `IPhoneNumberUtilAndroid`: Wraps `com.google.i18n.phonenumbers.PhoneNumberUtil`.
    - `PhoneNumberAndroid`: Wraps `com.google.i18n.phonenumbers.Phonenumber.PhoneNumber`.
    - `IAsYouTypeFormatterAdapterAndroid`: Adapts `com.google.i18n.phonenumbers.AsYouTypeFormatter`.
    - `OnClickPhoneNumberUseCaseAndroid`: Handles clicks on phone numbers by initiating a dial intent.
    - `PhoneNumValidatorAndroid`: Validates phone numbers using `IPhoneNumberUtil`.
- Registered `PhoneNumberUtil` and `IPhoneNumberUtilAndroid` in the Android Koin module.
- Updated `PersonDetailScreen` to conditionally display phone number and email fields only if they are present.
</comment><date>2025-09-30 12:42:08 +0530</date><id>c2fd32f364b874c3696f622cd2ff23b1f01453b0</id><msg>Refactor: Integrate phone number formatting and validation</msg><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorAndroid.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.android.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtilAndroid.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumberAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadPhoneNumberTextField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><commitId>695fc2f907c54be67f1ce54f95f169444479c9d7</commitId><timestamp>1759218239000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Rename UstadPhoneNumberTextField to RespectPhoneNumberTextField

This commit renames the composable function `UstadPhoneNumberTextField` to `RespectPhoneNumberTextField`.

Key changes:
- Renamed `UstadPhoneNumberTextField.kt` to `RespectPhoneNumberTextField.kt`.
- Updated the function name from `UstadPhoneNumberTextField` to `RespectPhoneNumberTextField`.
- Removed an unused `isPreview` variable that was checking `LocalInspectionMode.current`.
- Updated call sites in `PersonEditScreen.kt` to use the new composable name.
</comment><date>2025-09-30 13:13:59 +0530</date><id>695fc2f907c54be67f1ce54f95f169444479c9d7</id><msg>Refactor: Rename UstadPhoneNumberTextField to RespectPhoneNumberTextField</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadPhoneNumberTextField.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/extt/IntExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/CountryCodeTransformation.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/ModifierExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/PhoneNumberVisualTransformation.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.kt</affectedPath><commitId>a87ffb79bab7529dacb5f1a87d24d93fe0ffa2be</commitId><timestamp>1759220063000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Organize utility files and remove unused code

This commit reorganizes utility files by moving phone number related utilities to a dedicated `phonenum` subpackage and renames the `ext` package to `extt`. Additionally, it removes the unused `ModifierExt.kt` file and cleans up unused imports in `RespectPersonAvatar.kt` and `RespectPhoneNumberTextField.kt`.

Key changes:
- Moved `GuessCountryCode.kt`, `PhoneUtils.kt`, `PhoneNumberVisualTransformation.kt`, and `CountryCodeTransformation.kt` from `world.respect.app.util.ext.phonenum` to `world.respect.app.util.phonenum`.
- Renamed package `world.respect.app.util.ext` to `world.respect.app.util.extt`.
  - Updated package declaration in `IntExt.kt`.
  - Updated import path for `rgbaColor` in `RespectPersonAvatar.kt`.
- Deleted `respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/ModifierExt.kt` as it was empty.
- Removed unused imports in `RespectPersonAvatar.kt`:
    - `androidx.compose.foundation.layout.size`
    - `androidx.compose.ui.unit.dp`
- Removed unused import in `RespectPhoneNumberTextField.kt`:
    - `androidx.compose.ui.platform.LocalInspectionMode`
</comment><date>2025-09-30 13:44:23 +0530</date><id>a87ffb79bab7529dacb5f1a87d24d93fe0ffa2be</id><msg>Refactor: Organize utility files and remove unused code</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/extt/IntExt.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/PhoneNumberVisualTransformation.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/ModifierExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/CountryCodeTransformation.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/extt/IntExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.android.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.android.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumber.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumberAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</affectedPath><commitId>9a30059e3ff4c5f2bc44711b75040d390ac57fd7</commitId><timestamp>1759221010000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Remove trailing newlines and whitespace

This commit removes unnecessary trailing newlines and whitespace from various files.

Key changes:
- Removed trailing newlines from `PersonListDetails.kt` and `strings.xml`.
- Trimmed whitespace and newlines in `PersonEditScreen.kt`.
- Adjusted newlines in `PersonAdapters.kt`.
- Removed extra newlines in `GuessCountryCode.desktop.kt`, `AppKoinModule.kt`, `IntExt.kt`, `GuessCountryCode.android.kt`, `RespectPhoneNumberTextField.kt`, `PhoneUtils.android.kt`, `IPhoneNumber.kt`, `PhoneNumberAndroid.kt`, `PhoneNumValidatorAndroid.kt`, and `IAsYouTypeFormatterAdapterAndroid.kt`.
- Added a `testTag` to the phone number field in `PersonEditScreen.kt`.
</comment><date>2025-09-30 14:00:10 +0530</date><id>9a30059e3ff4c5f2bc44711b75040d390ac57fd7</id><msg>Refactor: Remove trailing newlines and whitespace</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumberAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.desktop.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumber.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/extt/IntExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.android.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.android.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolEntryAdapter.kt</affectedPath><commitId>1e431a9ae4bc6dca0c2e81a4c7f3d42286a572a3</commitId><timestamp>1759227420000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Simplify School Directory Data Model and Operations

This commit refactors the school directory data handling by replacing `SchoolDirectoryEntry` with `RespectSchoolDirectory` across various layers of the application. This change simplifies the data model and streamlines related operations.

Key changes:
- Replaced `SchoolDirectoryEntry` with `RespectSchoolDirectory` in:
    - `SchoolDirectoryListViewModel` for UI state and delete operations.
    - `SchoolDirectoryEditViewModel` for UI state and adding new directories.
    - `SchoolDirectoryDataSource` interface for `deleteDirectory` and `insertDirectoryEntry` methods.
    - `SchoolDirectoryDataSourceRepository` for local data operations.
    - `SchoolDirectoryDataSourceDb` for database interactions, including moving `deleteDirectory` and `insertDirectoryEntry` from `SchoolDirectoryEntryDataSourceDb`.
    - `SchoolDirectoryListScreen` composable and its item composable.
- Introduced `SchoolDirectoryAdapter.kt` with `toEntities` and `toModel` extension functions for converting between `RespectSchoolDirectory` and `SchoolDirectoryEntity`.
- Updated `SchoolDirectoryEntityDao`:
    - Added `deleteByUrl(url: Url)` to delete a directory by its URL.
    - Added `upsert(entity: SchoolDirectoryEntity)` to insert or replace a directory entity.
- Removed `deleteDirectory` and `insertDirectoryEntry` methods from `SchoolDirectoryEntryDataSource` and its implementations (`SchoolDirectoryEntryDataSourceDb`, `SchoolDirectoryEntryDataSourceHttp`, `SchoolDirectoryEntryDataSourceRepository`).
- Removed `deleteByUrl` from `SchoolDirectoryEntryEntityDao` as it's now handled by `SchoolDirectoryEntityDao`.
- Adjusted `SchoolDirectoryDataSourceHttp` to reflect changes in the `SchoolDirectoryDataSource` interface, though implementations for delete/insert are marked as `TODO`.
</comment><date>2025-09-30 15:47:00 +0530</date><id>1e431a9ae4bc6dca0c2e81a4c7f3d42286a572a3</id><msg>Refactor: Simplify School Directory Data Model and Operations</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolEntryAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><commitId>dea0e8fb17d933e862424b182a7e4e45f3cad820</commitId><timestamp>1759229115000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Rename `insertDirectoryEntry` to `insertDirectory` and implement HTTP POST

This commit refactors the `SchoolDirectoryDataSource` interface and its implementations to rename the `insertDirectoryEntry` function to `insertDirectory`. It also implements the `insertDirectory` function in `SchoolDirectoryDataSourceHttp` to perform an HTTP POST request.

Key changes:
- Renamed `insertDirectoryEntry` to `insertDirectory` in:
    - `SchoolDirectoryDataSource.kt`
    - `SchoolDirectoryDataSourceDb.kt`
    - `SchoolDirectoryDataSourceRepository.kt`
    - `SchoolDirectoryEditViewModel.kt` (updated the call site)
- Implemented `insertDirectory` in `SchoolDirectoryDataSourceHttp.kt`:
    - It now makes an HTTP POST request to the endpoint `api/directory/add` on the directory's base URL.
    - Sets the `Content-Type` to `application/json`.
    - Sends the `RespectSchoolDirectory` object as the request body.
</comment><date>2025-09-30 16:15:15 +0530</date><id>dea0e8fb17d933e862424b182a7e4e45f3cad820</id><msg>Refactor: Rename `insertDirectoryEntry` to `insertDirectory` and implement HTTP POST</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><commitId>fc6e238357e1cdb22af694f5b3347363663f69bc</commitId><timestamp>1759232958000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Remove extraneous new line

This commit removes an unnecessary new line from the `insertDirectory` function in `SchoolDirectoryDataSourceDb.kt`.
</comment><date>2025-09-30 17:19:18 +0530</date><id>fc6e238357e1cdb22af694f5b3347363663f69bc</id><msg>Remove extraneous new line</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolEntryAdapter.kt</affectedPath><commitId>87a5993c6b0a1388431e2022a35b7b8103505c1a</commitId><timestamp>1759261782000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Update SchoolDirectoryDataSource and related components

This commit introduces several changes to the SchoolDirectoryDataSource and its related classes to improve functionality and data handling.

Key changes:
- **SchoolDirectoryDataSourceDb**:
    - Modified `deleteByUrl` to accept `String` instead of `Url` for the URL parameter.
- **Database Schema (RespectAppDatabase/1.json)**:
    - Updated the `identityHash`.
    - Added `cLastModified` and `cStored` fields (INTEGER, NOT NULL) to the `SchoolDirectoryEntity` table.
- **SchoolDirectoryEntityDao**:
    - Changed the `deleteByUrl` function parameter from `Url` to `String`.
    - Added a new query function `getLastModifiedByUrl` to retrieve the `cLastModified` timestamp for a given URL.
- **SchoolDirectoryListViewModel**:
    - When navigating to `SchoolDirectoryEdit` after clicking add, it now pops up to `SchoolDirectoryList`.
    - After deleting a directory, `loadSchoolDirectories()` is called to refresh the list.
- **SchoolDirectoryEditViewModel**:
    - When saving a new school directory, the `invitePrefix` is now initialized as an empty string.
    - Navigation after saving now pops up to `SchoolDirectoryList` inclusively.
- **SchoolDirectoryDataSourceHttp**:
    - `allDirectories()` now delegates to the local data source.
    - `deleteDirectory()` now delegates to the local data source.
- **File Rename**:
    - Renamed `SchoolEntryAdapter.kt` to `SchoolDirectoryAdapter.kt`.
</comment><date>2025-10-01 01:19:42 +0530</date><id>87a5993c6b0a1388431e2022a35b7b8103505c1a</id><msg>Refactor: Update SchoolDirectoryDataSource and related components</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolEntryAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddDirectoryUseCase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</affectedPath><commitId>b5e47717bd4ff64e96b5540c3cb48ebccbf0583e</commitId><timestamp>1759305914000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Enhance School Directory Management and Server-Side Logic

This commit introduces significant changes to how school directories are managed, both on the client and server sides. It refines the data model, updates database interactions, and adds new server endpoints for directory operations.

Key changes:
- **Database Schema (RespectAppDatabase/1.json)**:
    - Updated the `identityHash`.
    - Removed `cLastModified` and `cStored` fields from the `SchoolDirectoryEntity` table as they are no longer used.
- **SchoolDirectoryEntityDao**:
    - Removed the `getLastModifiedByUrl` function, as the `cLastModified` field has been removed from the entity.
- **Server-Side Logic**:
    - Introduced `AddDirectoryUseCase` to handle the creation of new school directories on the server. This use case generates a random invite prefix for the new directory.
    - Added `AddDirectoryUseCase` to the `ServerKoinModule`.
    - Created a new POST endpoint `api/directory/adddirectory` in `RespectSchoolDirectoryRoute.kt`. This endpoint accepts a `url` query parameter and uses `AddDirectoryUseCase` to create the directory.
- **SchoolDirectoryDataSourceHttp**:
    - `allDirectories()`:
        - Now fetches all directories from the remote server endpoint `api/directory/school` using the base URL of the first locally stored directory. It throws an `IllegalStateException` if no local directory is found to determine the base URL.
    - `insertDirectory(directory: RespectSchoolDirectory)`:
        - Now makes a POST request to the new `api/directory/adddirectory` endpoint.
        - Instead of sending the `RespectSchoolDirectory` object in the request body, it now sends the directory's `baseUrl` as a `url` query parameter.
- **SchoolDirectoryDataSourceRepository**:
    - `insertDirectory(directory: RespectSchoolDirectory)`:
        - Now calls `remote.insertDirectory(directory)` before inserting locally, ensuring the directory is first added via the remote data source.
</comment><date>2025-10-01 13:35:14 +0530</date><id>b5e47717bd4ff64e96b5540c3cb48ebccbf0583e</id><msg>Refactor: Enhance School Directory Management and Server-Side Logic</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddDirectoryUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</affectedPath><commitId>a534f652933a0e45a81506cc897f05962aa41c10</commitId><timestamp>1759309152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Update School Directory data source HTTP implementation

This commit updates `SchoolDirectoryDataSourceHttp` to correctly implement `deleteDirectory` and `insertDirectory` using HTTP DELETE and POST requests respectively. It also modifies `SchoolDirectoryDataSourceRepository` to only call the local data source for `insertDirectory`.

Key changes:
- **SchoolDirectoryDataSourceHttp**:
    - `deleteDirectory`: Now sends an HTTP DELETE request to the `api/directory/deletedirectory` endpoint. The `RespectSchoolDirectory` object is sent in the request body with `Content-Type: application/json`.
    - `insertDirectory`:
        - Sends an HTTP POST request to the `api/directory/add` endpoint.
        - The `RespectSchoolDirectory` object is now sent in the request body instead of as a URL parameter.
        - `Content-Type` is set to `application/json`.
    - `allDirectories()`: No longer throws an exception if no base URL is found locally, as this was likely a leftover from previous logic.
- **SchoolDirectoryDataSourceRepository**:
    - `insertDirectory`: Removed the call to `remote.insertDirectory(directory)`. Directory insertion is now only handled by the local data source within the repository layer.
</comment><date>2025-10-01 14:29:12 +0530</date><id>a534f652933a0e45a81506cc897f05962aa41c10</id><msg>Refactor: Update School Directory data source HTTP implementation</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><commitId>e4e5e28a7df58d1a057eefd495bb19472ccce961</commitId><timestamp>1759309609000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Remove unused PagingSource from SchoolDirectoryEntryDataSource

This commit removes the `listAsPagingSource` function and its implementations from `SchoolDirectoryEntryDataSource` and related classes, as it is no longer used.

Key changes:
- Removed `listAsPagingSource` from the `SchoolDirectoryEntryDataSource` interface.
- Removed the `TODO` implementation of `listAsPagingSource` from:
    - `SchoolDirectoryEntryDataSourceHttp.kt`
    - `SchoolDirectoryEntryDataSourceRepository.kt`
    - `SchoolDirectoryEntryDataSourceDb.kt`
- Removed extraneous new lines in:
    - `SchoolDataSource.kt`
    - `SchoolDirectoryDataSource.kt`
    - `SchoolDirectoryEditScreen.kt`
    - `SchoolDataSourceDb.kt`
- Corrected inconsistent spacing in `ServerKoinModule.kt`.
</comment><date>2025-10-01 14:36:49 +0530</date><id>e4e5e28a7df58d1a057eefd495bb19472ccce961</id><msg>Refactor: Remove unused PagingSource from SchoolDirectoryEntryDataSource</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/005_admin_user_creates_a_report_test_description.md</affectedPath><commitId>93bbb079b2d93fc3e2b12f59f6382689fbfab710</commitId><timestamp>1759757700000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>change
</comment><date>2025-10-06 17:35:00 +0400</date><id>93bbb079b2d93fc3e2b12f59f6382689fbfab710</id><msg>change</msg><path><editType>edit</editType><file>respect-test-end-to-end/test-description/005_admin_user_creates_a_report_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/001_003_Parent_user_join_class_using_invitecode_test_description.md</affectedPath><commitId>01b4293f57ebc89437d91494779b70f94a6370cc</commitId><timestamp>1759758151000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>change
</comment><date>2025-10-06 17:42:31 +0400</date><id>01b4293f57ebc89437d91494779b70f94a6370cc</id><msg>change</msg><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_003_Parent_user_join_class_using_invitecode_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><commitId>00d439fe7c899a113b2ed2517666f3b315adb45c</commitId><timestamp>1759837527000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Remove invite code logic from data sources

This commit removes the concept of fetching directory information via an invite code directly from the `SchoolDirectoryDataSource` and its database implementation.

Key changes:
- **SchoolDirectoryDataSource**:
    - Removed the `getInviteInfo` function from the interface, as this logic is no longer handled at this layer.
- **SchoolDirectoryDataSourceDb**:
    - Removed the implementation of `getDirectoryByInviteCode`, which previously queried the local database for a directory matching an invite code.
</comment><date>2025-10-07 17:15:27 +0530</date><id>00d439fe7c899a113b2ed2517666f3b315adb45c</id><msg>Refactor: Remove invite code logic from data sources</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><commitId>422d3d036727e6ccb27e6d19ef783245ed0a26ff</commitId><timestamp>1759837762000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor: Remove invite code logic from data sources

This commit removes the concept of fetching directory information via an invite code directly from the `SchoolDirectoryDataSource` and its database implementation.

Key changes:
- **SchoolDirectoryDataSource**:
    - Removed the `getInviteInfo` function from the interface, as this logic is no longer handled at this layer.
- **SchoolDirectoryDataSourceDb**:
    - Removed the implementation of `getDirectoryByInviteCode`, which previously queried the local database for a directory matching an invite code.
</comment><date>2025-10-07 17:19:22 +0530</date><id>422d3d036727e6ccb27e6d19ef783245ed0a26ff</id><msg>Refactor: Remove invite code logic from data sources</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasswordEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasswordAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceLocal.kt</affectedPath><commitId>9000341846c6835991396c5c0bcb938a493b01e8</commitId><timestamp>1759972472000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of functionality to set a username and password for an existing account.
</comment><date>2025-10-08 21:14:32 -0400</date><id>9000341846c6835991396c5c0bcb938a493b01e8</id><msg>Initial implementation of functionality to set a username and password for an existing account.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasswordAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasswordEntity.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.jvm.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.kt</affectedPath><commitId>e7ca236cffc5e54b716b8181048a6ea8c0060243</commitId><timestamp>1759993385000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add email and phone number to Person entity

This commit updates the `PersonEntity` to include optional fields for `pEmail` and `pPhoneNumber`.

Key changes:
- Updated `gradle/libs.versions.toml` to bump the Android Gradle Plugin (agp) version from `8.12.2` to `8.12.3`.
- Modified the `PersonEntity` in the database schema to add `pEmail` and `pPhoneNumber` columns.
- Disabled the selection of future dates in the `RespectLocalDateField` date picker.
- Added explicit parameter names to the `joinDateAndTime` lambda in `rememberFormattedDateTime`.
</comment><date>2025-10-09 12:33:05 +0530</date><id>e7ca236cffc5e54b716b8181048a6ea8c0060243</id><msg>feat: Add email and phone number to Person entity</msg><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.jvm.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/log/respect-server.log</affectedPath><commitId>bd8048541b5811ba2b410fc5fca566b79eaa4052</commitId><timestamp>1759999457000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add email and phone number to Person entity

This commit updates the `PersonEntity` to include optional fields for `pEmail` and `pPhoneNumber`.

Key changes:
- Updated `gradle/libs.versions.toml` to bump the Android Gradle Plugin (agp) version from `8.12.2` to `8.12.3`.
- Modified the `PersonEntity` in the database schema to add `pEmail` and `pPhoneNumber` columns.
- Disabled the selection of future dates in the `RespectLocalDateField` date picker.
- Added explicit parameter names to the `joinDateAndTime` lambda in `rememberFormattedDateTime`.
</comment><date>2025-10-09 14:14:17 +0530</date><id>bd8048541b5811ba2b410fc5fca566b79eaa4052</id><msg>feat: Add email and phone number to Person entity</msg><path><editType>add</editType><file>respect-server/log/respect-server.log</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/personPassword/GetPersonPassword.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/personPassword/GetPersonPasswordDbImpl.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>f195b1914ca9699de24493724beb19472dd6b459</commitId><timestamp>1760338255000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update set password logic to use school data source. Remove SetPasswordUseCase.
</comment><date>2025-10-13 10:50:55 +0400</date><id>f195b1914ca9699de24493724beb19472dd6b459</id><msg>Update set password logic to use school data source. Remove SetPasswordUseCase.</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/personPassword/GetPersonPasswordDbImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/personPassword/GetPersonPassword.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/setpassword/SetPasswordUseDbImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><commitId>8b7fbbee3a9da952011e4b943fcf9fdc9e06c909</commitId><timestamp>1760348294000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Validate date of birth on save

This commit introduces validation to prevent the date of birth from being in the future. The validation is now handled in the `PersonEditViewModel` when the save button is clicked, rather than restricting the date selection in the UI.

Key changes:
- Removed the future date restriction from the `RespectLocalDateField` date picker, allowing users to select any date.
- Added a new string resource `date_of_birth_in_future` for the error message.
- Updated `PersonEditViewModel` to validate the date of birth upon saving. If the selected date is in the future, an error message is displayed and the save is aborted.
- Modified `PersonEditScreen` to display the date of birth validation error message below the input field.
</comment><date>2025-10-13 15:08:14 +0530</date><id>8b7fbbee3a9da952011e4b943fcf9fdc9e06c909</id><msg>feat: Validate date of birth on save</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticatePasswordUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-lib-shared-se/README.md</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-lib-shared-se/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>e284c8cb62e49dab1b256d664f22675d61987a67</commitId><timestamp>1760353983000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of password change functionality.
</comment><date>2025-10-13 15:13:03 +0400</date><id>e284c8cb62e49dab1b256d664f22675d61987a67</id><msg>Initial implementation of password change functionality.</msg><path><editType>add</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/account/invite/RedeemInviteIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared-se/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared-se/README.md</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticatePasswordUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/account/AuthWithPasswordIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatepassword/ValidatePasswordUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><commitId>658269d4883eba01bd8ec7ad678f4a2c6dcd0dea</commitId><timestamp>1760359282000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of password change functionality.
</comment><date>2025-10-13 16:41:22 +0400</date><id>658269d4883eba01bd8ec7ad678f4a2c6dcd0dea</id><msg>Initial implementation of password change functionality.</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatepassword/ValidatePasswordUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/SetUsernameAndPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarFlowDispatcher.kt</affectedPath><commitId>8ce4e297135b51b954fa62096d4069b6c29fce2d</commitId><timestamp>1760361738000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement change password functionality.
</comment><date>2025-10-13 17:22:18 +0400</date><id>8ce4e297135b51b954fa62096d4069b6c29fce2d</id><msg>Implement change password functionality.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarFlowDispatcher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddDirectoryUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><commitId>528456725145a5500bbf3f763e940532768499b1</commitId><timestamp>1760425277000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidy for merge:

1) Revert unnecessary changes that changed formatting / white space on existing classes.
2) Add button to get started other options screen.
</comment><date>2025-10-14 11:01:17 +0400</date><id>528456725145a5500bbf3f763e940532768499b1</id><msg>Tidy for merge:</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddDirectoryUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt</affectedPath><commitId>3d02d77dbf608deb6b8ade256d4159a9bb43d25c</commitId><timestamp>1760428517000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix for Person db datalayer:
1) PersonRelatedPersonEntity was not set to use autogenerate primary key
2) PersonEntityWithRoles had incorrectly set entityColumn.
</comment><date>2025-10-14 11:55:17 +0400</date><id>3d02d77dbf608deb6b8ade256d4159a9bb43d25c</id><msg>Fix for Person db datalayer:</msg><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtil.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorUseCase.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtilExt.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberJvm.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumber.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-server/log/respect-server.log</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumberAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatter.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumber.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/OnClickPhoneNumUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtil.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.android.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberUtilJvm.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCaseJvm.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilAndroid.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.android.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorJvm.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/extt/IntExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/AsYouTypeFormatterJvm.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.android.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.android.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtilAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.desktop.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCase.kt</affectedPath><commitId>819ef3904418041d7353bfa75d4eb44787df6eff</commitId><timestamp>1760444302000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidy:
a) move phone number domain packages to respect-lib-shared (should not have been in respect-app-compose)
b) Use libphonenumber-android on Android (as per Ustad Mobile)
c) Fix package names (various classes were in com.ustadmobile instead of world.respect package).
d) Fix person adapter toModel function: without this change phonenumber and email would always be lost when converting from db entity to model.
</comment><date>2025-10-14 16:18:22 +0400</date><id>819ef3904418041d7353bfa75d4eb44787df6eff</id><msg>Tidy:</msg><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/OnClickPhoneNumUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtilAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.android.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCaseJvm.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/AsYouTypeFormatterJvm.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCase.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumber.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumber.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtil.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.android.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberAndroid.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.android.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorJvm.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatter.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.android.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumValidatorAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtilExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberJvm.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/GuessCountryCode.desktop.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/ext/phonenum/PhoneUtils.desktop.kt</file></path><path><editType>delete</editType><file>respect-server/log/respect-server.log</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberUtilJvm.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IPhoneNumberUtil.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/phonenumber/IAsYouTypeFormatter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/phonenumber/PhoneNumberAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/extt/IntExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt</affectedPath><commitId>a42f00643df98cca21d44e85e43cf45d8ee5a35a</commitId><timestamp>1760444313000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix package name
</comment><date>2025-10-14 16:18:33 +0400</date><id>a42f00643df98cca21d44e85e43cf45d8ee5a35a</id><msg>Fix package name</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>83d69840c995fb3c8b92910f74465c43bfc84113</commitId><timestamp>1760445465000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add click phone number support.
</comment><date>2025-10-14 16:37:45 +0400</date><id>83d69840c995fb3c8b92910f74465c43bfc84113</id><msg>Add click phone number support.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><commitId>ac250be2531409da89641a567a0215abd86607b9</commitId><timestamp>1760447277000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update OtherOptionsViewModel.kt to check school URL is a valid RESPECT school URL.
</comment><date>2025-10-14 17:07:57 +0400</date><id>ac250be2531409da89641a567a0215abd86607b9</id><msg>Update OtherOptionsViewModel.kt to check school URL is a valid RESPECT school URL.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/effects/NavControllerLogEffect.kt</affectedPath><affectedPath>respect-lib-util/src/androidMain/kotlin/world/respect/libutil/util/PutDebugCrashCustomData.android.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/PutDebugCrashCustomData.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><affectedPath>respect-lib-util/src/jvmMain/kotlin/world/respect/libutil/util/PutDebugCrashCustomData.jvm.kt</affectedPath><commitId>ee5b6d5a430a887ad28ef4c049a8f6a60124d128</commitId><timestamp>1760449793000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Use ACRA custom data to track selected account and most recent screen
</comment><date>2025-10-14 17:49:53 +0400</date><id>ee5b6d5a430a887ad28ef4c049a8f6a60124d128</id><msg>Use ACRA custom data to track selected account and most recent screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/PutDebugCrashCustomData.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/effects/NavControllerLogEffect.kt</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-util/src/androidMain/kotlin/world/respect/libutil/util/PutDebugCrashCustomData.android.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/jvmMain/kotlin/world/respect/libutil/util/PutDebugCrashCustomData.jvm.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>66669ee1a13a4afa299fbd9d31beb5275c52d78c</commitId><timestamp>1760454912000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update Android Gradle Plugin version.
</comment><date>2025-10-14 19:15:12 +0400</date><id>66669ee1a13a4afa299fbd9d31beb5275c52d78c</id><msg>Update Android Gradle Plugin version.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt</affectedPath><commitId>1665bb4fd98c5ba1a082ca15d52ef42a60ee792c</commitId><timestamp>1760512349000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update gender dropdown and mandatory field indicators.

Remove unspecified from gender dropdown
Make mandatory field indicators consistent across screens (Issue #82)
</comment><date>2025-10-15 11:12:29 +0400</date><id>1665bb4fd98c5ba1a082ca15d52ef42a60ee792c</id><msg>Update gender dropdown and mandatory field indicators.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</affectedPath><commitId>04ddf2521a4c1bdd981c4a7dbaed7c0d6eced7c9</commitId><timestamp>1760513152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update Room and ACRA versions.
</comment><date>2025-10-15 11:25:52 +0400</date><id>04ddf2521a4c1bdd981c4a7dbaed7c0d6eced7c9</id><msg>Update Room and ACRA versions.</msg><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</affectedPath><commitId>972a7aaad8a4ebc78c46a5b37548d30939d09154</commitId><timestamp>1760524357000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove redundant class name string.
</comment><date>2025-10-15 14:32:37 +0400</date><id>972a7aaad8a4ebc78c46a5b37548d30939d09154</id><msg>Remove redundant class name string.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt</affectedPath><affectedPath>respect-lib-serializers/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPasskey.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>2b59b2e7b65ade1b59e3bfd5b1a1110e3f371a97</commitId><timestamp>1760527161000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes to update dev-download branch from main: compilation/full build succeeds.
</comment><date>2025-10-15 15:19:21 +0400</date><id>2b59b2e7b65ade1b59e3bfd5b1a1110e3f371a97</id><msg>Fixes to update dev-download branch from main: compilation/full build succeeds.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPasskey.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path><path><editType>edit</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle.properties</affectedPath><commitId>9c422e27004f63b77d79ae1cd608c1730514534e</commitId><timestamp>1760528335000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Increase Gradle max memory setting org.gradle.jvmargs .
</comment><date>2025-10-15 15:38:55 +0400</date><id>9c422e27004f63b77d79ae1cd608c1730514534e</id><msg>Increase Gradle max memory setting org.gradle.jvmargs .</msg><path><editType>edit</editType><file>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt</affectedPath><commitId>a06f20aa542f1c91aa511ed857d93bd1c4f2bfca</commitId><timestamp>1760538012000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial connection of run download use case to lesson detail view model.
</comment><date>2025-10-15 18:20:12 +0400</date><id>a06f20aa542f1c91aa511ed857d93bd1c4f2bfca</id><msg>Initial connection of run download use case to lesson detail view model.</msg><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>751a5e6ad0a0bebc687052157c7d4663979be1fc</commitId><timestamp>1760599462000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update ClassDetail to display add/edit options by role.
</comment><date>2025-10-16 11:24:22 +0400</date><id>751a5e6ad0a0bebc687052157c7d4663979be1fc</id><msg>Update ClassDetail to display add/edit options by role.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonRoleEnumExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><commitId>165b4ca0c3cf8336899105a2fb51e4dfe2f942cb</commitId><timestamp>1760603788000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update person screen to support setting/showing roles.
</comment><date>2025-10-16 12:36:28 +0400</date><id>165b4ca0c3cf8336899105a2fb51e4dfe2f942cb</id><msg>Update person screen to support setting/showing roles.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonRoleEnumExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</affectedPath><commitId>0fa1c55a15dd7a92d3280bc074679124d0ecd3d4</commitId><timestamp>1760608809000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Avoid date of birth from showing 1900 default.
</comment><date>2025-10-16 14:00:09 +0400</date><id>0fa1c55a15dd7a92d3280bc074679124d0ecd3d4</id><msg>Avoid date of birth from showing 1900 default.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>9a80cc3de76c57862e6b0524bc814ad54b11582b</commitId><timestamp>1760609057000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version
</comment><date>2025-10-16 14:04:17 +0400</date><id>9a80cc3de76c57862e6b0524bc814ad54b11582b</id><msg>Bump version</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>14018cebc0edbafa529fb3cca5eaed4027805648</commitId><timestamp>1760609218000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Change database names to avoid migration crash on internal testing track.
</comment><date>2025-10-16 14:06:58 +0400</date><id>14018cebc0edbafa529fb3cca5eaed4027805648</id><msg>Change database names to avoid migration crash on internal testing track.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt</affectedPath><commitId>4720b6e8ddf2fc4025ea975244fafd3718699830</commitId><timestamp>1760630680000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement publication pin for offline content download.

Connect with Learning Unit Detail screen to show status for each lesson.
</comment><date>2025-10-16 20:04:40 +0400</date><id>4720b6e8ddf2fc4025ea975244fafd3718699830</id><msg>Implement publication pin for offline content download.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitor.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorJvm.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</affectedPath><commitId>43d6bf4070d33942f2a8fddfc9b3d7f04e4d2a1f</commitId><timestamp>1760684721000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update lib-cache to serve any available response (even if stale) when device is known to be offline.
</comment><date>2025-10-17 11:05:21 +0400</date><id>43d6bf4070d33942f2a8fddfc9b3d7f04e4d2a1f</id><msg>Update lib-cache to serve any available response (even if stale) when device is known to be offline.</msg><path><editType>add</editType><file>respect-lib-cache/src/androidMain/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitor.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorJvm.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt</affectedPath><commitId>b5e8fef7d49d3ffa898aa3e51a5884f07ef82ad8</commitId><timestamp>1760688638000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update pin publication prepare to include adding respect parameters on acquisition links to ensure first page opens as expected when offline.
</comment><date>2025-10-17 12:10:38 +0400</date><id>b5e8fef7d49d3ffa898aa3e51a5884f07ef82ad8</id><msg>Update pin publication prepare to include adding respect parameters on acquisition links to ensure first page opens as expected when offline.</msg><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</affectedPath><commitId>a6f18452eb34d06c91c6ab322042b91205bc8693</commitId><timestamp>1760697150000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix showing download progress.
</comment><date>2025-10-17 14:32:30 +0400</date><id>a6f18452eb34d06c91c6ab322042b91205bc8693</id><msg>Fix showing download progress.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><commitId>1204438d43241d2751a11a1b75484c495595823d</commitId><timestamp>1760699709000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Show indeterminate progress when pin publication preparation (size gathering) is underway.
</comment><date>2025-10-17 15:15:09 +0400</date><id>1204438d43241d2751a11a1b75484c495595823d</id><msg>Show indeterminate progress when pin publication preparation (size gathering) is underway.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RetentionLockDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</affectedPath><commitId>cb5d2678f53204359dfc86c6dcc2a27fe35bbeba</commitId><timestamp>1760700888000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement unpin/remove downloaded item.
</comment><date>2025-10-17 15:34:48 +0400</date><id>cb5d2678f53204359dfc86c6dcc2a27fe35bbeba</id><msg>Implement unpin/remove downloaded item.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RetentionLockDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentAssigneeRefEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentAssigneeRefEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AssignmentRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentLearningResourceRefEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentLearningResourceRefEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>c719bd67b2ada429f2c1f90e5c8390064c16fa8d</commitId><timestamp>1760710741000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of assignment datasource-db.
</comment><date>2025-10-17 18:19:01 +0400</date><id>c719bd67b2ada429f2c1f90e5c8390064c16fa8d</id><msg>Initial implementation of assignment datasource-db.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentAssigneeRefEntityDao.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AssignmentRoute.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentLearningResourceRefEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentAssigneeRefEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentLearningResourceRefEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSourceLocal.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentAssigneeRefEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningResourceRef.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRefTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRef.kt</affectedPath><commitId>ef34eaa06a8e06485ae10e89f18183485e14316e</commitId><timestamp>1760711442000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation of assignment datasource-db.
</comment><date>2025-10-17 18:30:42 +0400</date><id>ef34eaa06a8e06485ae10e89f18183485e14316e</id><msg>Initial implementation of assignment datasource-db.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentAssigneeRefEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningResourceRef.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRefTypeEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRef.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignments/AssignmentViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignments/AssignmentScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.kt</affectedPath><commitId>518986739c5562cb78996473800e8d924bafd763</commitId><timestamp>1760772575000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Assignment work in progress: make deadline optional. Add assignee dropdown with filtered options.
</comment><date>2025-10-18 11:29:35 +0400</date><id>518986739c5562cb78996473800e8d924bafd763</id><msg>Assignment work in progress: make deadline optional. Add assignee dropdown with filtered options.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignments/AssignmentViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignments/AssignmentScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalTimeField.kt</affectedPath><commitId>2f326666f1260b5f50c3e64813ad2eb14c029b99</commitId><timestamp>1760790999000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add combined datetime field.
</comment><date>2025-10-18 16:36:39 +0400</date><id>2f326666f1260b5f50c3e64813ad2eb14c029b99</id><msg>Add combined datetime field.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalTimeField.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RouteWithResultDest.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>9d1b2138101f30d347fb2eb93717290adeba8598</commitId><timestamp>1760803639000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Assignment work in progress: add additional pop/return support.
</comment><date>2025-10-18 20:07:19 +0400</date><id>9d1b2138101f30d347fb2eb93717290adeba8598</id><msg>Assignment work in progress: add additional pop/return support.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RouteWithResultDest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResult.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningResourceRef.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningUnitRef.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitResult.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</affectedPath><commitId>cdeb5fad53be1a1fb7f2b43b6646186a3a7f40dc</commitId><timestamp>1760847498000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Assignment work in progress: handle selection of a learning unit for assignment. Save assignee class name on click.
</comment><date>2025-10-19 08:18:18 +0400</date><id>cdeb5fad53be1a1fb7f2b43b6646186a3a7f40dc</id><msg>Assignment work in progress: handle selection of a learning unit for assignment. Save assignee class name on click.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResult.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitResult.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerExt.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningResourceRef.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningUnitRef.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitResult.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</affectedPath><commitId>89727f6a751552c3f3a4f0e1e866134b519fb5f6</commitId><timestamp>1760855225000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Assignment work in progress and make back arrow display consistent
 Edit screen save/restore runs as expected.
 Back arrow: remove use of root screen logic. Explicitly set hide using app ui state.
</comment><date>2025-10-19 10:27:05 +0400</date><id>89727f6a751552c3f3a4f0e1e866134b519fb5f6</id><msg>Assignment work in progress and make back arrow display consistent</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitResult.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>9712886096895870111c04742d1551cd6bc00cc7</commitId><timestamp>1760858310000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Assignment list implementation.
</comment><date>2025-10-19 11:18:30 +0400</date><id>9712886096895870111c04742d1551cd6bc00cc7</id><msg>Assignment list implementation.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQuickActionButton.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</affectedPath><commitId>6847da1c70d316e68ecac5aae6bb554d504ce530</commitId><timestamp>1760865898000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement assign button on Learning Unit Detail screen
</comment><date>2025-10-19 13:24:58 +0400</date><id>6847da1c70d316e68ecac5aae6bb554d504ce530</id><msg>Implement assign button on Learning Unit Detail screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQuickActionButton.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><commitId>2d05428e9a8dbf552228b7a460076685b67ddb1d</commitId><timestamp>1760873865000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Assignment detail screen implementation.
</comment><date>2025-10-19 15:37:45 +0400</date><id>2d05428e9a8dbf552228b7a460076685b67ddb1d</id><msg>Assignment detail screen implementation.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/webview/UstadWebViewNavigator.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/BasicWebView.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</affectedPath><commitId>f8482f3f077d51dcdcd03feb79cc1b68539f6441</commitId><timestamp>1760876190000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add terms/conditions text.
Fix visibility of back button on get started screen.
</comment><date>2025-10-19 16:16:30 +0400</date><id>f8482f3f077d51dcdcd03feb79cc1b68539f6441</id><msg>Add terms/conditions text.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/webview/UstadWebViewNavigator.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/BasicWebView.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</affectedPath><commitId>acf786dc3bcf2ed666b73c4a9ae34621fa296767</commitId><timestamp>1760877008000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add terms/conditions text.
Fix visibility of back button on get started screen.
</comment><date>2025-10-19 16:30:08 +0400</date><id>acf786dc3bcf2ed666b73c4a9ae34621fa296767</id><msg>Add terms/conditions text.</msg><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>ea301d8adce33f14d884ab1c6266e8ad879801fd</commitId><timestamp>1760905045000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add/remove app is per school and saved to server.
</comment><date>2025-10-20 00:17:25 +0400</date><id>ea301d8adce33f14d884ab1c6266e8ad879801fd</id><msg>Add/remove app is per school and saved to server.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><commitId>fae2f77392771f02fcd612139dc3d036ac757986</commitId><timestamp>1760907322000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Restrict add/remove app to system admin.
</comment><date>2025-10-20 00:55:22 +0400</date><id>fae2f77392771f02fcd612139dc3d036ac757986</id><msg>Restrict add/remove app to system admin.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>dcaaca528eeac971519502f09699273943a939f5</commitId><timestamp>1760907371000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version.
</comment><date>2025-10-20 00:56:11 +0400</date><id>dcaaca528eeac971519502f09699273943a939f5</id><msg>Bump version.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/empty.png</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><commitId>bbf2146ac96aafb5ab1da49c3199bc3d5c1de317</commitId><timestamp>1761571357000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>empty app list error messages and icon change
</comment><date>2025-10-27 18:52:37 +0530</date><id>bbf2146ac96aafb5ab1da49c3199bc3d5c1de317</id><msg>empty app list error messages and icon change</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/empty.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/empty.png</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><commitId>707e4c0d97fc63bd0bdb5b065fdc6692a2e1be4f</commitId><timestamp>1761579352000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>image change
</comment><date>2025-10-27 21:05:52 +0530</date><id>707e4c0d97fc63bd0bdb5b065fdc6692a2e1be4f</id><msg>image change</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/empty.png</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><commitId>170d7c4772791cc9a8e94ca81f9d2f10b670d502</commitId><timestamp>1761639447000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>padding added
</comment><date>2025-10-28 13:47:27 +0530</date><id>170d7c4772791cc9a8e94ca81f9d2f10b670d502</id><msg>padding added</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><commitId>558f42d85aba693ee330beaeffb9af71ca773ec5</commitId><timestamp>1761665441000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update test scenarios list to match with current primary branch.
</comment><date>2025-10-28 19:30:41 +0400</date><id>558f42d85aba693ee330beaeffb9af71ca773ec5</id><msg>Update test scenarios list to match with current primary branch.</msg><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>ad6085be5d8078d443a3a324826d9e0bdd72e2b2</commitId><timestamp>1761737269000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add community slack link to README.md
</comment><date>2025-10-29 15:27:49 +0400</date><id>ad6085be5d8078d443a3a324826d9e0bdd72e2b2</id><msg>Add community slack link to README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/002_browse_lessons_test_description.md</affectedPath><commitId>8d9a3a31eda6a2ff60d53f07244fb8bafca2337d</commitId><timestamp>1761745418000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated 002
</comment><date>2025-10-29 17:43:38 +0400</date><id>8d9a3a31eda6a2ff60d53f07244fb8bafca2337d</id><msg>Updated 002</msg><path><editType>edit</editType><file>respect-test-end-to-end/test-description/002_browse_lessons_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/005_admin_user_creates_a_report_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/004_admin_user_adds_classes_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_003_login_using_school_link_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/006_admin_user_adds_person_account_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_004_child_user_join_class_using_invitecode_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_003_Parent_user_join_class_using_invitecode_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_001_user_login_to _app_with_school_name_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_002_user_login_to _app_with_school_link_provided_by_admin_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/004_create_report_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/android-maestro/run_test.sh</affectedPath><commitId>dc0b2f877c6bcbe5baa2c8f3c07df856557c1a86</commitId><timestamp>1761746965000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated test descriptions
</comment><date>2025-10-29 18:09:25 +0400</date><id>dc0b2f877c6bcbe5baa2c8f3c07df856557c1a86</id><msg>Updated test descriptions</msg><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/005_admin_user_creates_a_report_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/android-maestro/run_test.sh</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_003_login_using_school_link_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/006_admin_user_adds_person_account_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/004_admin_user_adds_classes_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_003_Parent_user_join_class_using_invitecode_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_002_user_login_to _app_with_school_link_provided_by_admin_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/004_create_report_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_004_child_user_join_class_using_invitecode_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_001_user_login_to _app_with_school_name_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_003_login_using_school_link_test_description.md</affectedPath><commitId>60313610a2ea3ba01292129a0860a0acda687cfc</commitId><timestamp>1761747132000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated test descriptions
</comment><date>2025-10-29 18:12:12 +0400</date><id>60313610a2ea3ba01292129a0860a0acda687cfc</id><msg>Updated test descriptions</msg><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_003_login_using_school_link_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</affectedPath><commitId>7b0c4d8d28ace4069bedcc871f20eb21e1496726</commitId><timestamp>1761749329000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated test descriptions - 003
</comment><date>2025-10-29 18:48:49 +0400</date><id>7b0c4d8d28ace4069bedcc871f20eb21e1496726</id><msg>Updated test descriptions - 003</msg><path><editType>add</editType><file>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md</affectedPath><commitId>64ed9dccd121cbcc00887385027569a75b75a546</commitId><timestamp>1761752467000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated test descriptions - 006
</comment><date>2025-10-29 19:41:07 +0400</date><id>64ed9dccd121cbcc00887385027569a75b75a546</id><msg>Updated test descriptions - 006</msg><path><editType>add</editType><file>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</affectedPath><commitId>a526e76139954e053eca6a07d7e85d3cdd2c4f26</commitId><timestamp>1761752715000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Cleanup
</comment><date>2025-10-29 19:45:15 +0400</date><id>a526e76139954e053eca6a07d7e85d3cdd2c4f26</id><msg>Cleanup</msg><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><commitId>e19d1a1c2d74db37e9a4c795dfc8d227ed1d6760</commitId><timestamp>1761752835000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>link updated
</comment><date>2025-10-29 19:47:15 +0400</date><id>e19d1a1c2d74db37e9a4c795dfc8d227ed1d6760</id><msg>link updated</msg><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/003_teacher_user_assigns_assignment_to_a_class_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</affectedPath><commitId>5b731a5b46c1fee5107d0010667a5555864b5b34</commitId><timestamp>1761811043000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated
</comment><date>2025-10-30 11:57:23 +0400</date><id>5b731a5b46c1fee5107d0010667a5555864b5b34</id><msg>updated</msg><path><editType>add</editType><file>respect-test-end-to-end/test-description/003_teacher_user_assigns_assignment_to_a_class_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</file></path><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/003_admin_user_assigns_assignment_to_a_class_test_description.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName><id>nikunj.sharma</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName><id>mike</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><description></description><fullName>Pooja Ravi</fullName><id>pooja</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName><id>mandvi.verma</id></culprit></freeStyleBuild>