<freeStyleProject _class='hudson.model.FreeStyleProject'><action></action><action></action><action></action><action></action><action _class='hudson.plugins.jobConfigHistory.JobConfigHistoryProjectAction'></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.JobDisplayAction'><displayUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/</displayUrl></action><action _class='com.cloudbees.plugins.credentials.ViewCredentialsAction'><stores></stores></action><description>RESPECT-Primary</description><displayName>RESPECT-Primary-MavenPublish</displayName><fullDisplayName>RESPECT-Primary-MavenPublish</fullDisplayName><fullName>RESPECT-Primary-MavenPublish</fullName><name>RESPECT-Primary-MavenPublish</name><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/</url><buildable>true</buildable><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>53</buildNumber><marked><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.41.zip</displayPath><fileName>respect-cli-1.0.41.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.41.zip</displayPath><fileName>respect-server-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.41.zip</displayPath><fileName>respect-server-shadow-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.41.zip</relativePath></artifact><building>false</building><displayName>#53</displayName><duration>158167</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #53</fullDisplayName><id>53</id><inProgress>false</inProgress><keepLog>false</keepLog><number>53</number><queueId>11542</queueId><result>SUCCESS</result><timestamp>1788269951028</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/53/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><commitId>94fb283538e4668d8f7e0f1a8722e0b335e69c36</commitId><timestamp>1787908657000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve support for launching native apps using intent uri and custom action.

Intent uri can be used by compatible apps to specify that a native app is required to open a publication. A specific action intent can be used to support dynamic domains (e.g. on apps where the user can specify their own server, making verified app links impossible).
</comment><date>2026-08-28 13:17:37 +0400</date><id>94fb283538e4668d8f7e0f1a8722e0b335e69c36</id><msg>Improve support for launching native apps using intent uri and custom action.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><commitId>e6c78c1186adb61644e90402ca52deda4724d3fa</commitId><timestamp>1787910703000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add non-https support to query for org.openeel.action.LAUNCH
</comment><date>2026-08-28 13:51:43 +0400</date><id>e6c78c1186adb61644e90402ca52deda4724d3fa</id><msg>Add non-https support to query for org.openeel.action.LAUNCH</msg><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><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/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><commitId>d10f9c64824de16973cd67b2548a978a5b26d5f4</commitId><timestamp>1787925647000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to show app installation prompt.
</comment><date>2026-08-28 18:00:47 +0400</date><id>d10f9c64824de16973cd67b2548a978a5b26d5f4</id><msg>Add support to show app installation prompt.</msg><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.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-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>382c3b245cb544ee8e01b89bd67c909a0a163f3a</commitId><timestamp>1787927780000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:36:20 +0400</date><id>382c3b245cb544ee8e01b89bd67c909a0a163f3a</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.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/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>4f9b0028accce4af732cbc094e632d6fa2c20d82</commitId><timestamp>1787928409000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:46:49 +0400</date><id>4f9b0028accce4af732cbc094e632d6fa2c20d82</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><commitId>adb4fd184baff20a4069382ff26a6a57ab31ecb3</commitId><timestamp>1788094820000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename install prompt to GoToAppStore.

Update SavePasswordUseCase to use activity context processor.
</comment><date>2026-08-30 17:00:20 +0400</date><id>adb4fd184baff20a4069382ff26a6a57ab31ecb3</id><msg>Rename install prompt to GoToAppStore.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><commitId>db1f7b231d0caf93995bea64b72fbfecd5d2765e</commitId><timestamp>1788096442000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add mobile only lessons to the demoapp catalog.
</comment><date>2026-08-30 17:27:22 +0400</date><id>db1f7b231d0caf93995bea64b72fbfecd5d2765e</id><msg>Add mobile only lessons to the demoapp catalog.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>8a654eaaf39c5ada415dc3289b329710cc1e08d5</commitId><timestamp>1788097416000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.
</comment><date>2026-08-30 17:43:36 +0400</date><id>8a654eaaf39c5ada415dc3289b329710cc1e08d5</id><msg>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</commitId><timestamp>1788106071000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on intent filter.
</comment><date>2026-08-30 20:07:51 +0400</date><id>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</id><msg>Update README_ADD_YOUR_APP.md to add guidance on intent filter.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>76a3f81564d1ca947cfb1665b7b53c04b62972e3</commitId><timestamp>1788162043000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add initial language map for multilingual launchable app demo.
</comment><date>2026-08-31 11:40:43 +0400</date><id>76a3f81564d1ca947cfb1665b7b53c04b62972e3</id><msg>Add initial language map for multilingual launchable app demo.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><commitId>7a3da32354ec1188fbc09f228f562c409c5815d1</commitId><timestamp>1788181028000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app to show multiple language versions.
</comment><date>2026-08-31 16:57:08 +0400</date><id>7a3da32354ec1188fbc09f228f562c409c5815d1</id><msg>Update demo app to show multiple language versions.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.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-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</commitId><timestamp>1788187739000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app examples to include multiple languages.
</comment><date>2026-08-31 18:48:59 +0400</date><id>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</id><msg>Update demo app examples to include multiple languages.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><commitId>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</commitId><timestamp>1788188325000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demoapp index.html
</comment><date>2026-08-31 18:58:45 +0400</date><id>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</id><msg>Update demoapp index.html</msg><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>contrib/language-names.ods</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</commitId><timestamp>1788261154000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to display alternative language versions for apps and learning units.
</comment><date>2026-09-01 15:12:34 +0400</date><id>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</id><msg>Add support to display alternative language versions for apps and learning units.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</file></path><path><editType>add</editType><file>contrib/language-names.ods</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>add</editType><file>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><commitId>0c734ef1853f901413b6829b2339531eac50b9cb</commitId><timestamp>1788263695000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update grade collection title.
</comment><date>2026-09-01 15:54:55 +0400</date><id>0c734ef1853f901413b6829b2339531eac50b9cb</id><msg>Update grade collection title.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><commitId>b2f8a9f343fe8863b4d372dc809b614870d335a5</commitId><timestamp>1788264635000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix OpdsRespectRepositoryIntegrationTest.kt compilation
</comment><date>2026-09-01 16:10:35 +0400</date><id>b2f8a9f343fe8863b4d372dc809b614870d335a5</id><msg>Fix OpdsRespectRepositoryIntegrationTest.kt compilation</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>5052d265d464808f675b60958901c2c3f96d979e</commitId><timestamp>1788269163000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md documentation on loading offline resources.
</comment><date>2026-09-01 17:26:03 +0400</date><id>5052d265d464808f675b60958901c2c3f96d979e</id><msg>Update README_ADD_YOUR_APP.md documentation on loading offline resources.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>52</buildNumber><marked><SHA1>ec091d76fd21cd6cbc002021060e86c7b14321bd</SHA1><branch><SHA1>ec091d76fd21cd6cbc002021060e86c7b14321bd</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>ec091d76fd21cd6cbc002021060e86c7b14321bd</SHA1><branch><SHA1>ec091d76fd21cd6cbc002021060e86c7b14321bd</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>ec091d76fd21cd6cbc002021060e86c7b14321bd</SHA1><branch><SHA1>ec091d76fd21cd6cbc002021060e86c7b14321bd</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.41.zip</displayPath><fileName>respect-cli-1.0.41.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.41.zip</displayPath><fileName>respect-server-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.41.zip</displayPath><fileName>respect-server-shadow-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.41.zip</relativePath></artifact><building>false</building><displayName>#52</displayName><duration>162348</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #52</fullDisplayName><id>52</id><inProgress>false</inProgress><keepLog>false</keepLog><number>52</number><queueId>11435</queueId><result>SUCCESS</result><timestamp>1787815224265</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/52/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SchoolCountryDetector.kt</affectedPath><commitId>a4d0150fe26f9ff9b1f9a6de60bdebf753448313</commitId><timestamp>1763017475000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Added SchoolcountryDetector.
</comment><date>2025-11-13 12:34:35 +0530</date><id>a4d0150fe26f9ff9b1f9a6de60bdebf753448313</id><msg>Added SchoolcountryDetector.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SchoolCountryDetector.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.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/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SchoolCountryDetector.kt</affectedPath><commitId>944c26ad8e4e5d9a9ae18eba2bed2f23b2e697c2</commitId><timestamp>1763106745000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>added the GetCountryForUrlUseCase to lookup the country for a given URL
</comment><date>2025-11-14 13:22:25 +0530</date><id>944c26ad8e4e5d9a9ae18eba2bed2f23b2e697c2</id><msg>added the GetCountryForUrlUseCase to lookup the country for a given URL</msg><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/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SchoolCountryDetector.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><commitId>0500ce78894c3dbc49d1e7fe491d03ddfedcc8d6</commitId><timestamp>1763111337000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Added the implementation of the usecase
</comment><date>2025-11-14 14:38:57 +0530</date><id>0500ce78894c3dbc49d1e7fe491d03ddfedcc8d6</id><msg>Added the implementation of the usecase</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.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-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><commitId>f50adb6ea129658d30648fd1d9f43aa4f43bc83e</commitId><timestamp>1763359219000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>set White flag foe unknown country
</comment><date>2025-11-17 11:30:19 +0530</date><id>f50adb6ea129658d30648fd1d9f43aa4f43bc83e</id><msg>set White flag foe unknown country</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><commitId>857f9bce5a3146eddef726bc3df42cdd398d7951</commitId><timestamp>1763371747000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Chnage the Endpoint
</comment><date>2025-11-17 14:59:07 +0530</date><id>857f9bce5a3146eddef726bc3df42cdd398d7951</id><msg>Chnage the Endpoint</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><commitId>6b8cc2c66c44a9e8a5e2628e077b201a4e8817f5</commitId><timestamp>1763372021000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Chnage the Endpoint
</comment><date>2025-11-17 15:03:41 +0530</date><id>6b8cc2c66c44a9e8a5e2628e077b201a4e8817f5</id><msg>Chnage the Endpoint</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><commitId>c40888ba7613010725454fcbbcf57031287ecc95</commitId><timestamp>1763376701000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Remove the X-forwared-ip
</comment><date>2025-11-17 16:21:41 +0530</date><id>c40888ba7613010725454fcbbcf57031287ecc95</id><msg>Remove the X-forwared-ip</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</affectedPath><commitId>c2445729a2db6f36e205a21dec7aab5f7fb86d66</commitId><timestamp>1763378720000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Remove the white flag (default one being for just test purpose)
</comment><date>2025-11-17 16:55:20 +0530</date><id>c2445729a2db6f36e205a21dec7aab5f7fb86d66</id><msg>Remove the white flag (default one being for just test purpose)</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><commitId>5825298a09081127a6af65f4ba6556e3c7afdee3</commitId><timestamp>1763455135000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>chane the end pointurl
</comment><date>2025-11-18 14:08:55 +0530</date><id>5825298a09081127a6af65f4ba6556e3c7afdee3</id><msg>chane the end pointurl</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.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/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><commitId>c9185422cfdbed15882baf3b4841044baab8c72c</commitId><timestamp>1763540629000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Add CountryFlag component for displaying flags
</comment><date>2025-11-19 13:53:49 +0530</date><id>c9185422cfdbed15882baf3b4841044baab8c72c</id><msg>Add CountryFlag component for displaying flags</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.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/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><commitId>8e5f308aa64fb2e503a3f1f54b0113338b097bbc</commitId><timestamp>1763626996000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>refactor: use Koin DI in CountryFlag composable for GetCountryForUrlUseCase.
</comment><date>2025-11-20 13:53:16 +0530</date><id>8e5f308aa64fb2e503a3f1f54b0113338b097bbc</id><msg>refactor: use Koin DI in CountryFlag composable for GetCountryForUrlUseCase.</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.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/AccountListItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>30564c242c9ad4b487ec539a99fe6edae373c000</commitId><timestamp>1763627461000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Modify App koin module
</comment><date>2025-11-20 14:01:01 +0530</date><id>30564c242c9ad4b487ec539a99fe6edae373c000</id><msg>Modify App koin module</msg><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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>183fb85b03da17049b9ef0da7091dfd63fddc39d</commitId><timestamp>1763630034000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Modify App koin module
</comment><date>2025-11-20 14:43:54 +0530</date><id>183fb85b03da17049b9ef0da7091dfd63fddc39d</id><msg>Modify App koin module</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><commitId>d3d88c4c5598d5b42ab6d7d15b1a30fdb8721bcb</commitId><timestamp>1763954560000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>refactor: replace string type with URL for schoolUrl
</comment><date>2025-11-24 08:52:40 +0530</date><id>d3d88c4c5598d5b42ab6d7d15b1a30fdb8721bcb</id><msg>refactor: replace string type with URL for schoolUrl</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>ceca96a09687e8f649d769132601772cf9a478a4</commitId><timestamp>1763977117000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Modify AppKoin module
</comment><date>2025-11-24 15:08:37 +0530</date><id>ceca96a09687e8f649d769132601772cf9a478a4</id><msg>Modify AppKoin module</msg><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>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><commitId>1bec94de8fef638f449fcbfe56713770973b71c8</commitId><timestamp>1785848961000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Add `GEOLOCATION_API_ENDPOINT` build config field and update `GetCountryForUrlUseCaseImpl` to use the injected endpoint and new API path.
</comment><date>2026-08-04 18:39:21 +0530</date><id>1bec94de8fef638f449fcbfe56713770973b71c8</id><msg>Add `GEOLOCATION_API_ENDPOINT` build config field and update `GetCountryForUrlUseCaseImpl` to use the injected endpoint and new API path.</msg><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><commitId>4386799be9c5738c67c4e41f7b089fa306498448</commitId><timestamp>1785857096000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>fix
</comment><date>2026-08-04 20:54:56 +0530</date><id>4386799be9c5738c67c4e41f7b089fa306498448</id><msg>fix</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>d997498330fa70ab311cd65d2f24b5153d73d06a</commitId><timestamp>1785918823000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make learning unit consistent with demo.openeel.org.
</comment><date>2026-08-05 12:33:43 +0400</date><id>d997498330fa70ab311cd65d2f24b5153d73d06a</id><msg>Make learning unit consistent with demo.openeel.org.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><commitId>6dfef8e4a6ddbf8e01c8925f31bae2ab65add74f</commitId><timestamp>1785922180000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add retry logic to SchoolDirectoryEntryDataSourceHttp.kt
</comment><date>2026-08-05 13:29:40 +0400</date><id>6dfef8e4a6ddbf8e01c8925f31bae2ab65add74f</id><msg>Add retry logic to SchoolDirectoryEntryDataSourceHttp.kt</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.kt</affectedPath><commitId>e29231d5cf47ca457cbc1c28690ebb7eeb85ab04</commitId><timestamp>1785927677000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add text component that can be monitored in Maestro tests to wait for all pending remote writes to be completed.
</comment><date>2026-08-05 15:01:17 +0400</date><id>e29231d5cf47ca457cbc1c28690ebb7eeb85ab04</id><msg>Add text component that can be monitored in Maestro tests to wait for all pending remote writes to be completed.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><commitId>91a9a7096117da5433c92a5129b6ac297918040d</commitId><timestamp>1785930490000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update UstadCacheImpl.kt and test to improve handling closing the database/cache
</comment><date>2026-08-05 15:48:10 +0400</date><id>91a9a7096117da5433c92a5129b6ac297918040d</id><msg>Update UstadCacheImpl.kt and test to improve handling closing the database/cache</msg><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/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.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>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>.maestro/flows/subflows/teardown.yaml</affectedPath><commitId>0402fc938ae40bc5e9a5b8a496a5afa41e7f6407</commitId><timestamp>1785931455000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make maestro tests wait for all pending remote writs to complete.

Add a small hidden text element with the pending remote write count that a maestro test can wait for (avoid clearing the app before saved data is written to server).
</comment><date>2026-08-05 16:04:15 +0400</date><id>0402fc938ae40bc5e9a5b8a496a5afa41e7f6407</id><msg>Make maestro tests wait for all pending remote writs to complete.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/teardown.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</affectedPath><commitId>6fd710da694f06f076eb3e389ac7f145690f9d63</commitId><timestamp>1785952438000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Reduce use of cache database closing due to apparent bug in Room Sqlite bundled driver.

Update UstadCacheInterceptorTest to close mockwebserver after each run.
</comment><date>2026-08-05 21:53:58 +0400</date><id>6fd710da694f06f076eb3e389ac7f145690f9d63</id><msg>Reduce use of cache database closing due to apparent bug in Room Sqlite bundled driver.</msg><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-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.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>74b3e6c5e4f5642ca08c7d494992ad27607f75c7</commitId><timestamp>1785953030000</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>2026-08-05 22:03:50 +0400</date><id>74b3e6c5e4f5642ca08c7d494992ad27607f75c7</id><msg>Bump version</msg><path><editType>edit</editType><file>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle.properties</affectedPath><commitId>d6a65d188370e080d078ee87dcf2ec054d03309e</commitId><timestamp>1785953050000</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>2026-08-05 22:04:10 +0400</date><id>d6a65d188370e080d078ee87dcf2ec054d03309e</id><msg>Bump version</msg><path><editType>edit</editType><file>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/e2e_artifact_upload.yaml</affectedPath><affectedPath>.maestro/flows/subflows/teardown.yaml</affectedPath><commitId>74df52d811dbfecc0f22f2df7a33faa78eb8c0f3</commitId><timestamp>1785996886000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>moved the command to Wait for all pending remote writes from teardown to e2e_artifact_upload.yaml
</comment><date>2026-08-06 10:14:46 +0400</date><id>74df52d811dbfecc0f22f2df7a33faa78eb8c0f3</id><msg>moved the command to Wait for all pending remote writes from teardown to e2e_artifact_upload.yaml</msg><path><editType>edit</editType><file>.maestro/flows/subflows/e2e_artifact_upload.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/teardown.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/e2e_artifact_upload.yaml</affectedPath><commitId>abf298829e847550c020cbfb63f03272a0f66b4a</commitId><timestamp>1786000260000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Waiting for pending remote writes to complete is done after setting the device back to online.
</comment><date>2026-08-06 11:11:00 +0400</date><id>abf298829e847550c020cbfb63f03272a0f66b4a</id><msg>Waiting for pending remote writes to complete is done after setting the device back to online.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/e2e_artifact_upload.yaml</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/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>7172569c153a05ff49006cb9a94a64443443575c</commitId><timestamp>1786003014000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update to use activity id as per tincan.xml when addinga learning unit to an assignment. Bump version.
</comment><date>2026-08-06 11:56:54 +0400</date><id>7172569c153a05ff49006cb9a94a64443443575c</id><msg>Update to use activity id as per tincan.xml when addinga learning unit to an assignment. Bump version.</msg><path><editType>edit</editType><file>gradle.properties</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/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><commitId>12fdd918e68b5bb65cbf3e7118c21a5e92a98651</commitId><timestamp>1786003662000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove concurrency issue: update cache commit backlog size only after db transaction has finished.
</comment><date>2026-08-06 12:07:42 +0400</date><id>12fdd918e68b5bb65cbf3e7118c21a5e92a98651</id><msg>Remove concurrency issue: update cache commit backlog size only after db transaction has finished.</msg><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/util/ChannelExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><commitId>fcbe0ced3524bf02db779ed27cfd7b875a632a24</commitId><timestamp>1786018385000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>fix
</comment><date>2026-08-06 17:43:05 +0530</date><id>fcbe0ced3524bf02db779ed27cfd7b875a632a24</id><msg>fix</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</affectedPath><commitId>ef805d54e6f20b3572f3c636dcbde9e832ca93cc</commitId><timestamp>1786278826000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>GeoIp lookup tidyup
</comment><date>2026-08-09 16:33:46 +0400</date><id>ef805d54e6f20b3572f3c636dcbde9e832ca93cc</id><msg>GeoIp lookup tidyup</msg><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md</affectedPath><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><commitId>860d3fae1a870012649be7a8bcd250592d8ecf76</commitId><timestamp>1786386075000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add XAPI SQL Query receipe readme.
</comment><date>2026-08-10 22:21:15 +0400</date><id>860d3fae1a870012649be7a8bcd250592d8ecf76</id><msg>Add XAPI SQL Query receipe readme.</msg><path><editType>add</editType><file>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>57c6f948b6b15bde197a40a6a1ad78009d30021d</commitId><timestamp>1786532734000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix cache db migration (migration referenced old field name).
</comment><date>2026-08-12 15:05:34 +0400</date><id>57c6f948b6b15bde197a40a6a1ad78009d30021d</id><msg>Fix cache db migration (migration referenced old field name).</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</affectedPath><commitId>ae128767bf683764bc4ef24a9833b1814a9f05fd</commitId><timestamp>1786955787000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add helper functions for use of statement extension properties.
</comment><date>2026-08-17 09:36:27 +0100</date><id>ae128767bf683764bc4ef24a9833b1814a9f05fd</id><msg>Add helper functions for use of statement extension properties.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportOptions.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/DefaultIndicators.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportConditionFilterOptions.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportPeriod.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportSeries.kt</affectedPath><affectedPath>app-android/README.md</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/StatementReportRow.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportSeries.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Indicator.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt</affectedPath><commitId>ded5fe5d6b7603b848bc5d16baca96a4accae55b</commitId><timestamp>1787149595000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add model class for XapiSqlQueryResponse. Move report options into xapi module.
</comment><date>2026-08-19 18:26:35 +0400</date><id>ded5fe5d6b7603b848bc5d16baca96a4accae55b</id><msg>Add model class for XapiSqlQueryResponse. Move report options into xapi module.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportConditionFilterOptions.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.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-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportSeries.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/StatementReportRow.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/DefaultIndicators.kt</file></path><path><editType>add</editType><file>app-android/README.md</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportPeriod.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportSeries.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.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-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Indicator.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportOptions.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-test-resources/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/androidTest/java/org/openeel/lib/ipc/messagebridge/ExampleInstrumentedTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-core/.gitignore</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/keepRules/rules.keep</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</affectedPath><affectedPath>lib-ipc-messagebridge/README.md</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/MessageData.kt</affectedPath><affectedPath>lib-cache-ipc-core/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-ipc-messagebridge/consumer-rules.keep</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>lib-cache-ipc-core/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-ipc-core/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</affectedPath><affectedPath>lib-cache-ipc-core/src/test/java/org/openeel/libcache/ipc/core/ExampleUnitTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/MessageExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-core/consumer-rules.keep</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeTags.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeWhatFlags.kt</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridge.kt</affectedPath><affectedPath>lib-ipc-messagebridge/.gitignore</affectedPath><affectedPath>lib-ipc-messagebridge/build.gradle.kts</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ext/MessageExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeServiceConnectionImpl.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/test/java/org/openeel/lib/ipc/messagebridge/ExampleUnitTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridgeMessengerImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt</affectedPath><commitId>5069f82baddf1858ad45dc66247289c8660046fb</commitId><timestamp>1787223862000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move message bridge into a separate module so it can be shared by both the xAPI IPC client and the cache IPC client.
</comment><date>2026-08-20 15:04:22 +0400</date><id>5069f82baddf1858ad45dc66247289c8660046fb</id><msg>Move message bridge into a separate module so it can be shared by both the xAPI IPC client and the cache IPC client.</msg><path><editType>add</editType><file>lib-ipc-messagebridge/.gitignore</file></path><path><editType>add</editType><file>lib-cache-ipc-core/src/main/keepRules/rules.keep</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/androidTest/java/org/openeel/lib/ipc/messagebridge/ExampleInstrumentedTest.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/test/java/org/openeel/lib/ipc/messagebridge/ExampleUnitTest.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeWhatFlags.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ext/MessageExt.kt</file></path><path><editType>edit</editType><file>respect-lib-test-resources/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache-ipc-core/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/MessageData.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-core/.gitignore</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/consumer-rules.keep</file></path><path><editType>add</editType><file>lib-cache-ipc-core/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/MessageExt.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-core/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache-ipc-core/consumer-rules.keep</file></path><path><editType>add</editType><file>lib-cache-ipc-core/src/test/java/org/openeel/libcache/ipc/core/ExampleUnitTest.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridgeMessengerImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeTags.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/keepRules/rules.keep</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/README.md</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridge.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/build.gradle.kts</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeServiceConnectionImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-cache-ipc-shared/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-core/consumer-rules.keep</affectedPath><affectedPath>lib-cache-ipc-core/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-shared/build.gradle.kts</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-shared/consumer-rules.keep</affectedPath><affectedPath>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>lib-cache-ipc-core/.gitignore</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</affectedPath><affectedPath>lib-cache-ipc-core/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</affectedPath><affectedPath>lib-cache-ipc-core/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-ipc-core/src/test/java/org/openeel/libcache/ipc/core/ExampleUnitTest.kt</affectedPath><affectedPath>lib-cache-ipc-core/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-ipc-shared/.gitignore</affectedPath><commitId>bd96061dc91fc8aef598c4fb97d6bd4e9b253286</commitId><timestamp>1787231784000</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 converting an OKHttp Request to/from a bundle.
</comment><date>2026-08-20 17:16:24 +0400</date><id>bd96061dc91fc8aef598c4fb97d6bd4e9b253286</id><msg>Initial implementation of converting an OKHttp Request to/from a bundle.</msg><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-core/src/test/java/org/openeel/libcache/ipc/core/ExampleUnitTest.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/.gitignore</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/build.gradle.kts</file></path><path><editType>delete</editType><file>lib-cache-ipc-core/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-core/src/main/keepRules/rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-core/consumer-rules.keep</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>delete</editType><file>lib-cache-ipc-core/.gitignore</file></path><path><editType>delete</editType><file>lib-cache-ipc-core/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/consumer-rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-core/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/keepRules/rules.keep</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/ResponseAdapterUnitTest.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</affectedPath><commitId>02dfe00a5629d3332074f18a21169137223d9b9e</commitId><timestamp>1787248807000</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 adapter to handle converting Response to/from Android Bundle
</comment><date>2026-08-20 22:00:07 +0400</date><id>02dfe00a5629d3332074f18a21169137223d9b9e</id><msg>Initial implementation of adapter to handle converting Response to/from Android Bundle</msg><path><editType>edit</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/ResponseAdapterUnitTest.kt</file></path><path><editType>edit</editType><file>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</affectedPath><affectedPath>lib-cache-ipc-client/.gitignore</affectedPath><affectedPath>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeMessengerImpl.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/ResponseAdapterUnitTest.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-ipc-server/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-shared/build.gradle.kts</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/MessengerProvider.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-client/consumer-rules.keep</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridge.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridge.kt</affectedPath><affectedPath>lib-cache-ipc-server/.gitignore</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeServiceConnectionImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>lib-cache-ipc-server/consumer-rules.keep</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridgeMessengerImpl.kt</affectedPath><affectedPath>lib-cache-ipc-client/build.gradle.kts</affectedPath><commitId>eeea4bb4cb73957c34ec59a626212c52464f1e45</commitId><timestamp>1787336515000</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 IpcHttpClient with a very basic hello world test to make a real http call over IPC.
</comment><date>2026-08-21 22:21:55 +0400</date><id>eeea4bb4cb73957c34ec59a626212c52464f1e45</id><msg>Initial implementation of IpcHttpClient with a very basic hello world test to make a real http call over IPC.</msg><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-shared/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt</file></path><path><editType>edit</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeServiceConnectionImpl.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-client/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-cache-ipc-server/.gitignore</file></path><path><editType>add</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path><path><editType>delete</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridgeMessengerImpl.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridge.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-cache-ipc-client/.gitignore</file></path><path><editType>add</editType><file>lib-cache-ipc-client/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache-ipc-client/src/main/keepRules/rules.keep</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/main/keepRules/rules.keep</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/MessengerProvider.kt</file></path><path><editType>delete</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridge.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/ResponseAdapterUnitTest.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/consumer-rules.keep</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeMessengerImpl.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-client/consumer-rules.keep</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/RespectApp.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>44b9906f5d0a1e387227cb1768bfc21c88785605</commitId><timestamp>1787406616000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>IpcHttpClient working with DemoLaunchableApp to send/receive http responses.
</comment><date>2026-08-22 17:50:16 +0400</date><id>44b9906f5d0a1e387227cb1768bfc21c88785605</id><msg>IpcHttpClient working with DemoLaunchableApp to send/receive http responses.</msg><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</file></path><path><editType>edit</editType><file>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>43e756c013940cb3b35b2934d6c267a205aba495</commitId><timestamp>1787567564000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update IpcHttpService to run outgoing http request asynchronously.
</comment><date>2026-08-24 14:32:44 +0400</date><id>43e756c013940cb3b35b2934d6c267a205aba495</id><msg>Update IpcHttpService to run outgoing http request asynchronously.</msg><path><editType>edit</editType><file>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</affectedPath><affectedPath>lib-http-ipc-server/build.gradle.kts</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt</affectedPath><affectedPath>lib-http-ipc-server/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</affectedPath><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</affectedPath><affectedPath>lib-http-ipc-shared/consumer-rules.keep</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt</affectedPath><affectedPath>lib-cache-ipc-shared/consumer-rules.keep</affectedPath><affectedPath>lib-http-ipc-client/build.gradle.kts</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</affectedPath><affectedPath>lib-http-ipc-shared/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-client/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-server/.gitignore</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><affectedPath>lib-cache-ipc-server/consumer-rules.keep</affectedPath><affectedPath>lib-http-ipc-server/.gitignore</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</affectedPath><affectedPath>lib-cache-ipc-client/.gitignore</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-server/consumer-rules.keep</affectedPath><affectedPath>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</affectedPath><affectedPath>lib-http-ipc-client/.gitignore</affectedPath><affectedPath>lib-http-ipc-client/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-http-ipc-shared/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</affectedPath><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</affectedPath><affectedPath>lib-cache-ipc-shared/.gitignore</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-http-ipc-shared/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-server/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-shared/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-client/consumer-rules.keep</affectedPath><affectedPath>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</affectedPath><affectedPath>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>lib-http-ipc-server/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-shared/.gitignore</affectedPath><affectedPath>lib-cache-ipc-client/build.gradle.kts</affectedPath><affectedPath>lib-http-ipc-client/consumer-rules.keep</affectedPath><commitId>22c69115ed7de726e828e155cdf169f5bf9079ec</commitId><timestamp>1787579765000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Change package names for http-ipc.

HTTP-IPC is not really limited to caching: remove the word cache from the module names.
</comment><date>2026-08-24 17:56:05 +0400</date><id>22c69115ed7de726e828e155cdf169f5bf9079ec</id><msg>Change package names for http-ipc.</msg><path><editType>delete</editType><file>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/build.gradle.kts</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/src/main/keepRules/rules.keep</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/.gitignore</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt</file></path><path><editType>add</editType><file>lib-http-ipc-client/build.gradle.kts</file></path><path><editType>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/.gitignore</file></path><path><editType>add</editType><file>lib-http-ipc-client/src/main/keepRules/rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-http-ipc-server/.gitignore</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/main/keepRules/rules.keep</file></path><path><editType>add</editType><file>lib-http-ipc-client/.gitignore</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/consumer-rules.keep</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/main/AndroidManifest.xml</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/.gitignore</file></path><path><editType>add</editType><file>lib-http-ipc-client/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-http-ipc-server/consumer-rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>lib-http-ipc-shared/consumer-rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/build.gradle.kts</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</file></path><path><editType>add</editType><file>lib-http-ipc-client/consumer-rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/main/keepRules/rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/build.gradle.kts</file></path><path><editType>add</editType><file>lib-http-ipc-shared/.gitignore</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/consumer-rules.keep</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/src/main/AndroidManifest.xml</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/keepRules/rules.keep</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/main/keepRules/rules.keep</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/consumer-rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt</file></path><path><editType>add</editType><file>lib-http-ipc-server/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>lib-http-ipc-server/build.gradle.kts</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</affectedPath><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/ext/ResponseBuilderExt.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>6371e2d38979f95450f57306e470a94b5faf911b</commitId><timestamp>1787637218000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Use WeakReferences for calls in IpcHttpClientImpl

Returns 502 gateway error response in case of call exception.

Mkae IpcHttpClient closeable.
</comment><date>2026-08-25 09:53:38 +0400</date><id>6371e2d38979f95450f57306e470a94b5faf911b</id><msg>Use WeakReferences for calls in IpcHttpClientImpl</msg><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/build.gradle.kts</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/ext/ResponseBuilderExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><commitId>745b7d07ba31d42f7a73d7eb044ce3ae9bccb774</commitId><timestamp>1787643201000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Use ExecutorService instead of new thread creation when handling IPC http request/response bodies.
</comment><date>2026-08-25 11:33:21 +0400</date><id>745b7d07ba31d42f7a73d7eb044ce3ae9bccb774</id><msg>Use ExecutorService instead of new thread creation when handling IPC http request/response bodies.</msg><path><editType>edit</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-test-resources/src/androidMain/assets/media/video.mp4</affectedPath><affectedPath>lib-http-ipc-server/build.gradle.kts</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt</affectedPath><commitId>bdb503ef7365cf0ed42f234d04bd65604e172aa1</commitId><timestamp>1787651892000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update HttpIpcIntegrationTest to use an asset dispatcher so other files types can be tested.
</comment><date>2026-08-25 13:58:12 +0400</date><id>bdb503ef7365cf0ed42f234d04bd65604e172aa1</id><msg>Update HttpIpcIntegrationTest to use an asset dispatcher so other files types can be tested.</msg><path><editType>edit</editType><file>lib-http-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/media/video.mp4</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt</affectedPath><commitId>e6e6cf3cda977fb2f33d97b171cc9b44ee1a924d</commitId><timestamp>1787652751000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add tests on HttpIpc error handling
</comment><date>2026-08-25 14:12:31 +0400</date><id>e6e6cf3cda977fb2f33d97b171cc9b44ee1a924d</id><msg>Add tests on HttpIpc error handling</msg><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcKeys.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcWhat.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/HeadersAdapter.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/TimeoutAdapter.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/ext/MockResponseBuilderExt.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</affectedPath><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/RequestAdapter.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/ResponseAdapter.kt</affectedPath><commitId>e2cd15e416d4595dd418d6cf6be2e88c3f7c2c71</commitId><timestamp>1787665269000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve HttpIpc error handling and timeout handling.
</comment><date>2026-08-25 17:41:09 +0400</date><id>e2cd15e416d4595dd418d6cf6be2e88c3f7c2c71</id><msg>Improve HttpIpc error handling and timeout handling.</msg><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/HeadersAdapter.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/ext/MockResponseBuilderExt.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcWhat.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/RequestAdapter.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcKeys.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/TimeoutAdapter.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/ResponseAdapter.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcCall.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClient.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</affectedPath><commitId>eb58287144981889207910613c05ee33117a7a75</commitId><timestamp>1787728611000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add test of socket exception
</comment><date>2026-08-26 11:16:51 +0400</date><id>eb58287144981889207910613c05ee33117a7a75</id><msg>Add test of socket exception</msg><path><editType>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClient.kt</file></path><path><editType>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientImpl.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</file></path><path><editType>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcCall.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientBuilder.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</affectedPath><affectedPath>lib-http-ipc-client/README.md</affectedPath><affectedPath>lib-http-ipc-shared/README.md</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>81a761a0c9c42868b6c5e5089e6f10eca70e3613</commitId><timestamp>1787732935000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add HttpIpcClientBuilder and some related READMEs.
</comment><date>2026-08-26 12:28:55 +0400</date><id>81a761a0c9c42868b6c5e5089e6f10eca70e3613</id><msg>Add HttpIpcClientBuilder and some related READMEs.</msg><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientBuilder.kt</file></path><path><editType>add</editType><file>lib-http-ipc-client/README.md</file></path><path><editType>add</editType><file>lib-http-ipc-shared/README.md</file></path><path><editType>edit</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>lib-http-ipc-client/README.md</affectedPath><affectedPath>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/HttpIpcService.kt</affectedPath><commitId>d8b97c1de66010b77ce2b0a760155ebaf1c3b6c6</commitId><timestamp>1787750012000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update naming on HttpIpcService. Add ready to uncomment code to allow for testing of HttpIpc using the WebViewActivity.
</comment><date>2026-08-26 17:13:32 +0400</date><id>d8b97c1de66010b77ce2b0a760155ebaf1c3b6c6</id><msg>Update naming on HttpIpcService. Add ready to uncomment code to allow for testing of HttpIpc using the WebViewActivity.</msg><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/HttpIpcService.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-client/README.md</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/interceptor/HttpIpcInterceptor.kt</affectedPath><commitId>fc2efc33754007856ddf009ac1e2ed0845493a40</commitId><timestamp>1787756454000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add OKHttp interceptor to use response from HttpIpc when already cached.
</comment><date>2026-08-26 19:00:54 +0400</date><id>fc2efc33754007856ddf009ac1e2ed0845493a40</id><msg>Add OKHttp interceptor to use response from HttpIpc when already cached.</msg><path><editType>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/interceptor/HttpIpcInterceptor.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcCall.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>e6851270e820de92048ffbc0faf424b1834e7e32</commitId><timestamp>1787765587000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup HttpIpcCall. Update demo to include image.
</comment><date>2026-08-26 21:33:07 +0400</date><id>e6851270e820de92048ffbc0faf424b1834e7e32</id><msg>Tidyup HttpIpcCall. Update demo to include image.</msg><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcCall.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientImpl.kt</file></path><path><editType>edit</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle.properties</affectedPath><commitId>876b1ab4ddae186dc0d801d77883c8c96b43b25d</commitId><timestamp>1787814555000</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>2026-08-27 11:09:15 +0400</date><id>876b1ab4ddae186dc0d801d77883c8c96b43b25d</id><msg>Bump version</msg><path><editType>edit</editType><file>gradle.properties</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>51</buildNumber><marked><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</SHA1><branch><SHA1>b14d70228ade3d0a0282bced3d341c9b8a984f93</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.35.zip</displayPath><fileName>respect-cli-1.0.35.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.35.zip</displayPath><fileName>respect-server-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.35.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.35.zip</displayPath><fileName>respect-server-shadow-1.0.35.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.35.zip</relativePath></artifact><building>false</building><displayName>#51</displayName><duration>156892</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #51</fullDisplayName><id>51</id><inProgress>false</inProgress><keepLog>false</keepLog><number>51</number><queueId>10979</queueId><result>SUCCESS</result><timestamp>1785914610157</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/51/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>b14d70228ade3d0a0282bced3d341c9b8a984f93</commitId><timestamp>1785914385000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make terminology consistent: use collection instead of catalog.
</comment><date>2026-08-05 11:19:45 +0400</date><id>b14d70228ade3d0a0282bced3d341c9b8a984f93</id><msg>Make terminology consistent: use collection instead of catalog.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>49</buildNumber><marked><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#49</displayName><duration>166801</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #49</fullDisplayName><id>49</id><inProgress>false</inProgress><keepLog>false</keepLog><number>49</number><queueId>10948</queueId><result>SUCCESS</result><timestamp>1785826921293</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/49/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>48</buildNumber><marked><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#48</displayName><duration>157546</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #48</fullDisplayName><id>48</id><inProgress>false</inProgress><keepLog>false</keepLog><number>48</number><queueId>10929</queueId><result>SUCCESS</result><timestamp>1785740521293</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/48/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>47</buildNumber><marked><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>52845f44836ba14427dd22dbeb7169292931effa</SHA1><branch><SHA1>52845f44836ba14427dd22dbeb7169292931effa</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#47</displayName><duration>154281</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #47</fullDisplayName><id>47</id><inProgress>false</inProgress><keepLog>false</keepLog><number>47</number><queueId>10909</queueId><result>SUCCESS</result><timestamp>1785654120420</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/47/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><commitId>62688c7fe742af0eaf0396c76297482ed4c3b9b7</commitId><timestamp>1785596640000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements to reduce potential flakiness in Login and improve authentication logging.
</comment><date>2026-08-01 19:04:00 +0400</date><id>62688c7fe742af0eaf0396c76297482ed4c3b9b7</id><msg>Improvements to reduce potential flakiness in Login and improve authentication logging.</msg><path><editType>edit</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/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/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-ihttp-iostreams/build.gradle.kts</affectedPath><affectedPath>respect-lib-ihttp-core/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>52845f44836ba14427dd22dbeb7169292931effa</commitId><timestamp>1785599456000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Dependency version updates.
</comment><date>2026-08-01 19:50:56 +0400</date><id>52845f44836ba14427dd22dbeb7169292931effa</id><msg>Dependency version updates.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-ihttp-iostreams/build.gradle.kts</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>gradle/wrapper/gradle-wrapper.properties</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-ihttp-core/build.gradle.kts</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>46</buildNumber><marked><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><branch><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><branch><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</SHA1><branch><SHA1>d290141a45d04b62ac859482d07c3c209b5ee129</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#46</displayName><duration>154453</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #46</fullDisplayName><id>46</id><inProgress>false</inProgress><keepLog>false</keepLog><number>46</number><queueId>10886</queueId><result>SUCCESS</result><timestamp>1785567720420</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/46/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_student.yaml</affectedPath><affectedPath>.maestro/flows/subflows/add_person_create_account.yaml</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>7dcdde677d98a6a3b10e72d4c0a1150c2f68e93a</commitId><timestamp>1785415095000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Improve Maestro test stability
</comment><date>2026-07-30 16:38:15 +0400</date><id>7dcdde677d98a6a3b10e72d4c0a1150c2f68e93a</id><msg>Improve Maestro test stability</msg><path><editType>edit</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_student.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/add_person_create_account.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><commitId>faa61f31a71b8ee63ff42eeb83663138a65bdf35</commitId><timestamp>1785493292000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update PinPublicationPrepareUseCase to include the manifest itself and images.
</comment><date>2026-07-31 14:21:32 +0400</date><id>faa61f31a71b8ee63ff42eeb83663138a65bdf35</id><msg>Update PinPublicationPrepareUseCase to include the manifest itself and images.</msg><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/okhttp/UstadCacheInterceptor.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</affectedPath><commitId>81ec123a349ff08a6f530ab152003c911a9e9f21</commitId><timestamp>1785495341000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve logging for UstadCacheInterceptor and ConnectivityMonitorAndroid.kt
</comment><date>2026-07-31 14:55:41 +0400</date><id>81ec123a349ff08a6f530ab152003c911a9e9f21</id><msg>Improve logging for UstadCacheInterceptor and ConnectivityMonitorAndroid.kt</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><commitId>b866879743dfc1c1cc1b471ce1af3d6c40988cf7</commitId><timestamp>1785497367000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add logging on UstadCacheInterceptor even when not applying further processing.
</comment><date>2026-07-31 15:29:27 +0400</date><id>b866879743dfc1c1cc1b471ce1af3d6c40988cf7</id><msg>Add logging on UstadCacheInterceptor even when not applying further processing.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><commitId>d290141a45d04b62ac859482d07c3c209b5ee129</commitId><timestamp>1785526145000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update UstadCache to use a Channel to batch and execute database updates instead of an interval.

The interval approach led to flakey test results when the app was killed before updates were committed to the database.
</comment><date>2026-07-31 23:29:05 +0400</date><id>d290141a45d04b62ac859482d07c3c209b5ee129</id><msg>Update UstadCache to use a Channel to batch and execute database updates instead of an interval.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.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>ci-run-e2e-tests.sh</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>45</buildNumber><marked><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><branch><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><branch><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>beec082677ecfe343236c083f1545d158453e63f</SHA1><branch><SHA1>beec082677ecfe343236c083f1545d158453e63f</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#45</displayName><duration>156065</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #45</fullDisplayName><id>45</id><inProgress>false</inProgress><keepLog>false</keepLog><number>45</number><queueId>10861</queueId><result>SUCCESS</result><timestamp>1785481320420</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/45/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>97ac20242d7390216f788048a1b7854592ce390c</commitId><timestamp>1785405360000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md

Update README.md to specify using the latest stable channel version of Android Studio
</comment><date>2026-07-30 13:56:00 +0400</date><id>97ac20242d7390216f788048a1b7854592ce390c</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</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/CommonSortOptions.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.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/domain/license/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.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-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>beec082677ecfe343236c083f1545d158453e63f</commitId><timestamp>1785408254000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Dev bookmark xapi (#272)

* Add bookmark button to lesson details

* Add bookmark functionality for learning units

Key changes include:
- Updating the `OpdsDataSource` interface and its implementations (`OpdsDataSourceRepository`, `OpdsDataSourceDb`) to handle observing and setting bookmark status.
- Adding a `BookmarkEntity` and `BookmarkDao` to the database schema to persist bookmark state.
- Implementing the bookmark logic in the `LearningUnitDetailViewModel`, which now observes and updates the bookmark status.
- The bookmark button in `LearningUnitDetailScreen` now dynamically changes its icon based on whether the unit is bookmarked.

* feat: Add bookmark data layer

Introduced the data layer components required for managing publication bookmarks.

This includes:
- A `BookmarkEntity` to store bookmark status and timestamp.
- A `BookmarkDao` with functions to insert/update bookmarks, observe a single bookmark's status, and retrieve all bookmarked publications.
- An implementation in `OpdsDataSourceDb` to get a flow of bookmarked `OpdsPublication` objects.
- An update to `ReadiumLinkEntityDao` to find all links associated with a publication UID.

* feat: Implement fetching of bookmarked publications

This commit introduces the functionality to retrieve a list of all bookmarked publications from the local database.

Key changes:

-   Added `getBookmarkedPublications()` to the `OpdsDataSource` interface.
-   Implemented the new function in `OpdsDataSourceRepository` to delegate the call to the local data source.
-   In `OpdsDataSourceDb`, the implementation now fetches bookmarked publication entities from `BookmarkDao` and maps them to `OpdsPublication` models.
-   Updated the `OpdsDataSourceHttp` stub to include the new interface method.

* feat: Store title and timestamp for bookmarks

This change enhances the bookmarking functionality by storing the title of the bookmarked item and implicitly tracking when it was last updated.

Key changes include:
- Updating the `setBookmarkStatus` function across the `OpdsDataSource` interface and its implementations (`OpdsDataSourceDb`, `OpdsDataSourceRepository`, `OpdsDataSourceHttp`) to accept a `title` parameter.
- Modifying the `BookmarkDao` to no longer retrieve `OpdsPublicationEntity` objects directly. Instead, a new `observeAllBookmarks` function returns a flow of `BookmarkEntity` objects, ordered by their update timestamp.
- The `LearningUnitDetailViewModel` now passes the lesson title when setting the bookmark status.
- The `OpdsDataSourceDb` was updated to implement these DAO changes and now provides a `getAllBookmarks` function.

* Implement fetching of all bookmarks
This commit introduces the functionality to retrieve a list of all bookmarks.

* Display app name and icon on learning unit detail screen

* Store subtitle and app icon for bookmarks

* Store subtitle and app icon for bookmarks

* Improve code formatting in OpdsDataSourceDb

* Improve code formatting in OpdsDataSourceDb

* Implement bookmark list screen

* Implement bookmark list screen

* Implement bookmark list screen

* Implement bookmark list screen

* Implement bookmark list screen

* Implement bookmark list screen

* Refactor bookmarking logic to toggle status

This commit refactors the bookmarking functionality. Instead of explicitly passing a boolean to set the bookmark status, the `setBookmarkStatus` function now toggles the state. If a bookmark exists, it's removed; otherwise, a new one is created.

This change simplifies the bookmarking logic across the data layers and the view model. Additionally, the bookmark list screen now allows for the removal of bookmarks.

* Refactor bookmarking logic to toggle status

This commit refactors the bookmarking functionality. Instead of explicitly passing a boolean to set the bookmark status, the `setBookmarkStatus` function now toggles the state. If a bookmark exists, it's removed; otherwise, a new one is created.

This change simplifies the bookmarking logic across the data layers and the view model. Additionally, the bookmark list screen now allows for the removal of bookmarks.

* Delete respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json

* Refactor bookmarking logic to toggle status

This commit refactors the bookmarking functionality. Instead of explicitly passing a boolean to set the bookmark status, the `setBookmarkStatus` function now toggles the state. If a bookmark exists, it's removed; otherwise, a new one is created.

This change simplifies the bookmarking logic across the data layers and the view model. Additionally, the bookmark list screen now allows for the removal of bookmarks.

* Refactor bookmarking logic to toggle status

* Refactor: Enhance bookmark data and enable navigation

* Seperation of bookmark implementation

* Seperation of bookmark implementation

* Update bookmark data model to include learning unit URL

* Update bookmark

* Move bookmarking logic from respect app data source to school data source

* Update bookmark logic to use enum to delete

* Rename bookmark observation methods to getBookmarkStatus and getAllBookmarks

* Rename bookmark observation methods to getBookmarkStatus and getAllBookmarks

* Refactor bookmarking logic to use Bookmark model and toggle status

* Refactor bookmarking logic to use Bookmark model and toggle status

* Refactor bookmarking logic to use Bookmark model and toggle status

* Refactor bookmarking logic to use Bookmark model and toggle status

* Rename Bookmark field learningUnitUrl to learningUnitManifestUrl

This commit renames the `learningUnitUrl` property in the `Bookmark` data class to `learningUnitManifestUrl` for better clarity and consistency with other parts of the codebase.

The changes include:
- Updating the `Bookmark` model definition.
- Updating the `BookmarkAdapter` mapping logic to reflect the rename.
- Adjusting usages in `LearningUnitDetailViewModel` and `BookmarkListViewModel`.
- Updating the database access logic in `BookmarkDataSourceDb`.
- Cleaning up unused imports.

* Rename Bookmark field learningUnitUrl to learningUnitManifestUrl

* Added playlist test

* Move bookmark-related database components to the school package

* Move bookmark-related database components to the school package

* Added bookmark test

* Add user identification to bookmark database components

* Add user identification to bookmark database components

* Add user identification to bookmark database components

* Update bookmark storage logic

* Implement bookmark toggling and update database components

* Refactor bookmark data layer to use unique identifiers and timestamps

* Refactor bookmark data layer to use composite primary keys and remove UID generation logic

* Refactor bookmark data layer to use composite primary keys and remove UID generation logic

* Clean up code and refactor bookmark icon logic

* Implement bookmark data layer including HTTP, DB, and Repository components

* Update Bookmark model and data layer to support titles, subtitles, and images.

- Add `title`, `subtitle`, and `imageUrl` properties to the `Bookmark` model.
- Implement `BookmarkEntities` and `PublicationWithDetails` in the DB layer to handle relational data for bookmarks and OPDS publications.
- Update `BookmarkDao` and `BookmarkDataSourceDb` to return bookmarks with their associated publication details.
- Refactor `BookmarkListScreen` to display bookmark images and text content.
- Add navigation logic to `AppLauncherViewModel` for navigating to the bookmark list.
- Minor clean up and documentation updates in OPDS and Bookmark entities.

* Remove title, subtitle, and image fields from Bookmark model and DAO logic

* Add localized title support to bookmarks and update database relations

* Refactor LearningUnitDetailViewModel and clean up unused imports and whitespace.

* Update Bookmark model and data layer to include subtitles and improve app detail handling in LearningUnitDetailScreen.

* Remove properties

* Update BookmarkListViewModel to use LoadingUiState and clean up imports

* Update BookmarkListViewModel to use LoadingUiState and clean up imports

* Update BookmarkListViewModel to use LoadingUiState and clean up imports

* Update BookmarkListViewModel to use LoadingUiState and clean up imports

* Clean up formatting in BookmarkDao

* Clean up formatting in BookmarkAdapter.kt

* Clean up

* Clean up

* Clean up

* Clean up LearningUnitDetailViewModel constructor and improve code formatting

* Add image URL support to Bookmark model and UI components

* Add BookmarkEntity to database schema and implement navigation to bookmark list from app launcher.

* Add BookmarkEntity to database schema and implement navigation to bookmark list from app launcher.

* Add BookmarkEntity to database schema and implement navigation to bookmark list from app launcher.

* Added lesson002 and updated test

* Implement bookmark navigation and fix data synchronization in BookmarkListViewModel

* Update bookmark implementation to include application manifest URLs and app metadata.

* commented bookmark code for playlist screen

* commented bookmark code for playlist screen

* Update bookmark implementation to include application manifest URLs and app metadata.

* Update bookmark data layer, database entities, and cleanup ViewModel logic

* Rename findBookmarks to findBookmarksWithMissingPublication and update loading logic in BookmarkListViewModel

* Implement getBookmarkLastModified and findByUidList in BookmarkDao and BookmarkDataSourceDb

* Register Bookmark components in RespectSchoolDatabase and update OPDS package imports

* Register Bookmark components in RespectSchoolDatabase and update OPDS package imports

* Add language, grade, and type fields to Bookmark model and display them in BookmarkListScreen

* Update navigation labels to "Home" and integrate BookmarkListScreen into HomeScreen

- Rename "Apps" navigation label to "Home" across `App.kt`, `AppLauncherViewModel`, and `BookmarkListViewModel`.
- Update `HomeScreen` to include a new "Bookmarks" tab alongside the existing "Apps" tab.
- Refactor `BookmarkListScreen` UI: remove redundant styling boxes/borders around icons and adjust icon sizing.
- Update `strings.xml` to include new "home" and "bookmarks" resources and update the bookmark empty state message.
- Update Maestro flow test to reflect UI text changes.

* Update navigation labels to "Home" and integrate BookmarkListScreen into HomeScreen

* Add NO_BOOKMARK to RespectImage and update EmptyBookmarkState UI in BookmarkListScreen

* Add NO_BOOKMARK to RespectImage and update EmptyBookmarkState UI in BookmarkListScreen

* Add NO_BOOKMARK to RespectImage and update EmptyBookmarkState UI in BookmarkListScreen

* Add NO_BOOKMARK to RespectImage and update EmptyBookmarkState UI in BookmarkListScreen

* Update UI layout and styling in BookmarkListScreen.kt

* Update UI layout and styling in BookmarkListScreen.kt

* Move no_bookmark image to shared resources and update BookmarkListScreen usage

* Implement `listAsFlow` in `BookmarkDataSource` and update `BookmarkListViewModel` to reactive flow

Instead Of using Paging Source I am using List as Flow because-App loading per item getting messy with paging

* Implement paging support for BookmarkDataSource across DB, HTTP, and Repository layers

* Remove redundant comments in BookmarkListViewModel

* Introduce `BookmarkDetails` to associate bookmarks with their corresponding application data and refactor `BookmarkListViewModel` to load these details concurrently.

* Update Maestro flows

* test - update Maestro flow for lesson browsing

* Update Maestro test flows

*   **002_browse_lessons_test.yaml**: Updated the "Bookmark" tap index from 1 to 0 and commented out several assertion and undo steps.

* Update Maestro test flows

* Update Maestro test flows

* Update BookmarkDataSource and related components to support includeDeleted parameter and fix BookmarkDao query

* Update SnackBar implementation to support actions and implement undo functionality for bookmark removal

*   Modify `App.kt` to handle `SnackbarResult` and trigger the snackbar's `onAction` callback.
*   Update `BookmarkListViewModel` to use `SnackBarDispatcher` and provide an "Undo" action when removing a bookmark.
*   Add `remove_bookmark` and `undo` string resources.

* Implement `UiText.asString()` extension and update `Snack` to support `UiText` actions

* Use default snackbar duration in App.kt

* test is failing as Snack bar appears but due to duration by the time tapOn Undo is triggered it disappears

* test: Update browse lessons Maestro flow with additional assertions

* test: update browse lessons Maestro flow

* Updated `002_browse_lessons_test.yaml` Maestro flow

* test: update Maestro browse lessons flow

* test is failing as Snack bar appears but due to duration by the time tapOn Undo is triggered it disappears

* Format code and apply style improvements across bookmark and data layer components

* Update icon URI handling in Bookmark and LearningUnit detail screens and resolve publication URLs in ViewModels

* Update snackbar message handling to support StringUiText and StringResourceUiText in App.kt

* Update snackbar message handling to support StringUiText and StringResourceUiText in App.kt

* Update bookmark query field and remote sync logic.

* Refactor data loading state and clean up bookmark-related logic.

- Move `DataLoadState`, `DataLoadParams`, and related extensions from `world.respect.datalayer` to `world.respect.lib.dataloadstate`.
- Remove `UiText.asString()` extension in favor of explicit `when` branches in the `App` composable.
- Remove `AssignmentDataSource` and related references across the data layer and server routes.
- Replace `getTitle()` with `langMapString()` for title resolution in `BookmarkListScreen` and `LearningUnitDetailScreen`.
- Fix parameter mapping in `LearningUnitDetailViewModel` to use `learningUnitManifestUrl` and update bookmark storage logic.
- Clean up unused imports and duplicate string resources.

* Add `gradle-daemon-jvm.properties` to specify Java 21 for the Gradle daemon.

* Add `gradle-daemon-jvm.properties` to specify Java 21 for the Gradle daemon.

* Add `gradle-daemon-jvm.properties` to specify Java 21 for the Gradle daemon.

* removed bookmark data source

* Refactor bookmark management to use xapi statements instead of a dedicated `BookmarkDataSource`.

- Remove `BookmarkDataSourceRepository` and its associated server-side route.
- Update `LearningUnitDetailViewModel` to fetch and store bookmark status using `xapiResource.statements` with the `ID_BOOKMARKED` verb.
- Update `BookmarkListViewModel` and `BookmarkListScreen` to display and manage bookmarks based on xapi statements and linked `OpdsPublication` data.
- Add `ID_BOOKMARKED` constant to `XapiVerb`.
- Update Maestro UI tests to reflect changes in sample data names and bookmark behavior.

* Sort bookmark statements by timestamp in `BookmarkListViewModel` and remove unused imports and test steps.

* Remove redundant newline in `002_browse_lessons_test.yaml`.

* Update Maestro flow assertions to use "Home" instead of "Apps".

* Update Maestro flow assertions to use "Home" instead of "Apps".

* Reorganize Maestro YAML files between flows and test directories.

* Update lesson visibility assertion in `002_browse_lessons_test.yaml`.

* Add `BookmarkEntity` table to `RespectSchoolDatabase` schema and move Maestro test files to the `flows` directory.

* Update school self-registration test and remove unused admin subflow.

* Update school self-registration test and remove unused admin subflow.

* Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable.

* Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable.

* Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable.

* Add database schema files for versions 1 through 8 of `RespectAppDatabase`.

* Add database schema files for versions 1 through 8 of `RespectAppDatabase`.

* Refine code formatting and whitespace.

* Refine code formatting and whitespace.

* Refine imports in `SchoolDataSourceDb.kt` and remove trailing whitespace in `OpdsPublicationEntityAdapter.kt`.

* Remove extraneous blank lines from documentation comments in `OpdsPublicationEntity.kt`.

* Introduce `AddBookmarkUseCase` and `RemoveBookmarkUseCase` to centralize bookmarking logic and refactor view models to use these use cases.

- Deleted legacy `Bookmark` model from `datalayer`.
- Added `AddBookmarkUseCase` and `RemoveBookmarkUseCase` in `respect-lib-shared`.
- Refactored `LearningUnitDetailViewModel` and `BookmarkListViewModel` to use the new use cases and improve error handling via snackbars.
- Updated `AppKoinModule.kt` to provide the new use cases within the account scope.
- Refined UI styles and string resources in `BookmarkListScreen`, `LearningUnitDetailScreen`, and `strings.xml`.
- Fixed typo from `accountMananger` to `accountManager` in `LearningUnitDetailViewModel`.

* Remove unused `FontWeight` import in `LearningUnitDetailScreen`.

* Include `appManifestUrl` in `LearningUnitDetail` route and xAPI bookmark statements.

- Update `LearningUnitDetail` route to include and persist `appManifestUrl`.
- Pass `appManifestUrl` through `AddBookmarkUseCase` and store it within the xAPI statement's `context.contextActivities.parent` field.
- Update `LearningUnitDetailViewModel` to fetch application data using `appManifestUrl` from the route.
- Enhance `BookmarkListViewModel` to extract `appManifestUrl` from bookmark statements when navigating to unit details.
- Simplify UI in `LearningUnitDetailScreen` by removing the subtitle from the supporting content row.

* Refactor `BookmarkListScreen` to use `PublicationListItem` and add `trailingContent` support to `PublicationListItem`.

* Remove `grade1` test case data, including `lesson002` HTML, JSON, and media assets.

* Replace duplicated getString code with new getUiTextString function

* Move PublicationListItem into its own file

* Update `.maestro/flows/002_browse_lessons_test.yaml` to include a test flow for downloading a lesson and verifying its functionality in offline mode.

* Refactor bookmark handling to utilize new XAPI constants and improve context management

* Refactor AddBookmarkUseCase and LearningUnitDetailViewModel to remove appManifestUrl handling

* Refactor AddBookmarkUseCase and LearningUnitDetailViewModel to remove appManifestUrl handling

* Enhance AddBookmarkUseCase to include title in bookmark xAPI statement

* Refactor BookmarkListViewModel and LearningUnitDetailViewModel to remove appManifestUrl handling and improve bookmark state management

* Add sorting functionality to BookmarkListViewModel and UI for bookmarks

* Add sorting functionality to BookmarkListViewModel and UI for bookmarks

* Refactor LearningUnitDetailScreen to use Column layout for improved UI structure and add app icon

* Add error handling and user feedback for bookmark operations

* Add test tags to top navigation items for improved UI testing

* Update `.maestro/flows/002_browse_lessons_test.yaml` to use element IDs instead of text-based indexing for navigating to the home screen and asserting home visibility.

* Update Maestro test flows to use resource IDs for home navigation visibility assertions.

* Update `admin_add_app.yaml` to use the resource ID `nav_home` for the home navigation tap action instead of the "Home" text label.

* Tidyup of bookmark saving to/from xAPI.

* Update `.maestro/flows/002_browse_lessons_test.yaml` to refine the navigation flow. Replace the back button action with specific navigation to the home screen and "Apps" section to access the "Statement Maker" feature.

* Refactored
The screen now:
Extracts the activityId
Passes it as Url(activityId)to uiState.taskInfoFlow()
Collects the returned flow
Renders the PublicationListItem

* Minor tidyup on homescreen.kt

* Add bookmark button back to learning unit detail screen.

* Bookmark cleanup

1) Use remember on bookmarklistscreen when collecting flow
2) bookmarklistviewmodel to filter current active user.

* Fix 002_001 browse lessons test flow.

* Tidyup bookmarks

1) Learning detail screen updated to use a shared flow to avoid unnecessarily reloading app detail
2) Use separate buttons enabled setting for bookmark button on learning unit detail to avoid potential end to end test flakiness: it is a separate load/API call.

* Resolve OpdsPublication in BookmarkListViewModel to ensure icon will display as expected if it is a relative href.

* Update demo app test to reflect navigation changes from "Apps" to "Home"

* Correct license link on DemoLaunchableAppManifestRoute.kt

* Update demo app test to use navigation ID for "Home"

* Replace tapOn home with using test tag

* Add additional logging to WebViewActivity and lesson launch to attempt to diagnose learning unit not opening flakey results on Maestro testing.

* Add more logging on xapi_statement_maker.js .

* Revert database JSON schema change: BookmarkEntity was not added when using xapi so no change.

---------

Co-authored-by: pooja &lt;pooja@ustadmobile.com&gt;
Co-authored-by: Mike Dawson &lt;mike@ustadmobile.com&gt;
</comment><date>2026-07-30 14:44:14 +0400</date><id>beec082677ecfe343236c083f1545d158453e63f</id><msg>Dev bookmark xapi (#272)</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-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/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.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-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CommonSortOptions.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-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</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>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.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>.maestro/flows/002_001_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app.yaml</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-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.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>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json</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/domain/license/GetLicenseLabelUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.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/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_002_browse_demo_app_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>44</buildNumber><marked><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><branch><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><branch><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</SHA1><branch><SHA1>21bf77a143458be553aea314cb2be726fb7bec2f</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#44</displayName><duration>115549</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #44</fullDisplayName><id>44</id><inProgress>false</inProgress><keepLog>false</keepLog><number>44</number><queueId>10834</queueId><result>SUCCESS</result><timestamp>1785394920421</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/44/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_user_send_feedback_test.yaml</affectedPath><commitId>21bf77a143458be553aea314cb2be726fb7bec2f</commitId><timestamp>1785320719000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix feedback maestro flow
 Remove unnecessary user creation and login not related to the scope of this test.
</comment><date>2026-07-29 14:25:19 +0400</date><id>21bf77a143458be553aea314cb2be726fb7bec2f</id><msg>Fix feedback maestro flow</msg><path><editType>edit</editType><file>.maestro/flows/006_user_send_feedback_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>43</buildNumber><marked><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><branch><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><branch><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>12d17c84759230028533dd23ce037c6328ae8692</SHA1><branch><SHA1>12d17c84759230028533dd23ce037c6328ae8692</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#43</displayName><duration>155253</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #43</fullDisplayName><id>43</id><inProgress>false</inProgress><keepLog>false</keepLog><number>43</number><queueId>10800</queueId><result>SUCCESS</result><timestamp>1785308520665</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/43/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><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/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.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><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>8cd1739ed559e2e42563d131b695b1da4d57837b</commitId><timestamp>1768996473000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>-Created SharedFeedback Screen and its viewmodel (added in app route, appNavHost, app koin)
-in AccountList have added a text with trailing icon "Share feedback)" and on click of it navigation to share feed back
-In Share feedback screen added section on Quick Contact (as text) the using List Item to define 3 options of whatsapp, email and public forum)
added on click methods to it (not functional yet )
</comment><date>2026-01-21 17:24:33 +0530</date><id>8cd1739ed559e2e42563d131b695b1da4d57837b</id><msg>-Created SharedFeedback Screen and its viewmodel (added in app route, appNavHost, app koin)</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/manageuser/sharefeedback/ShareFeedbackScreen.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/manageuser/accountlist/AccountListViewModel.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-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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>9b5200c1c64f65a9c944127bd3f885b2bfffc33f</commitId><timestamp>1769011246000</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 redundant content descriptions
</comment><date>2026-01-21 21:30:46 +0530</date><id>9b5200c1c64f65a9c944127bd3f885b2bfffc33f</id><msg>Refactor: Remove redundant content descriptions</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncher.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-14.0.log</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-01-14.0.log</affectedPath><commitId>98949c9108a009648bdfcdf0dc4e8fdb19fd1538</commitId><timestamp>1769063995000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Added functionality to open whatsapp to a default number and also when click on public forum opening respect website

Once I get the Whatsapp support number will change that and also will replace the web support link once provided
</comment><date>2026-01-22 12:09:55 +0530</date><id>98949c9108a009648bdfcdf0dc4e8fdb19fd1538</id><msg>Added functionality to open whatsapp to a default number and also when click on public forum opening respect website</msg><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/log/respect-server.2026-01-14.0.log</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/log/respect-server.2026-01-14.0.log</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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>e47c0aaa7481f27ce8331d8ca10b44fb083be7c5</commitId><timestamp>1769070937000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>merged main
</comment><date>2026-01-22 14:05:37 +0530</date><id>e47c0aaa7481f27ce8331d8ca10b44fb083be7c5</id><msg>merged main</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>704dedde542a471542ef6b154ba770c8056c8928</commitId><timestamp>1769161032000</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 feedback form to Share Feedback screen

This commit introduces a detailed feedback form on the "Share Feedback" screen, allowing users to submit structured feedback.

Key changes include:
- A dropdown menu for selecting a feedback category.
- A multi-line text field for users to describe their feedback in detail.
- A checkbox for users to request a response from the team.
- A "Submit" button to send the feedback.
- Updated string resources for the new UI elements.
- Renamed "WhatsApp/Email Support" to "WhatsApp/Email Respect".
- Upgraded Gradle version from 8.13 to 9.1.0 and updated related dependencies.
</comment><date>2026-01-23 15:07:12 +0530</date><id>704dedde542a471542ef6b154ba770c8056c8928</id><msg>feat: Add feedback form to Share Feedback screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>gradle/wrapper/gradle-wrapper.properties</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>d4ca86c10492cb109c510c9cb98bbf3ca82464d1</commitId><timestamp>1769163289000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Adds optional phone number and email fields to the "Share Feedback" screen. These fields are displayed only when the user agrees to be contacted by checking a box. The phone number input utilizes the `RespectPhoneNumberTextField` component.
</comment><date>2026-01-23 15:44:49 +0530</date><id>d4ca86c10492cb109c510c9cb98bbf3ca82464d1</id><msg>Adds optional phone number and email fields to the "Share Feedback" screen. These fields are displayed only when the user agrees to be contacted by checking a box. The phone number input utilizes the `RespectPhoneNumberTextField` component.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>d2ad80ef88ed51fb88c6efab1ed0e493ef84de86</commitId><timestamp>1769165149000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Introduced an `EmailLauncher` to enable users to send feedback via email.
- Created a common `EmailLauncher` interface.
- Added an Android-specific implementation (`EmailLauncherAndroid`) that opens an email client with a pre-filled recipient and subject.
</comment><date>2026-01-23 16:15:49 +0530</date><id>d2ad80ef88ed51fb88c6efab1ed0e493ef84de86</id><msg>Introduced an `EmailLauncher` to enable users to send feedback via email.</msg><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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>209d5d17e8fbba1ae8254a0cc63eaa87f9dd3e7e</commitId><timestamp>1769190673000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Implemented Zammad ticket creation for feedback

- Added `FeedBackDataSource` interface and its HTTP implementation to create feedback tickets via the Zammad API.
- Implemented a repository for the feedback data source.
- Defined `FeedbackTicket` and ` data models for the ticket.
- Integrated the ticket creation logic into `ShareFeedbackViewModel`'s `onClickSubmit` function for testing purposes.
</comment><date>2026-01-23 23:21:13 +0530</date><id>209d5d17e8fbba1ae8254a0cc63eaa87f9dd3e7e</id><msg>Implemented Zammad ticket creation for feedback</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>a6d22afea62ab81feffaa73dc64902dc471cd682</commitId><timestamp>1769190744000</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 accountManager

Removes the unused `accountManager` field from the `ShareFeedbackViewModel` constructor.
</comment><date>2026-01-23 23:22:24 +0530</date><id>a6d22afea62ab81feffaa73dc64902dc471cd682</id><msg>Refactor: remove unused accountManager</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>ff6e74cdb0ef0568cf22fb53bd4e733d88442fad</commitId><timestamp>1769445344000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>creating list of category from string.xml
</comment><date>2026-01-26 22:05:44 +0530</date><id>ff6e74cdb0ef0568cf22fb53bd4e733d88442fad</id><msg>creating list of category from string.xml</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>78eb1098a7bd589e5f1f03ef8151c21b401bac06</commitId><timestamp>1769446978000</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 feedback submission functionality

This commit wires up the ShareFeedback screen to enable users to submit feedback.

Key changes:
- Implemented `onPhoneChanged` and `onEmailChanged` to update the UI state.
- Connected the "Submit" button to create and send a `FeedbackTicket`.
- The ticket now correctly uses the user-provided email, selected category, and feedback text.
- Standardized the email subject line using a string resource.
</comment><date>2026-01-26 22:32:58 +0530</date><id>78eb1098a7bd589e5f1f03ef8151c21b401bac06</id><msg>feat: Implement feedback submission functionality</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>00f944b82cc7799a057a65be32fe5d4dc1723c58</commitId><timestamp>1769488351000</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 feedback ticket submission

This commit introduces the functionality to create and submit a feedback ticket.

Changes include:
- Adding the necessary Koin dependency injection for `FeedbackDataSource`.
- Correcting the Zammad authentication token format.
- Updating the `ShareFeedbackViewModel` to construct and submit the `FeedbackTicket`.
- Modifying the `FeedbackDataSourceHttp` to remove the response body handling.
</comment><date>2026-01-27 10:02:31 +0530</date><id>00f944b82cc7799a057a65be32fe5d4dc1723c58</id><msg>feat: Implement feedback ticket submission</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>bc4cb731b6210e8f5b2dd172c60f382cb50678f1</commitId><timestamp>1769492342000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactored share feedback view model

- Extracted hardcoded strings to constants.
- Added a `ticketTitle` variable to `ShareFeedbackViewModel`.
- The `ticketTitle` is now passed as the subject when sending an email.
- Updated the `guess` string resource to include a colon.
</comment><date>2026-01-27 11:09:02 +0530</date><id>bc4cb731b6210e8f5b2dd172c60f382cb50678f1</id><msg>Refactored share feedback view model</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.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><commitId>889350a0ca1ed4e28b906610ddcd4799ecb4d6c7</commitId><timestamp>1769493693000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refact: Move feedback data source to school data source

The `FeedBackDataSource` is now accessed through the `SchoolDataSource` interface.

Changes include:
- Adding `feedBackDataSource` to the `SchoolDataSource` interface.
- Implementing `feedBackDataSource` in `SchoolDataSourceHttp`, `SchoolDataSourceRepository`, and `SchoolDataSourceDb` (with a TODO).
- Updating `ShareFeedbackViewModel` to use `schoolDataSource.feedBackDataSource`.
- Removing the now-redundant `FeedbackDataSource` Koin definitions.
</comment><date>2026-01-27 11:31:33 +0530</date><id>889350a0ca1ed4e28b906610ddcd4799ecb4d6c7</id><msg>Refact: Move feedback data source to school data source</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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>58d45b3e973aa06d1cd1b50b8bfe14d5dff88185</commitId><timestamp>1769495167000</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: Renamed `ticketTitle` to `subject` for clarity.

The `ticketTitle` variable in `ShareFeedbackViewModel` has been renamed to `subject` to better reflect its purpose.

In `EmailLauncherAndroid`, the logic for building the mailto URI has been updated to use string interpolation and `toUri()` for a more concise implementation.
</comment><date>2026-01-27 11:56:07 +0530</date><id>58d45b3e973aa06d1cd1b50b8bfe14d5dff88185</id><msg>Refactor: Renamed `ticketTitle` to `subject` for clarity.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</affectedPath><commitId>70aa6344ea518a1f4d14d29f02c2744c2188043c</commitId><timestamp>1769507693000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`.
</comment><date>2026-01-27 15:24:53 +0530</date><id>70aa6344ea518a1f4d14d29f02c2744c2188043c</id><msg>Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>2b8e20c1f9ff2442f20abf39818b9f086e6b4cc3</commitId><timestamp>1769508238000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`.
</comment><date>2026-01-27 15:33:58 +0530</date><id>2b8e20c1f9ff2442f20abf39818b9f086e6b4cc3</id><msg>Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>df262cc009526fe23c50664fd222e495b6ce0f95</commitId><timestamp>1769513507000</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 validation to share feedback screen

- Implement required field validation for the feedback description.
- Add validation to ensure either a phone number or email is provided when a response is requested.
- Display error messages on the respective fields.
- Refactor `feedbackText` to `feedbackDescription` for clarity.
</comment><date>2026-01-27 17:01:47 +0530</date><id>df262cc009526fe23c50664fd222e495b6ce0f95</id><msg>feat: Add validation to share feedback screen</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/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>e775f4b827b76a76c029d5deaa73d9d0a048285b</commitId><timestamp>1769573786000</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
</comment><date>2026-01-28 09:46:26 +0530</date><id>e775f4b827b76a76c029d5deaa73d9d0a048285b</id><msg>Refactor</msg><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/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>b37421b295042e61a653b9699a6eb26ff5e07984</commitId><timestamp>1769574739000</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
</comment><date>2026-01-28 10:02:19 +0530</date><id>b37421b295042e61a653b9699a6eb26ff5e07984</id><msg>Refactor</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/manageuser/accountlist/AccountListScreen.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/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>b97060ae591ccac9216e387e1abdae58504200a2</commitId><timestamp>1769579614000</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: Removed email from contact validation on feedback form.
</comment><date>2026-01-28 11:23:34 +0530</date><id>b97060ae591ccac9216e387e1abdae58504200a2</id><msg>feat: Removed email from contact validation on feedback form.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>3170d46d2bb22994e42648e6dea0607b0e079a46</commitId><timestamp>1769579680000</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: Removed email from contact validation on feedback form.
</comment><date>2026-01-28 11:24:40 +0530</date><id>3170d46d2bb22994e42648e6dea0607b0e079a46</id><msg>feat: Removed email from contact validation on feedback form.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>b9f6f0d89ce01e99c6d32d7eda68e59575c8d4ae</commitId><timestamp>1769580768000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Fix: Share feedback contact validation

Corrected the validation logic for the phone number field on the share feedback screen. The error will now be correctly triggered if the "contact me" checkbox is selected and the phone number field is left blank.
</comment><date>2026-01-28 11:42:48 +0530</date><id>b9f6f0d89ce01e99c6d32d7eda68e59575c8d4ae</id><msg>Fix: Share feedback contact validation</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>3bc1b77d4a8ac89585b74833e40873657cb46120</commitId><timestamp>1769581119000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 11:48:39 +0530</date><id>3bc1b77d4a8ac89585b74833e40873657cb46120</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>668e871940c87a96077d588d535822742a712982</commitId><timestamp>1769581351000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 11:52:31 +0530</date><id>668e871940c87a96077d588d535822742a712982</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><commitId>20989f794deb131a87be9c2ebdb5730c6c05bac3</commitId><timestamp>1769584121000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 12:38:41 +0530</date><id>20989f794deb131a87be9c2ebdb5730c6c05bac3</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>58faa6168ea37cb58bb9754c4d8d9376493f847c</commitId><timestamp>1769585134000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>The contact validation error message, which applies to both phone and email fields, has been moved from the phone number field to the email field to ensure it's always visible. Additionally, the validation logic is updated to require at least one contact method (phone or email) when the feedback checkbox is selected, and a new string resource for this validation message has been added.
</comment><date>2026-01-28 12:55:34 +0530</date><id>58faa6168ea37cb58bb9754c4d8d9376493f847c</id><msg>The contact validation error message, which applies to both phone and email fields, has been moved from the phone number field to the email field to ensure it's always visible. Additionally, the validation logic is updated to require at least one contact method (phone or email) when the feedback checkbox is selected, and a new string resource for this validation message has been added.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.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/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>4d8b3ea5b05b5a04ac72a864fc722ee782cf85b2</commitId><timestamp>1769593172000</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: Separate contact field validation on feedback form

The shared `contactError` state has been replaced with individual `phoneNumberError` and `emailError` states for the phone and email fields on the share feedback screen.

This change introduces specific validation logic for each field:
*   If the "contact me" checkbox is selected, an error is now displayed under the email field, requiring at least one contact method.
*   Individual validation for incorrect phone number and email formats has been added, displaying "Invalid" or "Invalid email" respectively.
*   The error message for requiring at least one contact method has been updated for clarity.
</comment><date>2026-01-28 15:09:32 +0530</date><id>4d8b3ea5b05b5a04ac72a864fc722ee782cf85b2</id><msg>Refactor: Separate contact field validation on feedback form</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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/manageuser/sharefeedback/ShareFeedbackViewModel.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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.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/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>c1517a73866c94cc252eada8bc1db51492116dde</commitId><timestamp>1769595267000</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 feedback submitted screen

Introduced a confirmation screen that appears after a user successfully submits feedback. This involves creating the `FeedbackSubmittedScreen` and its corresponding `FeedbackSubmittedViewModel`.

Upon successful ticket creation, the app now navigates to this new screen. Additionally, the phone number is no longer appended to the feedback ticket's article type.
</comment><date>2026-01-28 15:44:27 +0530</date><id>c1517a73866c94cc252eada8bc1db51492116dde</id><msg>feat: Add feedback submitted screen</msg><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/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>c9b29b3995e18cfc591d3aa4713222d8b9a5f03a</commitId><timestamp>1769595603000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 15:50:03 +0530</date><id>c9b29b3995e18cfc591d3aa4713222d8b9a5f03a</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>2f1e0ec71b0e50c59cb1f9c2af727b2b2235c173</commitId><timestamp>1769595619000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 15:50:19 +0530</date><id>2f1e0ec71b0e50c59cb1f9c2af727b2b2235c173</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>e0d6c7f3e669335a88532177a3017f67b1176cc0</commitId><timestamp>1769595651000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 15:50:51 +0530</date><id>e0d6c7f3e669335a88532177a3017f67b1176cc0</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>409d446aec3f2a1707e242231d34771dcce86953</commitId><timestamp>1769605638000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 18:37:18 +0530</date><id>409d446aec3f2a1707e242231d34771dcce86953</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.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/SchoolDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>c09dc8cd4b4ec4271c4d5420c3357fb08e4ef992</commitId><timestamp>1769605642000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Appends the user's phone number to the body of the feedback ticket being created.
</comment><date>2026-01-28 18:37:22 +0530</date><id>c09dc8cd4b4ec4271c4d5420c3357fb08e4ef992</id><msg>Appends the user's phone number to the body of the feedback ticket being created.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml</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-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/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.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/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>784c88546941121f6433fe6083af9d0c40e30659</commitId><timestamp>1769607456000</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: Display submission error on feedback form

Introduces an error message on the "Share Feedback" screen that is displayed to the user if the feedback submission fails. This is implemented by adding an `errorMessage` state to the `ShareFeedbackViewModel` and a corresponding `Text` component in the UI to show the message. Additionally, a new string resource for the error has been created.
</comment><date>2026-01-28 19:07:36 +0530</date><id>784c88546941121f6433fe6083af9d0c40e30659</id><msg>feat: Display submission error on feedback form</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>765037d6d5a5a721c6a9462fdda3029053f7e64f</commitId><timestamp>1769609128000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added end-to-end test
</comment><date>2026-01-28 18:05:28 +0400</date><id>765037d6d5a5a721c6a9462fdda3029053f7e64f</id><msg>added end-to-end test</msg><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>659d0082b864fa67567d217a0c2555129f02e389</commitId><timestamp>1769614249000</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: Cleared share feedback screen from backstack

After successfully submitting feedback, the navigation logic is updated to clear the `ShareFeedback` screen from the back stack. This prevents the user from navigating back to the form they just submitted. Additionally, padding was added to the image on the `FeedbackSubmittedScreen`.
</comment><date>2026-01-28 21:00:49 +0530</date><id>659d0082b864fa67567d217a0c2555129f02e389</id><msg>feat: Cleared share feedback screen from backstack</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>d3625e0f8b038a9937ee33ef7f92c34c93f13db1</commitId><timestamp>1769616111000</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
</comment><date>2026-01-28 21:31:51 +0530</date><id>d3625e0f8b038a9937ee33ef7f92c34c93f13db1</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>2828513646853240f8871234560cb1c7b51a6bb7</commitId><timestamp>1769665993000</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 contact validation error on feedback form
</comment><date>2026-01-29 11:23:13 +0530</date><id>2828513646853240f8871234560cb1c7b51a6bb7</id><msg>Refactor contact validation error on feedback form</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-01-14.0.log</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>7ff74f04134b5fd2478c3e5cc7e3646e6d628d46</commitId><timestamp>1769674384000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment> Update Gradle and remove log files
</comment><date>2026-01-29 13:43:04 +0530</date><id>7ff74f04134b5fd2478c3e5cc7e3646e6d628d46</id><msg>Update Gradle and remove log files</msg><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>delete</editType><file>respect-datalayer-repository/log/respect-server.2026-01-14.0.log</file></path><path><editType>edit</editType><file>gradle/wrapper/gradle-wrapper.properties</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/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>b2537e62509dfa2cedcb0b938e04431a70b8f72e</commitId><timestamp>1769677857000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Configuration loading for Zammad credentials has been updated in `build.gradle.kts`, now sourcing the token and URL from a `zammad.properties` file or environment variables.
</comment><date>2026-01-29 14:40:57 +0530</date><id>b2537e62509dfa2cedcb0b938e04431a70b8f72e</id><msg>Configuration loading for Zammad credentials has been updated in `build.gradle.kts`, now sourcing the token and URL from a `zammad.properties` file or environment variables.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/add_person_create_account.yaml</affectedPath><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_user_login_flow.yaml</affectedPath><commitId>915ab3c24000630e1706b5a0a8b4af87e68e0e59</commitId><timestamp>1769679989000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added validations
</comment><date>2026-01-29 13:46:29 +0400</date><id>915ab3c24000630e1706b5a0a8b4af87e68e0e59</id><msg>added validations</msg><path><editType>add</editType><file>.maestro/flows/subflows/school_user_login_flow.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/add_person_create_account.yaml</file></path><path><editType>add</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.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><commitId>76cd48a5efd336dc8c549ff95dde093f553d7dcc</commitId><timestamp>1769704111000</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 FeedbackDataSource into SchoolDataSource

Extracted the `FeedBackDataSource` into the `SchoolDataSource` interface and its various implementations (`Http`, `Db`, `Repository`). This refactoring centralizes data source access.

Key changes include:
- Passing Zammad URL and token configurations from the `AppKoinModule` to `SchoolDataSourceHttp`.
- Updating `ShareFeedbackViewModel` to obtain the `feedBackDataSource` via the main `SchoolDataSource`.
- Removing the hardcoded Zammad URL from `FeedbackDataSourceHttp` and using the configured one instead.
- Hiding the bottom navigation on the "Share Feedback" screen.
</comment><date>2026-01-29 21:58:31 +0530</date><id>76cd48a5efd336dc8c549ff95dde093f553d7dcc</id><msg>refactor: Integrate FeedbackDataSource into SchoolDataSource</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/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>aeea06f22157081cdd4b39d9b45681bc3482b0f4</commitId><timestamp>1769705189000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Handle feedback submission errors and hide navigation

- Checks the HTTP response status after attempting to create a feedback ticket.
- Displays a generic error message to the user if the ticket submission fails.
- On the feedback submission confirmation screen, the bottom navigation is now hidden.
- The `createTicket` function in the data source and view model now returns an `HttpResponse` to enable status checking.
</comment><date>2026-01-29 22:16:29 +0530</date><id>aeea06f22157081cdd4b39d9b45681bc3482b0f4</id><msg>Handle feedback submission errors and hide navigation</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncher.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</affectedPath><commitId>741ff12b56f782bf6fa602ae19402ce5b24b026d</commitId><timestamp>1769706105000</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: Append "UseCase" to launcher class names

Renamed the `EmailLauncher`, `WebLauncher`, and `WhatsAppLauncher` classes and their corresponding Android implementations to `EmailLauncherUseCase`, `WebLauncherUseCase`, and `WhatsAppLauncherUseCase` respectively. This change makes their purpose as use cases clearer and aligns them with the project's naming conventions.

The `ShareFeedbackViewModel` and the Koin dependency injection module have been updated to reflect these new class names.
</comment><date>2026-01-29 22:31:45 +0530</date><id>741ff12b56f782bf6fa602ae19402ce5b24b026d</id><msg>Refactor: Append "UseCase" to launcher class names</msg><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncher.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-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>f4de51a39e15ee38525f4984521f1ff869953108</commitId><timestamp>1769711106000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Removes the `FeedBackDataSource`, its HTTP implementation, and repository, along with their integration into the existing data source layers. The responsibility for feedback ticket creation has been moved from the data layer to the `ShareFeedbackViewModel`.

Additionally, Zammad API credentials (URL and token) are now configured through `buildConfigField` in the `respect-lib-shared` module, removing the previous hardcoded values and `respect-app-compose` build configurations.
</comment><date>2026-01-29 23:55:06 +0530</date><id>f4de51a39e15ee38525f4984521f1ff869953108</id><msg>Removes the `FeedBackDataSource`, its HTTP implementation, and repository, along with their integration into the existing data source layers. The responsibility for feedback ticket creation has been moved from the data layer to the `ShareFeedbackViewModel`.</msg><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>d40c7cc0b87c46fff6d4993e6bd088461452db09</commitId><timestamp>1769712553000</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: Refactored feedback property names for clarity and consistency.

Renamed Zammad and Respect contact properties to use a `FEEDBACK_` prefix, improving clarity about their purpose. This change affects build configuration files (`build.gradle.kts`) by renaming build config fields and the property files from which they are loaded (e.g., `zammad.properties` to `feedback.properties`).

Specifically, the following properties were renamed:
- `ZAMMAD_URL` to `FEEDBACK_ZAMMADURL`
- `ZAMMAD_TOKEN` to `FEEDBACK_ZAMMADTOKEN`

Additionally, new properties for Respect's contact details were introduced with the same naming convention:
- `FEEDBACK_RESPECTPHONENUMBER`
- `FEEDBACK_RESPECTEMAILID`
</comment><date>2026-01-30 00:19:13 +0530</date><id>d40c7cc0b87c46fff6d4993e6bd088461452db09</id><msg>feat: Refactored feedback property names for clarity and consistency.</msg><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><commitId>6d249989f5de189a7a2a9efda5faa9581d947a09</commitId><timestamp>1769754663000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update build.gradle.kts
</comment><date>2026-01-30 12:01:03 +0530</date><id>6d249989f5de189a7a2a9efda5faa9581d947a09</id><msg>Update build.gradle.kts</msg><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>6114a11cce90d520c07570b8502128178db91c0d</commitId><timestamp>1769754866000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update AppKoinModule.kt
</comment><date>2026-01-30 12:04:26 +0530</date><id>6114a11cce90d520c07570b8502128178db91c0d</id><msg>Update AppKoinModule.kt</msg><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/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.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/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>a3eef313e4a16ce1ae3718a622c9691e3c799ecf</commitId><timestamp>1769766902000</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: Integrate Zammad for feedback submission and refactor configuration

Integrated the feedback submission feature with the Zammad ticketing system. When a user submits feedback, a ticket is now created in Zammad, and the resulting ticket ID is passed to the confirmation screen.

Key changes include:
- A new `CreateTicketUseCase` is introduced to handle the API call to Zammad.
- The `ShareFeedbackViewModel` now uses this use case to create a ticket and navigates to a success screen with the new ticket ID.
- Configuration properties for Zammad (URL, token) and contact details (phone, email) have been moved from the `respect-app-compose` module to the `respect-lib-shared` module. This centralizes feedback-related settings.
- The `EmailLauncherUseCase` and `WhatsAppLauncherUseCase` were updated to use the newly centralized contact information.
</comment><date>2026-01-30 15:25:02 +0530</date><id>a3eef313e4a16ce1ae3718a622c9691e3c799ecf</id><msg>feat: Integrate Zammad for feedback submission and refactor configuration</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.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/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>ebdf205e7743ca2e21c120d1984761739dd04ca5</commitId><timestamp>1769771208000</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: Display Zammad ticket ID on feedback submission screen

Adds the Zammad ticket ID to the "Feedback Submitted" screen, making it visible to the user for reference. This ID is displayed in a new `Text` element and tagged for testing purposes.
</comment><date>2026-01-30 16:36:48 +0530</date><id>ebdf205e7743ca2e21c120d1984761739dd04ca5</id><msg>feat: Display Zammad ticket ID on feedback submission screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>a2cb2fbb73001a7b5f887356164076ff6e989a18</commitId><timestamp>1769773017000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>removed feedback changes from 003
</comment><date>2026-01-30 15:36:57 +0400</date><id>a2cb2fbb73001a7b5f887356164076ff6e989a18</id><msg>removed feedback changes from 003</msg><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>5849e1aed1e8698fa63ba334ee223d849ef5301b</commitId><timestamp>1769774917000</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: Hide Zammad ticket ID on feedback submission screen

The Zammad ticket ID displayed on the feedback submitted screen is now hidden from the user by setting its color to transparent. This change is implemented for UI testing purposes while keeping the element accessible to test automation frameworks via its `testTag`.
</comment><date>2026-01-30 17:38:37 +0530</date><id>5849e1aed1e8698fa63ba334ee223d849ef5301b</id><msg>feat: Hide Zammad ticket ID on feedback submission screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><commitId>86f6745273eb22e1251f02daf1e266c0c5736737</commitId><timestamp>1769776840000</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 redundant quotes in error message string
</comment><date>2026-01-30 18:10:40 +0530</date><id>86f6745273eb22e1251f02daf1e266c0c5736737</id><msg>Refactor: Remove redundant quotes in error message string</msg><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/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>8caa1048eab1633dd01cd31c8a8f104fcad63093</commitId><timestamp>1769777869000</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: Clear error message on submit

Clears the previous error message when the user clicks the submit button again.
</comment><date>2026-01-30 18:27:49 +0530</date><id>8caa1048eab1633dd01cd31c8a8f104fcad63093</id><msg>Refactor: Clear error message on submit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><commitId>d0e2d7ec240fc7f1951cee7210d7150525be5ae9</commitId><timestamp>1769781347000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>removed feedback changes from 003
</comment><date>2026-01-30 17:55:47 +0400</date><id>d0e2d7ec240fc7f1951cee7210d7150525be5ae9</id><msg>removed feedback changes from 003</msg><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><commitId>29fbd62eb54bba1d39d538910c8f8c50a9b0c97c</commitId><timestamp>1769781800000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>removed
</comment><date>2026-01-30 18:03:20 +0400</date><id>29fbd62eb54bba1d39d538910c8f8c50a9b0c97c</id><msg>removed</msg><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><commitId>0f9f5b501a3a25ccdfa9febd0272e1f5201c195e</commitId><timestamp>1769784011000</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: Update feedback response string
</comment><date>2026-01-30 20:10:11 +0530</date><id>0f9f5b501a3a25ccdfa9febd0272e1f5201c195e</id><msg>feat: Update feedback response string</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_admin_login_flow.yaml</affectedPath><commitId>754411a3fcb3d999a188224f65df0e41e8e66ba9</commitId><timestamp>1769784936000</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>2026-01-30 18:55:36 +0400</date><id>754411a3fcb3d999a188224f65df0e41e8e66ba9</id><msg>updated</msg><path><editType>edit</editType><file>.maestro/flows/subflows/school_admin_login_flow.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-14.0.log</affectedPath><commitId>354e0b785a540e804b184351474377766fe21e51</commitId><timestamp>1769788996000</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: Removed unused log file and import.
.
</comment><date>2026-01-30 21:33:16 +0530</date><id>354e0b785a540e804b184351474377766fe21e51</id><msg>refactor: Removed unused log file and import.</msg><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/log/respect-server.2026-01-14.0.log</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><commitId>e22305478068d670d68822d4c6e8d375bab70cdf</commitId><timestamp>1769843403000</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: Update feedback form strings for clarity
</comment><date>2026-01-31 12:40:03 +0530</date><id>e22305478068d670d68822d4c6e8d375bab70cdf</id><msg>feat: Update feedback form strings for clarity</msg><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/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><commitId>e855eabd17ca05860f6b5ff2cf2b67b2ceeb56d3</commitId><timestamp>1769844451000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Hide the user account icon on the "Share Feedback" and "Feedback Submitted" screens.
</comment><date>2026-01-31 12:57:31 +0530</date><id>e855eabd17ca05860f6b5ff2cf2b67b2ceeb56d3</id><msg>Hide the user account icon on the "Share Feedback" and "Feedback Submitted" screens.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>9084cca9336ae8ee8f51955f8fcd5d6ead04cfb3</commitId><timestamp>1769867489000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated API call
</comment><date>2026-01-31 17:51:29 +0400</date><id>9084cca9336ae8ee8f51955f8fcd5d6ead04cfb3</id><msg>updated API call</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><commitId>b1b03b57aedeb7d35ddd5ad90270beedacc0eb9b</commitId><timestamp>1769877996000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated API call
</comment><date>2026-01-31 20:46:36 +0400</date><id>b1b03b57aedeb7d35ddd5ad90270beedacc0eb9b</id><msg>updated API call</msg><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>317d4704bd268cec82ce1c8b7f8e7c267ab0b36e</commitId><timestamp>1769878627000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated maestro.sh
</comment><date>2026-01-31 20:57:07 +0400</date><id>317d4704bd268cec82ce1c8b7f8e7c267ab0b36e</id><msg>updated maestro.sh</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><commitId>349b70c30db7eedf9f969ca33e2e06c9a0efde71</commitId><timestamp>1769880034000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated 004 test
</comment><date>2026-01-31 21:20:34 +0400</date><id>349b70c30db7eedf9f969ca33e2e06c9a0efde71</id><msg>updated 004 test</msg><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>4a93ed2c98d5bd33258c90cc65f387b920e055ff</commitId><timestamp>1769962973000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen`

Additionally, Android-specific logging (`android.util.Log`) has been replaced with a common `print` statement in the `EmailLauncherUseCaseAndroid`, `WebLauncherUseCaseAndroid`, and `WhatsAppLauncherUseCaseAndroid` files.
</comment><date>2026-02-01 21:52:53 +0530</date><id>4a93ed2c98d5bd33258c90cc65f387b920e055ff</id><msg>The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen`</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><commitId>855e013ba71c3822d5f76bb199e8fb24d378aad2</commitId><timestamp>1769963036000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen`
</comment><date>2026-02-01 21:53:56 +0530</date><id>855e013ba71c3822d5f76bb199e8fb24d378aad2</id><msg>The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen`</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</affectedPath><commitId>403b774ff4f1b9cc79f18870da6719f0549820bf</commitId><timestamp>1769964674000</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: Cleaned up feedback submission code
</comment><date>2026-02-01 22:21:14 +0530</date><id>403b774ff4f1b9cc79f18870da6719f0549820bf</id><msg>Refactor: Cleaned up feedback submission code</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.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/domain/feedback/FeedbackTicket.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>bdb14a81f1c90639d7515747ac671926e0b2055f</commitId><timestamp>1770011640000</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: Cleaned up feedback submission code
</comment><date>2026-02-02 11:24:00 +0530</date><id>bdb14a81f1c90639d7515747ac671926e0b2055f</id><msg>Refactor: Cleaned up feedback submission code</msg><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/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>f8040ad5fb40a4f4708663b95c23300d73f5bf13</commitId><timestamp>1770019216000</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 Share Feedback screen code structure and accessibility

`FeedbackCategory` enum is simplified
 The `FeedbackItem` composable has been renamed to `QuickContactItem` for better clarity, as it represents quick contact methods.
</comment><date>2026-02-02 13:30:16 +0530</date><id>f8040ad5fb40a4f4708663b95c23300d73f5bf13</id><msg>refactor: Improve Share Feedback screen code structure and accessibility</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>5891a0f12ff1049d67065ec87b6e98f10e8262bf</commitId><timestamp>1770025661000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated properties file path
</comment><date>2026-02-02 13:47:41 +0400</date><id>5891a0f12ff1049d67065ec87b6e98f10e8262bf</id><msg>updated properties file path</msg><path><editType>edit</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>7655ee448f1f9f2445f2080b1adc20f3a84d51e6</commitId><timestamp>1770026876000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated properties file path
</comment><date>2026-02-02 14:07:56 +0400</date><id>7655ee448f1f9f2445f2080b1adc20f3a84d51e6</id><msg>updated properties file path</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>d13a8050ff36cbb93c2827a982baaa00fc74399a</commitId><timestamp>1770027265000</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>2026-02-02 14:14:25 +0400</date><id>d13a8050ff36cbb93c2827a982baaa00fc74399a</id><msg>updated</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>9986ef65b07678a6bc7c8d62432759ce8df4e30e</commitId><timestamp>1770027709000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated maestro.sh file
</comment><date>2026-02-02 14:21:49 +0400</date><id>9986ef65b07678a6bc7c8d62432759ce8df4e30e</id><msg>updated maestro.sh file</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/log/respect-server.2026-02-01.0.log</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-29.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-30.0.log</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-01-30.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-02-01.0.log</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>c7493171df92798b9878f58d42464ae7e5a2d273</commitId><timestamp>1770030819000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>chore: Add server logs to gitignore.
</comment><date>2026-02-02 16:43:39 +0530</date><id>c7493171df92798b9878f58d42464ae7e5a2d273</id><msg>chore: Add server logs to gitignore.</msg><path><editType>add</editType><file>respect-datalayer-repository/log/respect-server.2026-02-01.0.log</file></path><path><editType>add</editType><file>respect-lib-shared/log/respect-server.2026-01-29.0.log</file></path><path><editType>add</editType><file>respect-lib-shared/log/respect-server.2026-01-30.0.log</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/log/respect-server.2026-02-01.0.log</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-repository/log/respect-server.2026-01-30.0.log</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/log/respect-server.2026-01-29.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-01-30.0.log</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-02-01.0.log</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-01-30.0.log</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-02-01.0.log</affectedPath><commitId>e7192fbf75581cea38dd37065654ef5bd82ce622</commitId><timestamp>1770031029000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>chore: Add server logs to gitignore.
</comment><date>2026-02-02 16:47:09 +0530</date><id>e7192fbf75581cea38dd37065654ef5bd82ce622</id><msg>chore: Add server logs to gitignore.</msg><path><editType>delete</editType><file>respect-lib-shared/log/respect-server.2026-01-29.0.log</file></path><path><editType>delete</editType><file>respect-lib-shared/log/respect-server.2026-01-30.0.log</file></path><path><editType>delete</editType><file>respect-datalayer-repository/log/respect-server.2026-01-30.0.log</file></path><path><editType>delete</editType><file>respect-datalayer-repository/log/respect-server.2026-02-01.0.log</file></path><path><editType>delete</editType><file>respect-lib-shared/log/respect-server.2026-02-01.0.log</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/add_person_create_account.yaml</affectedPath><commitId>237f0ba51ef6e1a0f3275dc1abcaeef6dc90a7f3</commitId><timestamp>1770036570000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated maestro.sh file
</comment><date>2026-02-02 16:49:30 +0400</date><id>237f0ba51ef6e1a0f3275dc1abcaeef6dc90a7f3</id><msg>updated maestro.sh file</msg><path><editType>edit</editType><file>.maestro/flows/subflows/add_person_create_account.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>b7c056400c60b78afd3f8111d33c8f10c84d74c4</commitId><timestamp>1770038470000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated case
</comment><date>2026-02-02 17:21:10 +0400</date><id>b7c056400c60b78afd3f8111d33c8f10c84d74c4</id><msg>updated case</msg><path><editType>edit</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>49bab904229b75089fb7ba2029521e69d56453b7</commitId><timestamp>1770039051000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated url
</comment><date>2026-02-02 17:30:51 +0400</date><id>49bab904229b75089fb7ba2029521e69d56453b7</id><msg>updated url</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>7a9ee1538b38f910f1f12bb88efd5d77d422bce8</commitId><timestamp>1770040889000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test cleanup
</comment><date>2026-02-02 18:01:29 +0400</date><id>7a9ee1538b38f910f1f12bb88efd5d77d422bce8</id><msg>test cleanup</msg><path><editType>edit</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</affectedPath><commitId>d1818a9b0c5d5383004aa9d621e6a8caef66583c</commitId><timestamp>1770098488000</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: Consolidate email launching logic into LaunchSendEmailUseCase.

Removed the specific `EmailLauncherUseCase` and its Android implementation. The existing `LaunchSendEmailUseCase` has been updated to handle all email launching scenarios by making the `body` and `emailId` parameters optional.

This change consolidates redundant code, allowing a single use case to manage sending emails with or without a pre-filled recipient and body. ViewModels have been updated to use the unified `LaunchSendEmailUseCase`.
</comment><date>2026-02-03 11:31:28 +0530</date><id>d1818a9b0c5d5383004aa9d621e6a8caef66583c</id><msg>Refactor: Consolidate email launching logic into LaunchSendEmailUseCase.</msg><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/launchers/EmailLauncherUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><commitId>d7b438efa496d1f9d5fa09b2990f9230a302fb0f</commitId><timestamp>1770287058000</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: using material theme
</comment><date>2026-02-05 15:54:18 +0530</date><id>d7b438efa496d1f9d5fa09b2990f9230a302fb0f</id><msg>feat: using material theme</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</affectedPath><affectedPath>respect-test-end-to-end/README.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/006_002_user_send_feedback_test.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</affectedPath><affectedPath>.maestro/flows/006_002_user_send_feedback_test.yaml</affectedPath><commitId>6982b9b5345b93fedb75a913eb056a49e72b7674</commitId><timestamp>1771503783000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test - updated test description
</comment><date>2026-02-19 16:23:03 +0400</date><id>6982b9b5345b93fedb75a913eb056a49e72b7674</id><msg>test - updated test description</msg><path><editType>delete</editType><file>.maestro/flows/004_user_send_feedback_test.yaml</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/006_user_signup_using_passkey_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md</file></path><path><editType>add</editType><file>.maestro/flows/006_002_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><commitId>5e2515742c9f53c22a77484606cb7ca95d007c24</commitId><timestamp>1771580037000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update FeedbackCategory.kt
</comment><date>2026-02-20 15:03:57 +0530</date><id>5e2515742c9f53c22a77484606cb7ca95d007c24</id><msg>Update FeedbackCategory.kt</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><commitId>5a8fb4d83be8d2a2f8489cc4ee19ba23d734562c</commitId><timestamp>1783676454000</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
</comment><date>2026-07-10 15:10:54 +0530</date><id>5a8fb4d83be8d2a2f8489cc4ee19ba23d734562c</id><msg>Remove</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.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/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.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/manageuser/sharefeedback/ShareFeedbackViewModel.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><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</affectedPath><commitId>a796d8ab55a5df5b0b225da8deb01be7bb163893</commitId><timestamp>1783922760000</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 Zammad
</comment><date>2026-07-13 11:36:00 +0530</date><id>a796d8ab55a5df5b0b225da8deb01be7bb163893</id><msg>Remove Zammad</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.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/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.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>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>97509c492864da4662d4bcb64fbbfcda0f020c63</commitId><timestamp>1783923200000</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 Zammad
</comment><date>2026-07-13 11:43:20 +0530</date><id>97509c492864da4662d4bcb64fbbfcda0f020c63</id><msg>Remove Zammad</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.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/build.gradle.kts</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><commitId>d98711800f348fc1690513759541a36a2d61d2bc</commitId><timestamp>1783923904000</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 Zammad
</comment><date>2026-07-13 11:55:04 +0530</date><id>d98711800f348fc1690513759541a36a2d61d2bc</id><msg>Remove Zammad</msg><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/build.gradle.kts</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</affectedPath><commitId>f6c964bebe10d61d6cace43d6cd910a817782def</commitId><timestamp>1783924225000</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
</comment><date>2026-07-13 12:00:25 +0530</date><id>f6c964bebe10d61d6cace43d6cd910a817782def</id><msg>Refactor</msg><path><editType>delete</editType><file>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</affectedPath><commitId>8c8cb741855106360e06c809a3885755c81afb79</commitId><timestamp>1783924589000</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
</comment><date>2026-07-13 12:06:29 +0530</date><id>8c8cb741855106360e06c809a3885755c81afb79</id><msg>Refactor</msg><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_user_send_feedback_test.yaml</affectedPath><affectedPath>.maestro/flows/006_002_user_send_feedback_test.yaml</affectedPath><commitId>6920dea79eaff2307747eea0ce0b31e678185d0f</commitId><timestamp>1784019126000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove `006_002_user_send_feedback_test.yaml` and replace it with a refactored `006_user_send_feedback_test.yaml` Maestro flow.
</comment><date>2026-07-14 12:52:06 +0400</date><id>6920dea79eaff2307747eea0ce0b31e678185d0f</id><msg>Remove `006_002_user_send_feedback_test.yaml` and replace it with a refactored `006_user_send_feedback_test.yaml` Maestro flow.</msg><path><editType>add</editType><file>.maestro/flows/006_user_send_feedback_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/006_002_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_user_send_feedback_test.yaml</affectedPath><commitId>cfb9502d3e896693ceb9725973b27d9dd4924249</commitId><timestamp>1784020140000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the `006_user_send_feedback_test.yaml` Maestro flow to change the visibility assertion from "UstadMobile/Respect" to "Welcome to discussions!" following the "Public forum" tap action.
</comment><date>2026-07-14 13:09:00 +0400</date><id>cfb9502d3e896693ceb9725973b27d9dd4924249</id><msg>Update the `006_user_send_feedback_test.yaml` Maestro flow to change the visibility assertion from "UstadMobile/Respect" to "Welcome to discussions!" following the "Public forum" tap action.</msg><path><editType>edit</editType><file>.maestro/flows/006_user_send_feedback_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>7cb902c86e60d47fcaa495751b9661df266087f6</commitId><timestamp>1784027938000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`.
</comment><date>2026-07-14 15:18:58 +0400</date><id>7cb902c86e60d47fcaa495751b9661df266087f6</id><msg>changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path><path><editType>edit</editType><file>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>42c3990eae1df7450415bbe343a3b47a2fe86601</commitId><timestamp>1784030533000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Summarize the changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`.
</comment><date>2026-07-14 16:02:13 +0400</date><id>42c3990eae1df7450415bbe343a3b47a2fe86601</id><msg>Summarize the changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`.</msg><path><editType>edit</editType><file>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</file></path><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/scripts/verifyZammadTicket.js</affectedPath><commitId>470a8f86048bebaea6ad37e332a2643882fb3706</commitId><timestamp>1784030708000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Delete `.maestro/flows/scripts/verifyZammadTicket.js` and its associated logic for validating Zammad environment variables and verifying support ticket creation via the API.
</comment><date>2026-07-14 16:05:08 +0400</date><id>470a8f86048bebaea6ad37e332a2643882fb3706</id><msg>Delete `.maestro/flows/scripts/verifyZammadTicket.js` and its associated logic for validating Zammad environment variables and verifying support ticket creation via the API.</msg><path><editType>delete</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</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-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</affectedPath><commitId>d037651d1f686fda144c3a6195f9aaeda576ceb7</commitId><timestamp>1784626851000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update learning unit detail screen initial commit
</comment><date>2026-07-21 15:10:51 +0530</date><id>d037651d1f686fda144c3a6195f9aaeda576ceb7</id><msg>update learning unit detail screen initial commit</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.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-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.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/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><commitId>93c593d02a95c94c261a59acb5c91fa96636226f</commitId><timestamp>1784627342000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Add highlight card functionality and related links in AppsDetailScreen
</comment><date>2026-07-21 15:19:02 +0530</date><id>93c593d02a95c94c261a59acb5c91fa96636226f</id><msg>Add highlight card functionality and related links in AppsDetailScreen</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>5a8fdb010ad03680c4f6559a5f0fb090c310e2cd</commitId><timestamp>1785068189000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor adjustments to learning unit detail screen.
</comment><date>2026-07-26 16:16:29 +0400</date><id>5a8fdb010ad03680c4f6559a5f0fb090c310e2cd</id><msg>Minor adjustments to learning unit detail screen.</msg><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-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>f44a7ef464c4114d0da4cbd16d20c3c8b760c027</commitId><timestamp>1785070113000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>ADd demo app route.
</comment><date>2026-07-26 16:48:33 +0400</date><id>f44a7ef464c4114d0da4cbd16d20c3c8b760c027</id><msg>ADd demo app route.</msg><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.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-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.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-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/app_icon.png</affectedPath><commitId>59c3c6039b76e19c269ac371cd5c519b09bd851d</commitId><timestamp>1785073901000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Set icon on demo app
</comment><date>2026-07-26 17:51:41 +0400</date><id>59c3c6039b76e19c269ac371cd5c519b09bd851d</id><msg>Set icon on demo app</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/app_icon.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</affectedPath><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/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>5f3bd1a2f30109d8c34ff7f45df3bd4f1d320627</commitId><timestamp>1785075828000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add demo launchable app to respect-server.
</comment><date>2026-07-26 18:23:48 +0400</date><id>5f3bd1a2f30109d8c34ff7f45df3bd4f1d320627</id><msg>Add demo launchable app to respect-server.</msg><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-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.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/apps/detail/AppsDetailViewModel.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-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</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><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/raw/license_label_json</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</affectedPath><commitId>58255a68b86a0a9275cf71b7a69c3014e4d3fcc7</commitId><timestamp>1785130290000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Added Highlight card, Google play nad license label functionality and update AppsDetailScreen
</comment><date>2026-07-27 11:01:30 +0530</date><id>58255a68b86a0a9275cf71b7a69c3014e4d3fcc7</id><msg>Added Highlight card, Google play nad license label functionality and update AppsDetailScreen</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.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/apps/detail/AppsDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</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/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/res/raw/license_label_json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.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-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/credits.txt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/grade.jpg</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/books.png</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>6a2cbabf73b261ee3a265a50f5f97eb773fee32e</commitId><timestamp>1785132247000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add icons for collections in demo app.
</comment><date>2026-07-27 10:04:07 +0400</date><id>6a2cbabf73b261ee3a265a50f5f97eb773fee32e</id><msg>Add icons for collections in demo app.</msg><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/credits.txt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/books.png</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/grade.jpg</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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>8a30a972b9513ccf12065e76d6f6cc345a79d2ef</commitId><timestamp>1785133145000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Added Highlight card, Google play nad license label functionality and update AppsDetailScreen
</comment><date>2026-07-27 11:49:05 +0530</date><id>8a30a972b9513ccf12065e76d6f6cc345a79d2ef</id><msg>Added Highlight card, Google play nad license label functionality and update AppsDetailScreen</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-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXml.kt</affectedPath><commitId>08f251ef76f44a7050f44c4828105ebf5ab90d60</commitId><timestamp>1785136862000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Pre-modularization.
</comment><date>2026-07-27 11:21:02 +0400</date><id>08f251ef76f44a7050f44c4828105ebf5ab90d60</id><msg>Pre-modularization.</msg><path><editType>add</editType><file>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlTest.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXml.kt</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/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</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-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</affectedPath><commitId>80699b573cad23b3d2139277402fb7cefa570c51</commitId><timestamp>1785136894000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update lesson detail screen with license and subject tag
</comment><date>2026-07-27 12:51:34 +0530</date><id>80699b573cad23b3d2139277402fb7cefa570c51</id><msg>update lesson detail screen with license and subject tag</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png</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-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</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/detail/AppsDetailScreen.kt</affectedPath><commitId>8db3c8bd46886e0b937ff8e037aac2589aa6bf16</commitId><timestamp>1785138118000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Update license label in AppsDetailScreen and modify string resource for clarity
</comment><date>2026-07-27 13:11:58 +0530</date><id>8db3c8bd46886e0b937ff8e037aac2589aa6bf16</id><msg>Update license label in AppsDetailScreen and modify string resource for clarity</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/detail/AppsDetailScreen.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-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>a81d67535308ffd0a3f0627b307d332459d58e9c</commitId><timestamp>1785141561000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>merge dev-learning-unit branch to update-learning-unit-detail-screen to use getLicenseLabelUseCase
</comment><date>2026-07-27 14:09:21 +0530</date><id>a81d67535308ffd0a3f0627b307d332459d58e9c</id><msg>merge dev-learning-unit branch to update-learning-unit-detail-screen to use getLicenseLabelUseCase</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.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-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.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/apps/detail/AppsDetailScreen.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/learningunit/detail/LearningUnitDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><commitId>054b9391ccac065cb466b3e4139475f85571e303</commitId><timestamp>1785142645000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2026-07-27 14:27:25 +0530</date><id>054b9391ccac065cb466b3e4139475f85571e303</id><msg>refactor</msg><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/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><commitId>ac3317c8908ac07a72c25812c0e20d7d9748f145</commitId><timestamp>1785149507000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Enhance AppsDetailScreen with app description and update license button text for clarity
</comment><date>2026-07-27 16:21:47 +0530</date><id>ac3317c8908ac07a72c25812c0e20d7d9748f145</id><msg>Enhance AppsDetailScreen with app description and update license button text for clarity</msg><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-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</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-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/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>b896f8fc02e435f8b036a8d750a90ed9e7725a67</commitId><timestamp>1785149808000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Refactor LearningUnitDetail Screen
</comment><date>2026-07-27 16:26:48 +0530</date><id>b896f8fc02e435f8b036a8d750a90ed9e7725a67</id><msg>Refactor LearningUnitDetail Screen</msg><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/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-test-resources/build.gradle.kts</affectedPath><affectedPath>respect-lib-primarykeygen/build.gradle.kts</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt</affectedPath><affectedPath>respect-lib-ihttp-core/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-http/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-client/build.gradle.kts</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-lib-dataloadstate/build.gradle.kts</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xxhash/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-ihttp-iostreams/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-credentials/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-lib-serializers/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/proguard-rules.pro</affectedPath><affectedPath>app-android/proguard-rules.pro</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/RespectImageSelectButton.android.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/RespectApp.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</affectedPath><affectedPath>respect-lib-test/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-lib-ihttp-nanohttpd/build.gradle.kts</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AbstractAppActivity.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppActivity.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-repository/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>respect-lib-shared-se/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/build.gradle.kts</affectedPath><commitId>934467558254bcb1d49d234badef303bc70c02da</commitId><timestamp>1785161561000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update to AGP9 and Kotlin 2.4.10
</comment><date>2026-07-27 18:12:41 +0400</date><id>934467558254bcb1d49d234badef303bc70c02da</id><msg>Update to AGP9 and Kotlin 2.4.10</msg><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-test/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-ihttp-okhttp/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xxhash/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>gradle/wrapper/gradle-wrapper.properties</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.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-lib-test-resources/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-credentials/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/proguard-rules.pro</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-datalayer-http/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-repository/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-ihttp-nanohttpd/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/RespectImageSelectButton.android.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-ihttp-iostreams/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</file></path><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-primarykeygen/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-ihttp-core/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared-se/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/proguard-rules.pro</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/AbstractAppActivity.kt</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.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/resources/http/respect-ds/case_valid/default-catalog.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</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>269eaa043a99bfd64bcd9d19e936f93c45e459f1</commitId><timestamp>1785217886000</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 AppsDetailScreen and ViewModel for improved clarity and functionality; update app titles and string resources
</comment><date>2026-07-28 11:21:26 +0530</date><id>269eaa043a99bfd64bcd9d19e936f93c45e459f1</id><msg>Refactor AppsDetailScreen and ViewModel for improved clarity and functionality; update app titles and string resources</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/detail/AppsDetailScreen.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-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><commitId>c5014adca1b80bcb5264408dae036543de7a908a</commitId><timestamp>1785223636000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Rename `002_browse_lessons_test.yaml` to `002_001_browse_lessons_test.yaml` and add a new Maestro test flow `002_002_browse_demo_app_test.yaml` to verify the "Demo Launchable App" functionality, including metadata verification and lesson navigation.
</comment><date>2026-07-28 11:27:16 +0400</date><id>c5014adca1b80bcb5264408dae036543de7a908a</id><msg>Rename `002_browse_lessons_test.yaml` to `002_001_browse_lessons_test.yaml` and add a new Maestro test flow `002_002_browse_demo_app_test.yaml` to verify the "Demo Launchable App" functionality, including metadata verification and lesson navigation.</msg><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_002_browse_demo_app_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.gitignore</affectedPath><commitId>5cd915bfed64510e1b7314bdcca1ce950719d11c</commitId><timestamp>1785223688000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `.gitignore` to ignore the `.maestro/flows/.maestro/screenshots` directory.
</comment><date>2026-07-28 11:28:08 +0400</date><id>5cd915bfed64510e1b7314bdcca1ce950719d11c</id><msg>Update `.gitignore` to ignore the `.maestro/flows/.maestro/screenshots` directory.</msg><path><editType>edit</editType><file>.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><commitId>50f42284321439808b17dea37136d8db2cf9510d</commitId><timestamp>1785224026000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update e2e testing script and doc to use new APK location.
</comment><date>2026-07-28 11:33:46 +0400</date><id>50f42284321439808b17dea37136d8db2cf9510d</id><msg>Update e2e testing script and doc to use new APK location.</msg><path><editType>edit</editType><file>ci-run-e2e-tests.sh</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>73d45e9fa1c3d68e110c9417186f87388b6dccff</commitId><timestamp>1785225773000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove "app name" visible assertion.
</comment><date>2026-07-28 12:02:53 +0400</date><id>73d45e9fa1c3d68e110c9417186f87388b6dccff</id><msg>Remove "app name" visible assertion.</msg><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</affectedPath><commitId>bae250ea65979db20bce91ae0981f856c07809cc</commitId><timestamp>1785226373000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>refactor
</comment><date>2026-07-28 13:42:53 +0530</date><id>bae250ea65979db20bce91ae0981f856c07809cc</id><msg>refactor</msg><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-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</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>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><commitId>859748e11a1c61957ff5daa2826771389481af33</commitId><timestamp>1785227913000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update assertion and tap action text from "Add App" to "Add to school apps" in `002_001_browse_lessons_test.yaml`.
</comment><date>2026-07-28 12:38:33 +0400</date><id>859748e11a1c61957ff5daa2826771389481af33</id><msg>Update assertion and tap action text from "Add App" to "Add to school apps" in `002_001_browse_lessons_test.yaml`.</msg><path><editType>edit</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><commitId>b9f9d9f99dac5ab75741a02b4161b476fded5ae0</commitId><timestamp>1785228192000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `admin_add_app.yaml` subflow to tap on "Add to school apps" instead of "Add App".
</comment><date>2026-07-28 12:43:12 +0400</date><id>b9f9d9f99dac5ab75741a02b4161b476fded5ae0</id><msg>Update `admin_add_app.yaml` subflow to tap on "Add to school apps" instead of "Add App".</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app.yaml</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/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><commitId>85a95a045a8e4bd43c432322afb8aa38cf7ae3a1</commitId><timestamp>1785235590000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Merge app and learning unit detail updates.
</comment><date>2026-07-28 14:46:30 +0400</date><id>85a95a045a8e4bd43c432322afb8aa38cf7ae3a1</id><msg>Merge app and learning unit detail updates.</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.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-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/learningunit/detail/LearningUnitDetailScreen.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>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</affectedPath><commitId>616a6725b58b1d329e9b43fa2aa1a01c5bbfd745</commitId><timestamp>1785239747000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup share feedback.
</comment><date>2026-07-28 15:55:47 +0400</date><id>616a6725b58b1d329e9b43fa2aa1a01c5bbfd745</id><msg>Tidyup share feedback.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</affectedPath><commitId>6b99719b19c906fb87b5ead61368c4658c3f76a7</commitId><timestamp>1785240511000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix 002-002 browse to remove extra space that causes maestro test to fail. Remove assertion that relies on content of an external site.
</comment><date>2026-07-28 16:08:31 +0400</date><id>6b99719b19c906fb87b5ead61368c4658c3f76a7</id><msg>Fix 002-002 browse to remove extra space that causes maestro test to fail. Remove assertion that relies on content of an external site.</msg><path><editType>edit</editType><file>.maestro/flows/002_002_browse_demo_app_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</affectedPath><commitId>b28e900ed5810fdbb8b8b668f53e3a68d16090df</commitId><timestamp>1785242715000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix 002_002 remove incorrect assert visible and fix expected license info.
</comment><date>2026-07-28 16:45:15 +0400</date><id>b28e900ed5810fdbb8b8b668f53e3a68d16090df</id><msg>Fix 002_002 remove incorrect assert visible and fix expected license info.</msg><path><editType>edit</editType><file>.maestro/flows/002_002_browse_demo_app_test.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>42</buildNumber><marked><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#42</displayName><duration>195240</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #42</fullDisplayName><id>42</id><inProgress>false</inProgress><keepLog>false</keepLog><number>42</number><queueId>10760</queueId><result>SUCCESS</result><timestamp>1785222120665</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/42/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>41</buildNumber><marked><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#41</displayName><duration>196462</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #41</fullDisplayName><id>41</id><inProgress>false</inProgress><keepLog>false</keepLog><number>41</number><queueId>10733</queueId><result>SUCCESS</result><timestamp>1785135720610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/41/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>40</buildNumber><marked><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#40</displayName><duration>197497</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #40</fullDisplayName><id>40</id><inProgress>false</inProgress><keepLog>false</keepLog><number>40</number><queueId>10715</queueId><result>SUCCESS</result><timestamp>1785049320610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/40/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>39</buildNumber><marked><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</SHA1><branch><SHA1>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#39</displayName><duration>197685</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #39</fullDisplayName><id>39</id><inProgress>false</inProgress><keepLog>false</keepLog><number>39</number><queueId>10697</queueId><result>SUCCESS</result><timestamp>1784962920610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/39/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</affectedPath><commitId>d66af6b934f7177119ba8b2260bd8e9b86d91e9a</commitId><timestamp>1784882764000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add RespectDataLoadHost component.
</comment><date>2026-07-24 12:46:04 +0400</date><id>d66af6b934f7177119ba8b2260bd8e9b86d91e9a</id><msg>Add RespectDataLoadHost component.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.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/RespectDataLoadHost.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><commitId>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</commitId><timestamp>1784885405000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update RespectDataLoadHost and DataLoadExtension functions to handle not found scenarios.
</comment><date>2026-07-24 13:30:05 +0400</date><id>60f52d7a12e3f8c3d2207c4a94df1d2bbb82f774</id><msg>Update RespectDataLoadHost and DataLoadExtension functions to handle not found scenarios.</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/components/RespectDataLoadHost.kt</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>38</buildNumber><marked><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><branch><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><branch><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</SHA1><branch><SHA1>cfa763b7279331cec84673a3423ca713203e7cb6</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#38</displayName><duration>199187</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #38</fullDisplayName><id>38</id><inProgress>false</inProgress><keepLog>false</keepLog><number>38</number><queueId>10679</queueId><result>SUCCESS</result><timestamp>1784876520610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/38/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>7b2d6625eaaed04d55771f949cffdf73f592e76e</commitId><timestamp>1784031006000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Improve the robustness and reliability of the Maestro video downloader script and Cypress extraction logic.
</comment><date>2026-07-14 16:10:06 +0400</date><id>7b2d6625eaaed04d55771f949cffdf73f592e76e</id><msg>Improve the robustness and reliability of the Maestro video downloader script and Cypress extraction logic.</msg><path><editType>edit</editType><file>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</file></path><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>596c98835491f4252e7ad3cbc9ccd873c60c567e</commitId><timestamp>1784031285000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add `test` tag to Maestro flows and update `ci-run-maestro.sh` to exclude them from CI runs.
</comment><date>2026-07-14 16:14:45 +0400</date><id>596c98835491f4252e7ad3cbc9ccd873c60c567e</id><msg>Add `test` tag to Maestro flows and update `ci-run-maestro.sh` to exclude them from CI runs.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress.config.js</affectedPath><commitId>7ccafc8cfee40fe841b8760e130bb3c1318ca100</commitId><timestamp>1784033008000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add a logging task to the Cypress configuration for the video downloader.
</comment><date>2026-07-14 16:43:28 +0400</date><id>7ccafc8cfee40fe841b8760e130bb3c1318ca100</id><msg>Add a logging task to the Cypress configuration for the video downloader.</msg><path><editType>edit</editType><file>.maestro/video-downloader/cypress.config.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>93c8ccec19e6ce6b015e2b7088bf01ff96a83083</commitId><timestamp>1784034484000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove `test` tags from Maestro flows and update CI script to include all tests.
</comment><date>2026-07-14 17:08:04 +0400</date><id>93c8ccec19e6ce6b015e2b7088bf01ff96a83083</id><msg>Remove `test` tags from Maestro flows and update CI script to include all tests.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/package.json</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>21c5a8affaeab4ae284f0253444697195d601497</commitId><timestamp>1784102409000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `cypress` version to 15.18.1 and clean up comments in the CI script.
</comment><date>2026-07-15 12:00:09 +0400</date><id>21c5a8affaeab4ae284f0253444697195d601497</id><msg>Update `cypress` version to 15.18.1 and clean up comments in the CI script.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path><path><editType>edit</editType><file>.maestro/video-downloader/package.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>5c35c4497aca0b829f2abcc18552777b96228bbd</commitId><timestamp>1784119814000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add debug logging for Node.js, npm, and environment path in `ci-run-cypress.sh`.
</comment><date>2026-07-15 16:50:14 +0400</date><id>5c35c4497aca0b829f2abcc18552777b96228bbd</id><msg>Add debug logging for Node.js, npm, and environment path in `ci-run-cypress.sh`.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>4b9bc829eb844efb49c096ea75a5cbbb80184a4d</commitId><timestamp>1784136523000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `ci-run-cypress.sh` to use Node.js version 20.20.2 via NVM.
</comment><date>2026-07-15 21:28:43 +0400</date><id>4b9bc829eb844efb49c096ea75a5cbbb80184a4d</id><msg>Update `ci-run-cypress.sh` to use Node.js version 20.20.2 via NVM.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>70fa0fa6824295bc4c8dc8b53987c08a1c1ca927</commitId><timestamp>1784138448000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove Node version management commands from the Cypress CI script.
</comment><date>2026-07-15 22:00:48 +0400</date><id>70fa0fa6824295bc4c8dc8b53987c08a1c1ca927</id><msg>Remove Node version management commands from the Cypress CI script.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>da4c1bf3617c55aa899f59ba53cde274f2d2b18f</commitId><timestamp>1784183145000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Configure Node.js version 20.20.2 using NVM in the Cypress CI script.
</comment><date>2026-07-16 10:25:45 +0400</date><id>da4c1bf3617c55aa899f59ba53cde274f2d2b18f</id><msg>Configure Node.js version 20.20.2 using NVM in the Cypress CI script.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><commitId>4f9b5317048ff593436053170658a531554bd0f4</commitId><timestamp>1784202446000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `extract-maestro-video-urls.cy.js` to include a pause during OTP polling and improve code comments.
</comment><date>2026-07-16 15:47:26 +0400</date><id>4f9b5317048ff593436053170658a531554bd0f4</id><msg>Update `extract-maestro-video-urls.cy.js` to include a pause during OTP polling and improve code comments.</msg><path><editType>edit</editType><file>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><commitId>1737734685efcc2457b5612ab841e824e10625bc</commitId><timestamp>1784796984000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update PersonListViewModel: don't load from datasource when not needed on clicking an item in the list in browse mode.
</comment><date>2026-07-23 12:56:24 +0400</date><id>1737734685efcc2457b5612ab841e824e10625bc</id><msg>Update PersonListViewModel: don't load from datasource when not needed on clicking an item in the list in browse mode.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/Constants.kt</affectedPath><commitId>ef2f4319013473b008b4df5d8be46bd243fdc1ac</commitId><timestamp>1784797367000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Removed unused Constants.kt (from Android Studio project template).
</comment><date>2026-07-23 13:02:47 +0400</date><id>ef2f4319013473b008b4df5d8be46bd243fdc1ac</id><msg>Removed unused Constants.kt (from Android Studio project template).</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/Constants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt</affectedPath><affectedPath>respect-lib-opds-model/src/jvmTest/resources/lesson001.json</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.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/components/UstadExposedDropDownMenuField.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</affectedPath><affectedPath>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</affectedPath><commitId>ec6a56271e863c32822010b12d4cb234e05d8eb8</commitId><timestamp>1784874064000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix Opds Subject storage to/from database.
</comment><date>2026-07-24 10:21:04 +0400</date><id>ec6a56271e863c32822010b12d4cb234e05d8eb8</id><msg>Fix Opds Subject storage to/from database.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.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>edit</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/school/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/jvmTest/resources/lesson001.json</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>37</buildNumber><marked><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><branch><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><branch><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</SHA1><branch><SHA1>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.34a.zip</displayPath><fileName>respect-cli-1.0.34a.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.34a.zip</displayPath><fileName>respect-server-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.34a.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.34a.zip</displayPath><fileName>respect-server-shadow-1.0.34a.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.34a.zip</relativePath></artifact><building>false</building><displayName>#37</displayName><duration>194054</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #37</fullDisplayName><id>37</id><inProgress>false</inProgress><keepLog>false</keepLog><number>37</number><queueId>10657</queueId><result>SUCCESS</result><timestamp>1784790120610</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/37/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/scripts/school_init.js</affectedPath><affectedPath>.maestro/flows/subflows/teardown.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/README.md</affectedPath><affectedPath>.maestro/flows/scripts/teardown.js</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</affectedPath><commitId>64127779cc82e240cb749968595f32363e65c11e</commitId><timestamp>1784478624000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Updates for improved local on-prem testing

Fix ci-run-maestro to run shutdowns properly (change to get database copies had broken this)

Improve e2e artifact uploader to wait for connectivity (avoid potential fail when airplane mode was on and connectivity is not yet ready)

Improve ci-run-maestro scripts to allow for extra args/tags
</comment><date>2026-07-19 20:30:24 +0400</date><id>64127779cc82e240cb749968595f32363e65c11e</id><msg>Updates for improved local on-prem testing</msg><path><editType>edit</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/teardown.yaml</file></path><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>gradle.properties</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/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/teardown.js</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/school_init.js</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/build.gradle.kts</affectedPath><commitId>4bf198b5b4957b58d0f8ba6e597f88daf76c4067</commitId><timestamp>1784553628000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Maestro device offline reproduction with additional logging.
</comment><date>2026-07-20 17:20:28 +0400</date><id>4bf198b5b4957b58d0f8ba6e597f88daf76c4067</id><msg>Maestro device offline reproduction with additional logging.</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.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>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.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-lib-xapi-nanohttpd/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>9ed993bc3a371f9ea9d89f459a14fbe56ea6f9c3</commitId><timestamp>1784627738000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove extra character in wrong place in ci-run-maestro.sh script.
</comment><date>2026-07-21 13:55:38 +0400</date><id>9ed993bc3a371f9ea9d89f459a14fbe56ea6f9c3</id><msg>Remove extra character in wrong place in ci-run-maestro.sh script.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>ci-run-test-server.sh</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><commitId>bf151ed7ab83bb26b5e5459e195a239c7f2c3b22</commitId><timestamp>1784663485000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update version of TestServerController.
</comment><date>2026-07-21 23:51:25 +0400</date><id>bf151ed7ab83bb26b5e5459e195a239c7f2c3b22</id><msg>Update version of TestServerController.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>ci-run-test-server.sh</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>ci-run-test-server.sh</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><commitId>a73780ed5a127e5a62b391ebdbefc3145f29f2e3</commitId><timestamp>1784709847000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename ci-run-maestro script to ci-run-e2e-tests.sh

Update to latest testserver controller
Tidy up all e2e output into single build/ci-e2e directory.
</comment><date>2026-07-22 12:44:07 +0400</date><id>a73780ed5a127e5a62b391ebdbefc3145f29f2e3</id><msg>Rename ci-run-maestro script to ci-run-e2e-tests.sh</msg><path><editType>delete</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>ci-run-test-server.sh</file></path><path><editType>add</editType><file>ci-run-e2e-tests.sh</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/e2e_artifact_upload.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</affectedPath><commitId>5d66aa3c0cac9af39086085837fe255c5fc4cd7d</commitId><timestamp>1784722521000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update SendDbToServerScreen and e2e_artifact_upload to avoid artifact upload failure when no db created yet blocking server shutdown.
</comment><date>2026-07-22 16:15:21 +0400</date><id>5d66aa3c0cac9af39086085837fe255c5fc4cd7d</id><msg>Update SendDbToServerScreen and e2e_artifact_upload to avoid artifact upload failure when no db created yet blocking server shutdown.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/e2e_artifact_upload.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><commitId>1eaedfd76f545707878e38ec564d7cde54044898</commitId><timestamp>1784724318000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix Application.kt to create required data directory
</comment><date>2026-07-22 16:45:18 +0400</date><id>1eaedfd76f545707878e38ec564d7cde54044898</id><msg>Fix Application.kt to create required data directory</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.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/Application.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.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/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.kt</affectedPath><commitId>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</commitId><timestamp>1784732644000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update login to use auto-retry and show appropriate error messages.
</comment><date>2026-07-22 19:04:04 +0400</date><id>cb6afd6a1d76eb2c1a8fc2a7db0ba5573eaeb260</id><msg>Update login to use auto-retry and show appropriate error messages.</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.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/manageuser/login/LoginViewModel.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-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/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>36</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#36</displayName><duration>188967</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #36</fullDisplayName><id>36</id><inProgress>false</inProgress><keepLog>false</keepLog><number>36</number><queueId>10625</queueId><result>SUCCESS</result><timestamp>1784703720609</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/36/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>35</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#35</displayName><duration>193574</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #35</fullDisplayName><id>35</id><inProgress>false</inProgress><keepLog>false</keepLog><number>35</number><queueId>10591</queueId><result>SUCCESS</result><timestamp>1784617320624</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/35/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>34</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#34</displayName><duration>159435</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #34</fullDisplayName><id>34</id><inProgress>false</inProgress><keepLog>false</keepLog><number>34</number><queueId>10552</queueId><result>SUCCESS</result><timestamp>1784530920405</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/34/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></build><build _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>33</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#33</displayName><duration>198413</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #33</fullDisplayName><id>33</id><inProgress>false</inProgress><keepLog>false</keepLog><number>33</number><queueId>10528</queueId><result>SUCCESS</result><timestamp>1784444520405</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/33/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>86b15234fb65922f53a1d0803ebc3163ae4228e4</commitId><timestamp>1784383655000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update instructions on adding an app to the default catalog.
</comment><date>2026-07-18 18:07:35 +0400</date><id>86b15234fb65922f53a1d0803ebc3163ae4228e4</id><msg>Update instructions on adding an app to the default catalog.</msg><path><editType>edit</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></build><color>blue</color><firstBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>33</buildNumber><marked><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</SHA1><branch><SHA1>86b15234fb65922f53a1d0803ebc3163ae4228e4</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-app-compose-debug.apk</displayPath><fileName>respect-app-compose-debug.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk</relativePath></artifact><artifact><displayPath>respect-app-compose-release.apk</displayPath><fileName>respect-app-compose-release.apk</fileName><relativePath>respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk</relativePath></artifact><artifact><displayPath>mapping.txt</displayPath><fileName>mapping.txt</fileName><relativePath>respect-app-compose/build/outputs/mapping/release/mapping.txt</relativePath></artifact><artifact><displayPath>respect-cli-1.0.33.zip</displayPath><fileName>respect-cli-1.0.33.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.33.zip</displayPath><fileName>respect-server-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.33.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.33.zip</displayPath><fileName>respect-server-shadow-1.0.33.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.33.zip</relativePath></artifact><building>false</building><displayName>#33</displayName><duration>198413</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #33</fullDisplayName><id>33</id><inProgress>false</inProgress><keepLog>false</keepLog><number>33</number><queueId>10528</queueId><result>SUCCESS</result><timestamp>1784444520405</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/33/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>86b15234fb65922f53a1d0803ebc3163ae4228e4</commitId><timestamp>1784383655000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update instructions on adding an app to the default catalog.
</comment><date>2026-07-18 18:07:35 +0400</date><id>86b15234fb65922f53a1d0803ebc3163ae4228e4</id><msg>Update instructions on adding an app to the default catalog.</msg><path><editType>edit</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></firstBuild><healthReport><description>Build stability: No recent builds failed.</description><iconClassName>icon-health-80plus</iconClassName><iconUrl>health-80plus.png</iconUrl><score>100</score></healthReport><inQueue>false</inQueue><keepDependencies>false</keepDependencies><lastBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>53</buildNumber><marked><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.41.zip</displayPath><fileName>respect-cli-1.0.41.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.41.zip</displayPath><fileName>respect-server-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.41.zip</displayPath><fileName>respect-server-shadow-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.41.zip</relativePath></artifact><building>false</building><displayName>#53</displayName><duration>158167</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #53</fullDisplayName><id>53</id><inProgress>false</inProgress><keepLog>false</keepLog><number>53</number><queueId>11542</queueId><result>SUCCESS</result><timestamp>1788269951028</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/53/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><commitId>94fb283538e4668d8f7e0f1a8722e0b335e69c36</commitId><timestamp>1787908657000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve support for launching native apps using intent uri and custom action.

Intent uri can be used by compatible apps to specify that a native app is required to open a publication. A specific action intent can be used to support dynamic domains (e.g. on apps where the user can specify their own server, making verified app links impossible).
</comment><date>2026-08-28 13:17:37 +0400</date><id>94fb283538e4668d8f7e0f1a8722e0b335e69c36</id><msg>Improve support for launching native apps using intent uri and custom action.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><commitId>e6c78c1186adb61644e90402ca52deda4724d3fa</commitId><timestamp>1787910703000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add non-https support to query for org.openeel.action.LAUNCH
</comment><date>2026-08-28 13:51:43 +0400</date><id>e6c78c1186adb61644e90402ca52deda4724d3fa</id><msg>Add non-https support to query for org.openeel.action.LAUNCH</msg><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><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/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><commitId>d10f9c64824de16973cd67b2548a978a5b26d5f4</commitId><timestamp>1787925647000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to show app installation prompt.
</comment><date>2026-08-28 18:00:47 +0400</date><id>d10f9c64824de16973cd67b2548a978a5b26d5f4</id><msg>Add support to show app installation prompt.</msg><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.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-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>382c3b245cb544ee8e01b89bd67c909a0a163f3a</commitId><timestamp>1787927780000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:36:20 +0400</date><id>382c3b245cb544ee8e01b89bd67c909a0a163f3a</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.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/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>4f9b0028accce4af732cbc094e632d6fa2c20d82</commitId><timestamp>1787928409000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:46:49 +0400</date><id>4f9b0028accce4af732cbc094e632d6fa2c20d82</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><commitId>adb4fd184baff20a4069382ff26a6a57ab31ecb3</commitId><timestamp>1788094820000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename install prompt to GoToAppStore.

Update SavePasswordUseCase to use activity context processor.
</comment><date>2026-08-30 17:00:20 +0400</date><id>adb4fd184baff20a4069382ff26a6a57ab31ecb3</id><msg>Rename install prompt to GoToAppStore.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><commitId>db1f7b231d0caf93995bea64b72fbfecd5d2765e</commitId><timestamp>1788096442000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add mobile only lessons to the demoapp catalog.
</comment><date>2026-08-30 17:27:22 +0400</date><id>db1f7b231d0caf93995bea64b72fbfecd5d2765e</id><msg>Add mobile only lessons to the demoapp catalog.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>8a654eaaf39c5ada415dc3289b329710cc1e08d5</commitId><timestamp>1788097416000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.
</comment><date>2026-08-30 17:43:36 +0400</date><id>8a654eaaf39c5ada415dc3289b329710cc1e08d5</id><msg>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</commitId><timestamp>1788106071000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on intent filter.
</comment><date>2026-08-30 20:07:51 +0400</date><id>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</id><msg>Update README_ADD_YOUR_APP.md to add guidance on intent filter.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>76a3f81564d1ca947cfb1665b7b53c04b62972e3</commitId><timestamp>1788162043000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add initial language map for multilingual launchable app demo.
</comment><date>2026-08-31 11:40:43 +0400</date><id>76a3f81564d1ca947cfb1665b7b53c04b62972e3</id><msg>Add initial language map for multilingual launchable app demo.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><commitId>7a3da32354ec1188fbc09f228f562c409c5815d1</commitId><timestamp>1788181028000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app to show multiple language versions.
</comment><date>2026-08-31 16:57:08 +0400</date><id>7a3da32354ec1188fbc09f228f562c409c5815d1</id><msg>Update demo app to show multiple language versions.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.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-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</commitId><timestamp>1788187739000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app examples to include multiple languages.
</comment><date>2026-08-31 18:48:59 +0400</date><id>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</id><msg>Update demo app examples to include multiple languages.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><commitId>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</commitId><timestamp>1788188325000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demoapp index.html
</comment><date>2026-08-31 18:58:45 +0400</date><id>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</id><msg>Update demoapp index.html</msg><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>contrib/language-names.ods</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</commitId><timestamp>1788261154000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to display alternative language versions for apps and learning units.
</comment><date>2026-09-01 15:12:34 +0400</date><id>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</id><msg>Add support to display alternative language versions for apps and learning units.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</file></path><path><editType>add</editType><file>contrib/language-names.ods</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>add</editType><file>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><commitId>0c734ef1853f901413b6829b2339531eac50b9cb</commitId><timestamp>1788263695000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update grade collection title.
</comment><date>2026-09-01 15:54:55 +0400</date><id>0c734ef1853f901413b6829b2339531eac50b9cb</id><msg>Update grade collection title.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><commitId>b2f8a9f343fe8863b4d372dc809b614870d335a5</commitId><timestamp>1788264635000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix OpdsRespectRepositoryIntegrationTest.kt compilation
</comment><date>2026-09-01 16:10:35 +0400</date><id>b2f8a9f343fe8863b4d372dc809b614870d335a5</id><msg>Fix OpdsRespectRepositoryIntegrationTest.kt compilation</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>5052d265d464808f675b60958901c2c3f96d979e</commitId><timestamp>1788269163000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md documentation on loading offline resources.
</comment><date>2026-09-01 17:26:03 +0400</date><id>5052d265d464808f675b60958901c2c3f96d979e</id><msg>Update README_ADD_YOUR_APP.md documentation on loading offline resources.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></lastBuild><lastCompletedBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>53</buildNumber><marked><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.41.zip</displayPath><fileName>respect-cli-1.0.41.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.41.zip</displayPath><fileName>respect-server-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.41.zip</displayPath><fileName>respect-server-shadow-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.41.zip</relativePath></artifact><building>false</building><displayName>#53</displayName><duration>158167</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #53</fullDisplayName><id>53</id><inProgress>false</inProgress><keepLog>false</keepLog><number>53</number><queueId>11542</queueId><result>SUCCESS</result><timestamp>1788269951028</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/53/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><commitId>94fb283538e4668d8f7e0f1a8722e0b335e69c36</commitId><timestamp>1787908657000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve support for launching native apps using intent uri and custom action.

Intent uri can be used by compatible apps to specify that a native app is required to open a publication. A specific action intent can be used to support dynamic domains (e.g. on apps where the user can specify their own server, making verified app links impossible).
</comment><date>2026-08-28 13:17:37 +0400</date><id>94fb283538e4668d8f7e0f1a8722e0b335e69c36</id><msg>Improve support for launching native apps using intent uri and custom action.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><commitId>e6c78c1186adb61644e90402ca52deda4724d3fa</commitId><timestamp>1787910703000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add non-https support to query for org.openeel.action.LAUNCH
</comment><date>2026-08-28 13:51:43 +0400</date><id>e6c78c1186adb61644e90402ca52deda4724d3fa</id><msg>Add non-https support to query for org.openeel.action.LAUNCH</msg><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><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/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><commitId>d10f9c64824de16973cd67b2548a978a5b26d5f4</commitId><timestamp>1787925647000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to show app installation prompt.
</comment><date>2026-08-28 18:00:47 +0400</date><id>d10f9c64824de16973cd67b2548a978a5b26d5f4</id><msg>Add support to show app installation prompt.</msg><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.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-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>382c3b245cb544ee8e01b89bd67c909a0a163f3a</commitId><timestamp>1787927780000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:36:20 +0400</date><id>382c3b245cb544ee8e01b89bd67c909a0a163f3a</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.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/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>4f9b0028accce4af732cbc094e632d6fa2c20d82</commitId><timestamp>1787928409000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:46:49 +0400</date><id>4f9b0028accce4af732cbc094e632d6fa2c20d82</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><commitId>adb4fd184baff20a4069382ff26a6a57ab31ecb3</commitId><timestamp>1788094820000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename install prompt to GoToAppStore.

Update SavePasswordUseCase to use activity context processor.
</comment><date>2026-08-30 17:00:20 +0400</date><id>adb4fd184baff20a4069382ff26a6a57ab31ecb3</id><msg>Rename install prompt to GoToAppStore.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><commitId>db1f7b231d0caf93995bea64b72fbfecd5d2765e</commitId><timestamp>1788096442000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add mobile only lessons to the demoapp catalog.
</comment><date>2026-08-30 17:27:22 +0400</date><id>db1f7b231d0caf93995bea64b72fbfecd5d2765e</id><msg>Add mobile only lessons to the demoapp catalog.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>8a654eaaf39c5ada415dc3289b329710cc1e08d5</commitId><timestamp>1788097416000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.
</comment><date>2026-08-30 17:43:36 +0400</date><id>8a654eaaf39c5ada415dc3289b329710cc1e08d5</id><msg>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</commitId><timestamp>1788106071000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on intent filter.
</comment><date>2026-08-30 20:07:51 +0400</date><id>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</id><msg>Update README_ADD_YOUR_APP.md to add guidance on intent filter.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>76a3f81564d1ca947cfb1665b7b53c04b62972e3</commitId><timestamp>1788162043000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add initial language map for multilingual launchable app demo.
</comment><date>2026-08-31 11:40:43 +0400</date><id>76a3f81564d1ca947cfb1665b7b53c04b62972e3</id><msg>Add initial language map for multilingual launchable app demo.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><commitId>7a3da32354ec1188fbc09f228f562c409c5815d1</commitId><timestamp>1788181028000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app to show multiple language versions.
</comment><date>2026-08-31 16:57:08 +0400</date><id>7a3da32354ec1188fbc09f228f562c409c5815d1</id><msg>Update demo app to show multiple language versions.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.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-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</commitId><timestamp>1788187739000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app examples to include multiple languages.
</comment><date>2026-08-31 18:48:59 +0400</date><id>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</id><msg>Update demo app examples to include multiple languages.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><commitId>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</commitId><timestamp>1788188325000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demoapp index.html
</comment><date>2026-08-31 18:58:45 +0400</date><id>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</id><msg>Update demoapp index.html</msg><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>contrib/language-names.ods</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</commitId><timestamp>1788261154000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to display alternative language versions for apps and learning units.
</comment><date>2026-09-01 15:12:34 +0400</date><id>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</id><msg>Add support to display alternative language versions for apps and learning units.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</file></path><path><editType>add</editType><file>contrib/language-names.ods</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>add</editType><file>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><commitId>0c734ef1853f901413b6829b2339531eac50b9cb</commitId><timestamp>1788263695000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update grade collection title.
</comment><date>2026-09-01 15:54:55 +0400</date><id>0c734ef1853f901413b6829b2339531eac50b9cb</id><msg>Update grade collection title.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><commitId>b2f8a9f343fe8863b4d372dc809b614870d335a5</commitId><timestamp>1788264635000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix OpdsRespectRepositoryIntegrationTest.kt compilation
</comment><date>2026-09-01 16:10:35 +0400</date><id>b2f8a9f343fe8863b4d372dc809b614870d335a5</id><msg>Fix OpdsRespectRepositoryIntegrationTest.kt compilation</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>5052d265d464808f675b60958901c2c3f96d979e</commitId><timestamp>1788269163000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md documentation on loading offline resources.
</comment><date>2026-09-01 17:26:03 +0400</date><id>5052d265d464808f675b60958901c2c3f96d979e</id><msg>Update README_ADD_YOUR_APP.md documentation on loading offline resources.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></lastCompletedBuild><lastStableBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>53</buildNumber><marked><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.41.zip</displayPath><fileName>respect-cli-1.0.41.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.41.zip</displayPath><fileName>respect-server-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.41.zip</displayPath><fileName>respect-server-shadow-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.41.zip</relativePath></artifact><building>false</building><displayName>#53</displayName><duration>158167</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #53</fullDisplayName><id>53</id><inProgress>false</inProgress><keepLog>false</keepLog><number>53</number><queueId>11542</queueId><result>SUCCESS</result><timestamp>1788269951028</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/53/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><commitId>94fb283538e4668d8f7e0f1a8722e0b335e69c36</commitId><timestamp>1787908657000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve support for launching native apps using intent uri and custom action.

Intent uri can be used by compatible apps to specify that a native app is required to open a publication. A specific action intent can be used to support dynamic domains (e.g. on apps where the user can specify their own server, making verified app links impossible).
</comment><date>2026-08-28 13:17:37 +0400</date><id>94fb283538e4668d8f7e0f1a8722e0b335e69c36</id><msg>Improve support for launching native apps using intent uri and custom action.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><commitId>e6c78c1186adb61644e90402ca52deda4724d3fa</commitId><timestamp>1787910703000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add non-https support to query for org.openeel.action.LAUNCH
</comment><date>2026-08-28 13:51:43 +0400</date><id>e6c78c1186adb61644e90402ca52deda4724d3fa</id><msg>Add non-https support to query for org.openeel.action.LAUNCH</msg><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><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/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><commitId>d10f9c64824de16973cd67b2548a978a5b26d5f4</commitId><timestamp>1787925647000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to show app installation prompt.
</comment><date>2026-08-28 18:00:47 +0400</date><id>d10f9c64824de16973cd67b2548a978a5b26d5f4</id><msg>Add support to show app installation prompt.</msg><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.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-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>382c3b245cb544ee8e01b89bd67c909a0a163f3a</commitId><timestamp>1787927780000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:36:20 +0400</date><id>382c3b245cb544ee8e01b89bd67c909a0a163f3a</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.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/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>4f9b0028accce4af732cbc094e632d6fa2c20d82</commitId><timestamp>1787928409000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:46:49 +0400</date><id>4f9b0028accce4af732cbc094e632d6fa2c20d82</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><commitId>adb4fd184baff20a4069382ff26a6a57ab31ecb3</commitId><timestamp>1788094820000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename install prompt to GoToAppStore.

Update SavePasswordUseCase to use activity context processor.
</comment><date>2026-08-30 17:00:20 +0400</date><id>adb4fd184baff20a4069382ff26a6a57ab31ecb3</id><msg>Rename install prompt to GoToAppStore.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><commitId>db1f7b231d0caf93995bea64b72fbfecd5d2765e</commitId><timestamp>1788096442000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add mobile only lessons to the demoapp catalog.
</comment><date>2026-08-30 17:27:22 +0400</date><id>db1f7b231d0caf93995bea64b72fbfecd5d2765e</id><msg>Add mobile only lessons to the demoapp catalog.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>8a654eaaf39c5ada415dc3289b329710cc1e08d5</commitId><timestamp>1788097416000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.
</comment><date>2026-08-30 17:43:36 +0400</date><id>8a654eaaf39c5ada415dc3289b329710cc1e08d5</id><msg>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</commitId><timestamp>1788106071000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on intent filter.
</comment><date>2026-08-30 20:07:51 +0400</date><id>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</id><msg>Update README_ADD_YOUR_APP.md to add guidance on intent filter.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>76a3f81564d1ca947cfb1665b7b53c04b62972e3</commitId><timestamp>1788162043000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add initial language map for multilingual launchable app demo.
</comment><date>2026-08-31 11:40:43 +0400</date><id>76a3f81564d1ca947cfb1665b7b53c04b62972e3</id><msg>Add initial language map for multilingual launchable app demo.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><commitId>7a3da32354ec1188fbc09f228f562c409c5815d1</commitId><timestamp>1788181028000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app to show multiple language versions.
</comment><date>2026-08-31 16:57:08 +0400</date><id>7a3da32354ec1188fbc09f228f562c409c5815d1</id><msg>Update demo app to show multiple language versions.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.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-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</commitId><timestamp>1788187739000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app examples to include multiple languages.
</comment><date>2026-08-31 18:48:59 +0400</date><id>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</id><msg>Update demo app examples to include multiple languages.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><commitId>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</commitId><timestamp>1788188325000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demoapp index.html
</comment><date>2026-08-31 18:58:45 +0400</date><id>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</id><msg>Update demoapp index.html</msg><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>contrib/language-names.ods</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</commitId><timestamp>1788261154000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to display alternative language versions for apps and learning units.
</comment><date>2026-09-01 15:12:34 +0400</date><id>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</id><msg>Add support to display alternative language versions for apps and learning units.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</file></path><path><editType>add</editType><file>contrib/language-names.ods</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>add</editType><file>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><commitId>0c734ef1853f901413b6829b2339531eac50b9cb</commitId><timestamp>1788263695000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update grade collection title.
</comment><date>2026-09-01 15:54:55 +0400</date><id>0c734ef1853f901413b6829b2339531eac50b9cb</id><msg>Update grade collection title.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><commitId>b2f8a9f343fe8863b4d372dc809b614870d335a5</commitId><timestamp>1788264635000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix OpdsRespectRepositoryIntegrationTest.kt compilation
</comment><date>2026-09-01 16:10:35 +0400</date><id>b2f8a9f343fe8863b4d372dc809b614870d335a5</id><msg>Fix OpdsRespectRepositoryIntegrationTest.kt compilation</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>5052d265d464808f675b60958901c2c3f96d979e</commitId><timestamp>1788269163000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md documentation on loading offline resources.
</comment><date>2026-09-01 17:26:03 +0400</date><id>5052d265d464808f675b60958901c2c3f96d979e</id><msg>Update README_ADD_YOUR_APP.md documentation on loading offline resources.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></lastStableBuild><lastSuccessfulBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Started by user Mike Dawson</shortDescription><userId>mike</userId><userName>Mike Dawson</userName></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>53</buildNumber><marked><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain><refsremotesorigindev-xapi-ipc _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></marked><revision><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><branch><SHA1>35548db75de85c0441a83620284c3f99155699c1</SHA1><name>refs/remotes/origin/dev-xapi-ipc</name></branch></revision></refsremotesorigindev-xapi-ipc></buildsByBranchName><lastBuiltRevision><SHA1>79f13bd94036154da75a495c51794e095eb16e97</SHA1><branch><SHA1>79f13bd94036154da75a495c51794e095eb16e97</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 _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>respect-cli-1.0.41.zip</displayPath><fileName>respect-cli-1.0.41.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.41.zip</displayPath><fileName>respect-server-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.41.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.41.zip</displayPath><fileName>respect-server-shadow-1.0.41.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.41.zip</relativePath></artifact><building>false</building><displayName>#53</displayName><duration>158167</duration><estimatedDuration>159136</estimatedDuration><fullDisplayName>RESPECT-Primary-MavenPublish #53</fullDisplayName><id>53</id><inProgress>false</inProgress><keepLog>false</keepLog><number>53</number><queueId>11542</queueId><result>SUCCESS</result><timestamp>1788269951028</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/RESPECT-Primary-MavenPublish/53/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><commitId>94fb283538e4668d8f7e0f1a8722e0b335e69c36</commitId><timestamp>1787908657000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve support for launching native apps using intent uri and custom action.

Intent uri can be used by compatible apps to specify that a native app is required to open a publication. A specific action intent can be used to support dynamic domains (e.g. on apps where the user can specify their own server, making verified app links impossible).
</comment><date>2026-08-28 13:17:37 +0400</date><id>94fb283538e4668d8f7e0f1a8722e0b335e69c36</id><msg>Improve support for launching native apps using intent uri and custom action.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><commitId>e6c78c1186adb61644e90402ca52deda4724d3fa</commitId><timestamp>1787910703000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add non-https support to query for org.openeel.action.LAUNCH
</comment><date>2026-08-28 13:51:43 +0400</date><id>e6c78c1186adb61644e90402ca52deda4724d3fa</id><msg>Add non-https support to query for org.openeel.action.LAUNCH</msg><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><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/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><commitId>d10f9c64824de16973cd67b2548a978a5b26d5f4</commitId><timestamp>1787925647000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to show app installation prompt.
</comment><date>2026-08-28 18:00:47 +0400</date><id>d10f9c64824de16973cd67b2548a978a5b26d5f4</id><msg>Add support to show app installation prompt.</msg><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.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-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>382c3b245cb544ee8e01b89bd67c909a0a163f3a</commitId><timestamp>1787927780000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:36:20 +0400</date><id>382c3b245cb544ee8e01b89bd67c909a0a163f3a</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.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/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><commitId>4f9b0028accce4af732cbc094e632d6fa2c20d82</commitId><timestamp>1787928409000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add referrer parameter when directing users to an app store.
</comment><date>2026-08-28 18:46:49 +0400</date><id>4f9b0028accce4af732cbc094e632d6fa2c20d82</id><msg>Add referrer parameter when directing users to an app store.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><commitId>adb4fd184baff20a4069382ff26a6a57ab31ecb3</commitId><timestamp>1788094820000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename install prompt to GoToAppStore.

Update SavePasswordUseCase to use activity context processor.
</comment><date>2026-08-30 17:00:20 +0400</date><id>adb4fd184baff20a4069382ff26a6a57ab31ecb3</id><msg>Rename install prompt to GoToAppStore.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><commitId>db1f7b231d0caf93995bea64b72fbfecd5d2765e</commitId><timestamp>1788096442000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add mobile only lessons to the demoapp catalog.
</comment><date>2026-08-30 17:27:22 +0400</date><id>db1f7b231d0caf93995bea64b72fbfecd5d2765e</id><msg>Add mobile only lessons to the demoapp catalog.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>8a654eaaf39c5ada415dc3289b329710cc1e08d5</commitId><timestamp>1788097416000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.
</comment><date>2026-08-30 17:43:36 +0400</date><id>8a654eaaf39c5ada415dc3289b329710cc1e08d5</id><msg>Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</commitId><timestamp>1788106071000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md to add guidance on intent filter.
</comment><date>2026-08-30 20:07:51 +0400</date><id>bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169</id><msg>Update README_ADD_YOUR_APP.md to add guidance on intent filter.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>76a3f81564d1ca947cfb1665b7b53c04b62972e3</commitId><timestamp>1788162043000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add initial language map for multilingual launchable app demo.
</comment><date>2026-08-31 11:40:43 +0400</date><id>76a3f81564d1ca947cfb1665b7b53c04b62972e3</id><msg>Add initial language map for multilingual launchable app demo.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><commitId>7a3da32354ec1188fbc09f228f562c409c5815d1</commitId><timestamp>1788181028000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app to show multiple language versions.
</comment><date>2026-08-31 16:57:08 +0400</date><id>7a3da32354ec1188fbc09f228f562c409c5815d1</id><msg>Update demo app to show multiple language versions.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.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-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</commitId><timestamp>1788187739000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo app examples to include multiple languages.
</comment><date>2026-08-31 18:48:59 +0400</date><id>ed81ce23b4e4d297704f361b7f7dc66bb31e0835</id><msg>Update demo app examples to include multiple languages.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><commitId>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</commitId><timestamp>1788188325000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demoapp index.html
</comment><date>2026-08-31 18:58:45 +0400</date><id>a85c3071dcea57d0b8f5b8991ff83b8e95219bac</id><msg>Update demoapp index.html</msg><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>contrib/language-names.ods</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><commitId>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</commitId><timestamp>1788261154000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support to display alternative language versions for apps and learning units.
</comment><date>2026-09-01 15:12:34 +0400</date><id>45162fda4d8ae2a78b1073cadbb6193a9fb70f31</id><msg>Add support to display alternative language versions for apps and learning units.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</file></path><path><editType>add</editType><file>contrib/language-names.ods</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>add</editType><file>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><commitId>0c734ef1853f901413b6829b2339531eac50b9cb</commitId><timestamp>1788263695000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update grade collection title.
</comment><date>2026-09-01 15:54:55 +0400</date><id>0c734ef1853f901413b6829b2339531eac50b9cb</id><msg>Update grade collection title.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><commitId>b2f8a9f343fe8863b4d372dc809b614870d335a5</commitId><timestamp>1788264635000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix OpdsRespectRepositoryIntegrationTest.kt compilation
</comment><date>2026-09-01 16:10:35 +0400</date><id>b2f8a9f343fe8863b4d372dc809b614870d335a5</id><msg>Fix OpdsRespectRepositoryIntegrationTest.kt compilation</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>5052d265d464808f675b60958901c2c3f96d979e</commitId><timestamp>1788269163000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_ADD_YOUR_APP.md documentation on loading offline resources.
</comment><date>2026-09-01 17:26:03 +0400</date><id>5052d265d464808f675b60958901c2c3f96d979e</id><msg>Update README_ADD_YOUR_APP.md documentation on loading offline resources.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></culprit></lastSuccessfulBuild><nextBuildNumber>54</nextBuildNumber><property _class='jenkins.model.BuildDiscarderProperty'></property><property _class='com.coravy.hudson.plugins.github.GithubProjectProperty'></property><property _class='hudson.plugins.throttleconcurrents.ThrottleJobProperty'></property><property _class='org.jenkinsci.plugins.envinject.EnvInjectJobProperty'></property><concurrentBuild>false</concurrentBuild><disabled>false</disabled><scm _class='hudson.plugins.git.GitSCM'><browser _class='hudson.plugins.git.browser.GithubWeb'></browser><type>hudson.plugins.git.GitSCM</type><branche></branche><mergeOptions><fastForwardMode>--ff</fastForwardMode><mergeStrategy>default</mergeStrategy></mergeOptions><userRemoteConfig></userRemoteConfig></scm></freeStyleProject>