<freeStyleBuild _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><refsremotesorigindev-language _class='hudson.plugins.git.util.Build'><buildNumber>226</buildNumber><marked><SHA1>8603806fa5162dce1f25e94ae2548a10dae00c69</SHA1><branch><SHA1>8603806fa5162dce1f25e94ae2548a10dae00c69</SHA1><name>refs/remotes/origin/dev-language</name></branch></marked><revision><SHA1>8603806fa5162dce1f25e94ae2548a10dae00c69</SHA1><branch><SHA1>8603806fa5162dce1f25e94ae2548a10dae00c69</SHA1><name>refs/remotes/origin/dev-language</name></branch></revision></refsremotesorigindev-language></buildsByBranchName><lastBuiltRevision><SHA1>8603806fa5162dce1f25e94ae2548a10dae00c69</SHA1><branch><SHA1>8603806fa5162dce1f25e94ae2548a10dae00c69</SHA1><name>refs/remotes/origin/dev-language</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'><artifactsUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/dev-language/226/artifact</artifactsUrl><changesUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/dev-language/changes</changesUrl><displayUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/dev-language/226/</displayUrl><testsUrl>https://devserver3.ustadmobile.com/jenkins/view/all/job/dev-language/226/testReport</testsUrl></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>respect-app-compose-debug.aab</displayPath><fileName>respect-app-compose-debug.aab</fileName><relativePath>respect-app-compose/build/outputs/bundle/debug/respect-app-compose-debug.aab</relativePath></artifact><artifact><displayPath>respect-app-compose-release.aab</displayPath><fileName>respect-app-compose-release.aab</fileName><relativePath>respect-app-compose/build/outputs/bundle/release/respect-app-compose-release.aab</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.zip</displayPath><fileName>respect-cli.zip</fileName><relativePath>respect-cli/build/distributions/respect-cli.zip</relativePath></artifact><artifact><displayPath>respect-server-1.0.0.zip</displayPath><fileName>respect-server-1.0.0.zip</fileName><relativePath>respect-server/build/distributions/respect-server-1.0.0.zip</relativePath></artifact><artifact><displayPath>respect-server-shadow-1.0.0.zip</displayPath><fileName>respect-server-shadow-1.0.0.zip</fileName><relativePath>respect-server/build/distributions/respect-server-shadow-1.0.0.zip</relativePath></artifact><building>false</building><displayName>#226</displayName><duration>13149</duration><estimatedDuration>147816</estimatedDuration><fullDisplayName>dev-language #226</fullDisplayName><id>226</id><inProgress>false</inProgress><keepLog>false</keepLog><number>226</number><queueId>190</queueId><result>FAILURE</result><timestamp>1790735820353</timestamp><url>https://devserver3.ustadmobile.com/jenkins/view/all/job/dev-language/226/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><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-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>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-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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.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><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/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-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></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-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/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><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-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>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-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><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/sharefeedback/FeedbackDataSourceHttp.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-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></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/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/EmailLauncherAndroid.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/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><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/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.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/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/WhatsAppLauncherAndroid.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-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>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/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></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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.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/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-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/WebLauncherAndroid.kt</file></path><path><editType>add</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-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/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-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>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-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></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-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>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-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></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-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/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-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/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/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.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-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/sharefeedback/FeedbackSubmittedViewModel.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.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-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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.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>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.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/FeedbackSubmittedViewModel.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>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/feedback_sent.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/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-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><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-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/ShareFeedbackViewModel.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>edit</editType><file>gradle/libs.versions.toml</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></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-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-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/004_user_send_feedback_test.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/subflows/school_user_login_flow.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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/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-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></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/FeedbackSubmittedViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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-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-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></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-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/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/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.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/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/launchers/WhatsAppLauncherUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.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/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.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>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/EmailLauncherUseCase.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>add</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/EmailLauncher.kt</file></path><path><editType>add</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-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><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-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>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.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-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>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.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/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.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>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/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/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.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-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>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-app-compose/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.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/feedback/ZammadTicketResponse.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.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-lib-shared/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.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/domain/launchers/WhatsAppLauncherUseCase.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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.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>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/domain/launchers/EmailLauncherUseCase.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/004_user_send_feedback_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/school_admin_login_flow.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/log/respect-server.2026-01-14.0.log</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</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>delete</editType><file>respect-lib-shared/log/respect-server.2026-01-14.0.log</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><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/FeedbackSubmittedViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.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/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></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>.gitignore</file></path><path><editType>add</editType><file>.maestro/flows/scripts/verifyZammadTicket.js</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>.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/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/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-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/WhatsAppLauncherUseCaseAndroid.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/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/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/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/FeedbackTicket.kt</file></path><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></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>ci-run-maestro.sh</file></path><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></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>.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>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-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-lib-shared/log/respect-server.2026-02-01.0.log</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-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>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-02-01.0.log</file></path><path><editType>add</editType><file>respect-datalayer-repository/log/respect-server.2026-01-30.0.log</file></path><path><editType>add</editType><file>respect-lib-shared/log/respect-server.2026-02-01.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-datalayer-repository/log/respect-server.2026-02-01.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><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-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-01-30.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-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/EmailLauncherUseCaseAndroid.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/domain/launchers/EmailLauncherUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.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>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/sendinvite/LaunchSendEmailAndroid.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>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>delete</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>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>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><commitId>a513cc61b6e256abb9d8d3a0e1a4f3bdf7dffb65</commitId><timestamp>1770639944000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: model Respect App manifest using OPDS.

Add database migrations.
</comment><date>2026-02-09 16:25:44 +0400</date><id>a513cc61b6e256abb9d8d3a0e1a4f3bdf7dffb65</id><msg>Work in progress: model Respect App manifest using OPDS.</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/ServerKoinModule.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/RespectAppDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</affectedPath><affectedPath>gradle/gradle-daemon-jvm.properties</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>d0a2110dfec427c45610248a5f081cbd7d3327bd</commitId><timestamp>1771253618000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add architecture and system to handle Opds for both external sources (eg. compatible apps) and internal (school playlists).
</comment><date>2026-02-16 18:53:38 +0400</date><id>d0a2110dfec427c45610248a5f081cbd7d3327bd</id><msg>Add architecture and system to handle Opds for both external sources (eg. compatible apps) and internal (school playlists).</msg><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>gradle/gradle-daemon-jvm.properties</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.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-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><commitId>31241d0934af33bbbc5cc9935f684cf1e6692746</commitId><timestamp>1771401185000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress making OpdsFeed a writable entity as per other entities in the school database.
</comment><date>2026-02-18 11:53:05 +0400</date><id>31241d0934af33bbbc5cc9935f684cf1e6692746</id><msg>Work in progress making OpdsFeed a writable entity as per other entities in the school database.</msg><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.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-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><commitId>1553ef245912541d474ca978dcb333ae810cad70</commitId><timestamp>1771401223000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress making OpdsFeed a writable entity as per other entities in the school database.
</comment><date>2026-02-18 11:53:43 +0400</date><id>1553ef245912541d474ca978dcb333ae810cad70</id><msg>Work in progress making OpdsFeed a writable entity as per other entities in the school database.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-repository/README.md</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</affectedPath><commitId>83570f164f24df7e73d004ea4ead65a1bb14ea2d</commitId><timestamp>1771429916000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement write support for OpdsFeed including handling etag and last-modified header for non-RESPECT generated feeds.
</comment><date>2026-02-18 19:51:56 +0400</date><id>83570f164f24df7e73d004ea4ead65a1bb14ea2d</id><msg>Implement write support for OpdsFeed including handling etag and last-modified header for non-RESPECT generated feeds.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/README.md</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.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/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</affectedPath><commitId>f3416e4cacc3a1a92ae8c21182724ee187d70d75</commitId><timestamp>1771430925000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add OpdsFeed validation helper implementation.
</comment><date>2026-02-18 20:08:45 +0400</date><id>f3416e4cacc3a1a92ae8c21182724ee187d70d75</id><msg>Add OpdsFeed validation helper implementation.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.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-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</affectedPath><commitId>511867be668dad825097c0719e53e35898756da0</commitId><timestamp>1771499288000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make OpdsFeed writable to handle playlists: work in progress.

1) Update OpdsRespectRepositoryIntegrationTest.kt to use OpdsFeedDataSource
2) Update LaunchAppUseCase to use an OpdsPublication instead of a RespectAppManifest.
</comment><date>2026-02-19 15:08:08 +0400</date><id>511867be668dad825097c0719e53e35898756da0</id><msg>Make OpdsFeed writable to handle playlists: work in progress.</msg><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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.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-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><commitId>0b5e01f97298fa8cd802e6c26f1261419da15aff</commitId><timestamp>1771501923000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update documentation on OpdsFeedDataSource on how external/internal data is handled.
</comment><date>2026-02-19 15:52:03 +0400</date><id>0b5e01f97298fa8cd802e6c26f1261419da15aff</id><msg>Update documentation on OpdsFeedDataSource on how external/internal data is handled.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>.maestro/flows/004_user_send_feedback_test.yaml</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>add</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/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>.maestro/flows/006_002_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>.maestro/flows/004_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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><commitId>a4a3eac753d458ceda02fbfc62a00198f70cee81</commitId><timestamp>1772018741000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make Opds Feed writable: make initial working client - server integration test.
</comment><date>2026-02-25 15:25:41 +0400</date><id>a4a3eac753d458ceda02fbfc62a00198f70cee81</id><msg>Make Opds Feed writable: make initial working client - server integration test.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.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-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>edff29ccaff5c8c9fdbbbfc459e5adf72a0097a4</commitId><timestamp>1772098577000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move OpdsPublication data source to follow same naming pattern.
</comment><date>2026-02-26 13:36:17 +0400</date><id>edff29ccaff5c8c9fdbbbfc459e5adf72a0097a4</id><msg>Move OpdsPublication data source to follow same naming pattern.</msg><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><commitId>e408883dc6a4cd98fecf00ece74ec46986d2f508</commitId><timestamp>1772099762000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update OpdsPublicationDataSourceRepository to follow pattern as per OpdsFeedRepository.
</comment><date>2026-02-26 13:56:02 +0400</date><id>e408883dc6a4cd98fecf00ece74ec46986d2f508</id><msg>Update OpdsPublicationDataSourceRepository to follow pattern as per OpdsFeedRepository.</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</affectedPath><commitId>ee1643a8e9741ccd588cf4051d60dc82bf67560b</commitId><timestamp>1772446868000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>OpdsPublicationDataSource improvements

Fix mistake in query that prevented links on publication being saved correctly into database.

Update OpdsPublicationDataSourceHttp.kt so it can handle RespectAppmanifest and convert into an OpdsPublication.
</comment><date>2026-03-02 14:21:08 +0400</date><id>ee1643a8e9741ccd588cf4051d60dc82bf67560b</id><msg>OpdsPublicationDataSource improvements</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.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/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt</affectedPath><commitId>cc9c881d4a49f8381dff27e539fad346bc728ea3</commitId><timestamp>1772459395000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements to handling OpdsPublication and OpdsFeed / related entities.

Put writing/reading of OpdsFeed and Opds in transactions.

Ensure app dependency injection provides validation helpers for http fetching of OpdsFeed and OpdsPublication (ensure that if-modified-since/if-none-match work as expected).
</comment><date>2026-03-02 17:49:55 +0400</date><id>cc9c881d4a49f8381dff27e539fad346bc728ea3</id><msg>Improvements to handling OpdsPublication and OpdsFeed / related entities.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.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-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</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-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.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/ext/DateConstants.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</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/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt</affectedPath><commitId>156d9f6ac9da94feab4f23b8e8df8935e2ec0faf</commitId><timestamp>1772465112000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add 304 response support to UstadCacheImpl.

When a request to the cache includes its own http validation info (if-not-modified since and/or if-none-match), and the response is the cache is fresh, then the cache itself can reply immediately with an empty 304 not modified response.
</comment><date>2026-03-02 19:25:12 +0400</date><id>156d9f6ac9da94feab4f23b8e8df8935e2ec0faf</id><msg>Add 304 response support to UstadCacheImpl.</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.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/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.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-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt</affectedPath><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/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt</affectedPath><commitId>44088c6860ebc37e91ba9ddb6a351f22e89e4906</commitId><timestamp>1772546186000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add unit test for UstadCache to verify 304 response is returned correctly when incoming request has validation info.
</comment><date>2026-03-03 17:56:26 +0400</date><id>44088c6860ebc37e91ba9ddb6a351f22e89e4906</id><msg>Add unit test for UstadCache to verify 304 response is returned correctly when incoming request has validation info.</msg><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/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.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-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><commitId>c9f0db375ac4093fe9ea94c358e8764b3ee7aa0c</commitId><timestamp>1772615703000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update UstadCacheInterceptor.kt to respond 304 directly if the underlying request has its own cache validation info and a stale response is validated over the network.
</comment><date>2026-03-04 13:15:03 +0400</date><id>c9f0db375ac4093fe9ea94c358e8764b3ee7aa0c</id><msg>Update UstadCacheInterceptor.kt to respond 304 directly if the underlying request has its own cache validation info and a stale response is validated over the network.</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>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><commitId>c5c0aff9649d7521dd609b3bf9505ff8281e7ea4</commitId><timestamp>1772691673000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add test checking 304 not modified response received using interceptor if cache validation headers are used.
</comment><date>2026-03-05 10:21:13 +0400</date><id>c5c0aff9649d7521dd609b3bf9505ff8281e7ea4</id><msg>Add test checking 304 not modified response received using interceptor if cache validation headers are used.</msg><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepositoryTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSource.kt</affectedPath><commitId>b8c5c1ff312bffec071b3a9635cc8b0cd29add33</commitId><timestamp>1772704588000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove CompatibleApp Datasource (replaced by using OpdsPublication).
</comment><date>2026-03-05 13:56:28 +0400</date><id>b8c5c1ff312bffec071b3a9635cc8b0cd29add33</id><msg>Remove CompatibleApp Datasource (replaced by using OpdsPublication).</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.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-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepositoryTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/adapters/CompatbileAppAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppAddJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppAddJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><commitId>205b330f195ef8c38eabf8c6a40add9201ddccb1</commitId><timestamp>1772708805000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove CompatibleAppEntity from database.
</comment><date>2026-03-05 15:06:45 +0400</date><id>205b330f195ef8c38eabf8c6a40add9201ddccb1</id><msg>Remove CompatibleAppEntity from database.</msg><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/adapters/CompatbileAppAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppAddJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppAddJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppEntityDao.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/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><commitId>f3acd9c68e215c54cf4b734f3052c7560f5de7cb</commitId><timestamp>1773210046000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Initial commit
</comment><date>2026-03-11 11:50:46 +0530</date><id>f3acd9c68e215c54cf4b734f3052c7560f5de7cb</id><msg>Initial commit</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.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/apps/launcher/AppLauncherViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><commitId>1dab74ce9dc687cfb2f9f4a2f2557ddeb51157db</commitId><timestamp>1773210126000</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 tab
</comment><date>2026-03-11 11:52:06 +0530</date><id>1dab74ce9dc687cfb2f9f4a2f2557ddeb51157db</id><msg>added tab</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>.maestro/flows/scripts/school_init.js</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><commitId>f5e206f4779043c8758c0fe3406988aefab78bf9</commitId><timestamp>1773222029000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update ci-run-maestro.sh and school_init.js with option to disable automatic school creation for end-to-end tests.

This option is required to run an end-to-end test of self-registration of a new school.
</comment><date>2026-03-11 13:40:29 +0400</date><id>f5e206f4779043c8758c0fe3406988aefab78bf9</id><msg>Update ci-run-maestro.sh and school_init.js with option to disable automatic school creation for end-to-end tests.</msg><path><editType>edit</editType><file>.maestro/flows/scripts/school_init.js</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_service.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_admin_login_flow.yaml</affectedPath><commitId>43a92543301b52137bd67e0e1f67fca27c7bae01</commitId><timestamp>1773311290000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added test for school-self-registration
</comment><date>2026-03-12 14:28:10 +0400</date><id>43a92543301b52137bd67e0e1f67fca27c7bae01</id><msg>added test for school-self-registration</msg><path><editType>add</editType><file>.maestro/flows/001_005_add_school_self_service.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/school_admin_login_flow.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_service.yaml</affectedPath><commitId>869fbfad19a693521ea7789d1ec9700fa9d4d0c9</commitId><timestamp>1773313951000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test
</comment><date>2026-03-12 15:12:31 +0400</date><id>869fbfad19a693521ea7789d1ec9700fa9d4d0c9</id><msg>updated test</msg><path><editType>edit</editType><file>.maestro/flows/001_005_add_school_self_service.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_service.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>40a8c27e750ce3f0f22d2d8b1803ceaad14f328d</commitId><timestamp>1773316182000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test 001_002
</comment><date>2026-03-12 15:49:42 +0400</date><id>40a8c27e750ce3f0f22d2d8b1803ceaad14f328d</id><msg>updated test 001_002</msg><path><editType>delete</editType><file>.maestro/flows/001_005_add_school_self_service.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>674efff8c00e64926e44f45d073d2ed003a9ff30</commitId><timestamp>1773318844000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test- added id for the Host URL
</comment><date>2026-03-12 16:34:04 +0400</date><id>674efff8c00e64926e44f45d073d2ed003a9ff30</id><msg>updated test- added id for the Host URL</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><commitId>0d0152620aab4cb1ce28bfbc3c9968096bb1b8ca</commitId><timestamp>1773390524000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes for AppLauncher screen.
</comment><date>2026-03-13 12:28:44 +0400</date><id>0d0152620aab4cb1ce28bfbc3c9968096bb1b8ca</id><msg>Fixes for AppLauncher screen.</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-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path></item><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/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.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/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt</affectedPath><commitId>3cf6aa6d01d29a88a6d944d3bd2bec317cb7d9d9</commitId><timestamp>1773402867000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>initial commit for add school self service bug fix
</comment><date>2026-03-13 17:24:27 +0530</date><id>3cf6aa6d01d29a88a6d944d3bd2bec317cb7d9d9</id><msg>initial commit for add school self service bug fix</msg><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/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.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/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsPublicationEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.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/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><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/daos/OpdsGroupEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.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/entities/OpdsPublicationEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumLinkEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumLinkEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFacetAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsGroupEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/PersonPasskeyEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsGroupEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsParentType.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumSubjectEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/ReadiumLinkEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFacetEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</affectedPath><commitId>2ab55511cea2ebbab668c3062ca606310e1163e3</commitId><timestamp>1773422179000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update opds packages in datasource-db and datasource-http to use school.opds package.
</comment><date>2026-03-13 21:16:19 +0400</date><id>2ab55511cea2ebbab668c3062ca606310e1163e3</id><msg>Update opds packages in datasource-db and datasource-http to use school.opds package.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumLinkEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFacetAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsParentType.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumSubjectEntityAdapters.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-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsPublicationEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/ReadiumLinkEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumSubjectEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsGroupEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsGroupEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>add</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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/PersonPasskeyEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFacetEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumLinkEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><commitId>03416dd533b01463d4cc6a4c72aff304fa6eb088</commitId><timestamp>1773422596000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update database migration files.
</comment><date>2026-03-13 21:23:16 +0400</date><id>03416dd533b01463d4cc6a4c72aff304fa6eb088</id><msg>Update database migration files.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.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/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.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/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>ece17bbf38864ba3f36d012e19f0c4fb29dc3d01</commitId><timestamp>1773657905000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial home tabs design.
</comment><date>2026-03-16 14:45:05 +0400</date><id>ece17bbf38864ba3f36d012e19f0c4fb29dc3d01</id><msg>Initial home tabs design.</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/scanqrcode/ScanQRCodeViewModel.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/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>9468f51446f73039c0fffa764fa23f3a883853ad</commitId><timestamp>1773663252000</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-03-16 16:14:12 +0400</date><id>9468f51446f73039c0fffa764fa23f3a883853ad</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>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.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/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.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/home/HomeScreen.kt</affectedPath><commitId>875314a97fbe0f5dbcbc5243a903186066b6da0d</commitId><timestamp>1773720518000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>playlist screen added
</comment><date>2026-03-17 09:38:38 +0530</date><id>875314a97fbe0f5dbcbc5243a903186066b6da0d</id><msg>playlist screen added</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/settings/SettingsViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.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/home/HomeScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><commitId>40d75ac779568c00e4d723c0ea483207a9f89146</commitId><timestamp>1773720541000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>playlist screen added
</comment><date>2026-03-17 09:39:01 +0530</date><id>40d75ac779568c00e4d723c0ea483207a9f89146</id><msg>playlist screen added</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</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><commitId>57f8bdc13c2f97dda0ea87446f811a7245903dc4</commitId><timestamp>1773727685000</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-maestro.sh` to remove a commented-out line and refine `TESTCONTROLLER_URL` parsing.
- Increase the timeout for the "Register New School" screen in `001_002_add_user_direct_test.yaml`.
</comment><date>2026-03-17 10:08:05 +0400</date><id>57f8bdc13c2f97dda0ea87446f811a7245903dc4</id><msg>- Update `ci-run-maestro.sh` to remove a commented-out line and refine `TESTCONTROLLER_URL` parsing.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</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/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><commitId>580608493b9da19f08d4b63e14d3fe0134800c39</commitId><timestamp>1773728227000</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 the myplaylist
</comment><date>2026-03-17 11:47:07 +0530</date><id>580608493b9da19f08d4b63e14d3fe0134800c39</id><msg>fix the myplaylist</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>9304a39c0f87d04578267ed2cce637376e8aaeaf</commitId><timestamp>1773731511000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro test flows for inviting users, login, assignments, and browsing lessons into a new `TestFolder` directory.
</comment><date>2026-03-17 11:11:51 +0400</date><id>9304a39c0f87d04578267ed2cce637376e8aaeaf</id><msg>Move Maestro test flows for inviting users, login, assignments, and browsing lessons into a new `TestFolder` directory.</msg><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/TestFolder/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/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><commitId>08f9a39cfa88b59be7df95e6e7e5ed0b86a2c6be</commitId><timestamp>1773732037000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 12:50:37 +0530</date><id>08f9a39cfa88b59be7df95e6e7e5ed0b86a2c6be</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><commitId>44d10859fccfdcb0f87872443c4e87db32f206c3</commitId><timestamp>1773732108000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 12:51:48 +0530</date><id>44d10859fccfdcb0f87872443c4e87db32f206c3</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>a43f0ae29ae759b5e0bf78ec4405026dd5986b90</commitId><timestamp>1773734547000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 13:32:27 +0530</date><id>a43f0ae29ae759b5e0bf78ec4405026dd5986b90</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>afa5eeaa2e6198eefc188d013abc0632d34dfee6</commitId><timestamp>1773736017000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 13:56:57 +0530</date><id>afa5eeaa2e6198eefc188d013abc0632d34dfee6</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><commitId>4bcef5df1ecdde901f03c64d81f67ea078737516</commitId><timestamp>1773737018000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 14:13:38 +0530</date><id>4bcef5df1ecdde901f03c64d81f67ea078737516</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>7a1247db6933c037420887c980c5e53b3fc1a03b</commitId><timestamp>1773737416000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-17 14:20:16 +0530</date><id>7a1247db6933c037420887c980c5e53b3fc1a03b</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/chrome-first-run-check.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-tap-notification-no-thanks.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-accept-and-continue.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-tap-accept-or-use-without-account.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-without-account.yaml</affectedPath><affectedPath>.maestro/flows/subflows/chrome-first-run-accept-ad-privacy.yaml</affectedPath><commitId>003751b6e519036a8a2809c50769deffc8c8477e</commitId><timestamp>1773743455000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Maestro subflows to handle Chrome's first-run experience screens and integrate them into the `001_002_add_user_direct_test` flow.
</comment><date>2026-03-17 14:30:55 +0400</date><id>003751b6e519036a8a2809c50769deffc8c8477e</id><msg>Add Maestro subflows to handle Chrome's first-run experience screens and integrate them into the `001_002_add_user_direct_test` flow.</msg><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-check.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-tap-notification-no-thanks.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-accept-ad-privacy.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-without-account.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-accept-and-continue.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/chrome-first-run-tap-accept-or-use-without-account.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>2d2518260544cda227cd53bf4ce3e0f606e39a49</commitId><timestamp>1773747128000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow to tap on school URL using text instead of ID.
</comment><date>2026-03-17 15:32:08 +0400</date><id>2d2518260544cda227cd53bf4ce3e0f606e39a49</id><msg>Update Maestro flow to tap on school URL using text instead of ID.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>af53905f34abbde626882ddd93a27ae8fad5e8ec</commitId><timestamp>1773811226000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-18 10:50:26 +0530</date><id>af53905f34abbde626882ddd93a27ae8fad5e8ec</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>b177ea2ef0b0c903e739cc1a0a8265b30a2e11f8</commitId><timestamp>1773811741000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add logs for testing
</comment><date>2026-03-18 10:59:01 +0530</date><id>b177ea2ef0b0c903e739cc1a0a8265b30a2e11f8</id><msg>add logs for testing</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>f802eda5ed1da209f9d005b2e2dccaa3f3c787e4</commitId><timestamp>1773822572000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update url with school-directory
</comment><date>2026-03-18 13:59:32 +0530</date><id>f802eda5ed1da209f9d005b2e2dccaa3f3c787e4</id><msg>update url with school-directory</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>4411ab5ee1f44172055aca857588efc861319ece</commitId><timestamp>1773823875000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro flows from `TestFolder` to the root `.maestro/flows/` directory.
</comment><date>2026-03-18 12:51:15 +0400</date><id>4411ab5ee1f44172055aca857588efc861319ece</id><msg>Move Maestro flows from `TestFolder` to the root `.maestro/flows/` directory.</msg><path><editType>add</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/TestFolder/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>20619eeee7197cdc4a8d62efae4da7c3d4e73064</commitId><timestamp>1773824593000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>remove  logs
</comment><date>2026-03-18 14:33:13 +0530</date><id>20619eeee7197cdc4a8d62efae4da7c3d4e73064</id><msg>remove  logs</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/video.mp4</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/grade1/lesson002/lesson002.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/cover.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.json</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_admin_login_flow.yaml</affectedPath><commitId>2f6f43e7182d8b30964a2e99eef1dec9abfaddd6</commitId><timestamp>1773826009000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test: Update UI labels in Maestro flows and add Playlist browse test
</comment><date>2026-03-18 13:26:49 +0400</date><id>2f6f43e7182d8b30964a2e99eef1dec9abfaddd6</id><msg>test: Update UI labels in Maestro flows and add Playlist browse test</msg><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/002_browse_lessons_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>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/school_admin_login_flow.yaml</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.json</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/video.mp4</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/subflows/admin_add_app.yaml</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/cover.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</affectedPath><commitId>b8e87d5a025c6113d599d1f4c55b0dc997b3bb58</commitId><timestamp>1773826041000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Lesson 002 to grade1.json
</comment><date>2026-03-18 13:27:21 +0400</date><id>b8e87d5a025c6113d599d1f4c55b0dc997b3bb58</id><msg>Add Lesson 002 to grade1.json</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</affectedPath><commitId>0dddce7f3937a7a79477feeb87aac00f8c45c57f</commitId><timestamp>1773827167000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Lesson 002 to grade1.json
</comment><date>2026-03-18 13:46:07 +0400</date><id>0dddce7f3937a7a79477feeb87aac00f8c45c57f</id><msg>Add Lesson 002 to grade1.json</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_005_add_school_self_registration_test_description.md</affectedPath><commitId>b4f6e14937cbbaff43a82679c62ead4684d68f26</commitId><timestamp>1773830574000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Maestro end-to-end test and documentation for school self-registration.
</comment><date>2026-03-18 14:42:54 +0400</date><id>b4f6e14937cbbaff43a82679c62ead4684d68f26</id><msg>Add Maestro end-to-end test and documentation for school self-registration.</msg><path><editType>add</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>add</editType><file>respect-test-end-to-end/test-description/001_005_add_school_self_registration_test_description.md</file></path><path><editType>edit</editType><file>.gitignore</file></path><path><editType>edit</editType><file>respect-test-end-to-end/README.md</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.gitignore</affectedPath><commitId>40fb80666ed8c07f0b0009fb2e82c8fb7c0a05e1</commitId><timestamp>1773830611000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Maestro end-to-end test and documentation for school self-registration.
</comment><date>2026-03-18 14:43:31 +0400</date><id>40fb80666ed8c07f0b0009fb2e82c8fb7c0a05e1</id><msg>Add Maestro end-to-end test and documentation for school self-registration.</msg><path><editType>edit</editType><file>.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>50f2f895dbbede131b9a11c0dbdd85aae44efc0b</commitId><timestamp>1773830921000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the file path for the `get_started_select_school_by_name.yaml` subflow in the Maestro test configuration.
</comment><date>2026-03-18 14:48:41 +0400</date><id>50f2f895dbbede131b9a11c0dbdd85aae44efc0b</id><msg>Update the file path for the `get_started_select_school_by_name.yaml` subflow in the Maestro test configuration.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>59e6db352497dc97de25a719bee2cc18a646f62e</commitId><timestamp>1773831793000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flow to use school name variable instead of skipping school creation.
</comment><date>2026-03-18 15:03:13 +0400</date><id>59e6db352497dc97de25a719bee2cc18a646f62e</id><msg>Update Maestro test flow to use school name variable instead of skipping school creation.</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>2ddc9dcad374af02f8837d5482bba9050898d85d</commitId><timestamp>1773832955000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update Slack Space link in README
</comment><date>2026-03-18 15:22:35 +0400</date><id>2ddc9dcad374af02f8837d5482bba9050898d85d</id><msg>Update Slack Space link in README</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>7228fdf9ee643ce0e84084d239ac640c5766ec1c</commitId><timestamp>1773837406000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test - updated maestro flows
</comment><date>2026-03-18 16:36:46 +0400</date><id>7228fdf9ee643ce0e84084d239ac640c5766ec1c</id><msg>test - updated maestro flows</msg><path><editType>add</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>64a2d4db16d5854606753bd322cff9120556c606</commitId><timestamp>1773841435000</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 the homescreen
</comment><date>2026-03-18 19:13:55 +0530</date><id>64a2d4db16d5854606753bd322cff9120556c606</id><msg>fix the homescreen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>e179ba50e37b82ba30c8334eb41a1744535ad533</commitId><timestamp>1773917633000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor school self registration tidyup.
</comment><date>2026-03-19 14:53:53 +0400</date><id>e179ba50e37b82ba30c8334eb41a1744535ad533</id><msg>Minor school self registration tidyup.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>9aea8b7539b16f850a64faaf135807f59fb3d7ac</commitId><timestamp>1773919220000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor RegisterSchoolUseCase : Create common interface that can be used to keep parameter names, request/response objects, etc.
</comment><date>2026-03-19 15:20:20 +0400</date><id>9aea8b7539b16f850a64faaf135807f59fb3d7ac</id><msg>Refactor RegisterSchoolUseCase : Create common interface that can be used to keep parameter names, request/response objects, etc.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>c930eea4dc30645d6c87c6d79d58f3b12197f122</commitId><timestamp>1773931137000</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 the homescreen
</comment><date>2026-03-19 20:08:57 +0530</date><id>c930eea4dc30645d6c87c6d79d58f3b12197f122</id><msg>fix the homescreen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.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/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</affectedPath><commitId>85425a966905dabe7c0d7778848cfe7d31ca9dc2</commitId><timestamp>1773974447000</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 edit screen
</comment><date>2026-03-20 08:10:47 +0530</date><id>85425a966905dabe7c0d7778848cfe7d31ca9dc2</id><msg>added the edit screen</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.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/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-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/playlists/mapping/list/PlaylistListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>140bc7b90e0bad91f2949ec0cc57c16a98ba2140</commitId><timestamp>1774004016000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove validation logic that was either unnecessary or did not belong in the SchoolRegistrationRoute.
</comment><date>2026-03-20 14:53:36 +0400</date><id>140bc7b90e0bad91f2949ec0cc57c16a98ba2140</id><msg>Remove validation logic that was either unnecessary or did not belong in the SchoolRegistrationRoute.</msg><path><editType>add</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><commitId>80416b37c205bbd659cc341ad2a74374fbc8cbad</commitId><timestamp>1774009741000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes for subdomain based school self-registration.
</comment><date>2026-03-20 16:29:01 +0400</date><id>80416b37c205bbd659cc341ad2a74374fbc8cbad</id><msg>Fixes for subdomain based school self-registration.</msg><path><editType>edit</editType><file>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><commitId>46aa8fc3e9336ac3220bbd9f09518426f4abfcde</commitId><timestamp>1774015511000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix handling of icon image on AppLauncherscreen
</comment><date>2026-03-20 18:05:11 +0400</date><id>46aa8fc3e9336ac3220bbd9f09518426f4abfcde</id><msg>Fix handling of icon image on AppLauncherscreen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>eadd675d3a602c3f0dc1c0f43199ec080db0e4cc</commitId><timestamp>1774016365000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove white space changes from main.
</comment><date>2026-03-20 18:19:25 +0400</date><id>eadd675d3a602c3f0dc1c0f43199ec080db0e4cc</id><msg>Remove white space changes from main.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>e1948045f432f4c117218b2a2783dd0e231a8a7e</commitId><timestamp>1774019009000</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-03-20 19:03:29 +0400</date><id>e1948045f432f4c117218b2a2783dd0e231a8a7e</id><msg>Bump version.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><commitId>d39b8f304885673e1173981a3ccc907265f84725</commitId><timestamp>1774102711000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial Xapi Statement serialization model and test.
</comment><date>2026-03-21 18:18:31 +0400</date><id>d39b8f304885673e1173981a3ccc907265f84725</id><msg>Initial Xapi Statement serialization model and test.</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt</affectedPath><commitId>06c8e1c5b1b28c3d76e5d4a0b44e8319ba1352f5</commitId><timestamp>1774167264000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiStatement property types to use Instant and Duration where appr
</comment><date>2026-03-22 12:14:24 +0400</date><id>06c8e1c5b1b28c3d76e5d4a0b44e8319ba1352f5</id><msg>Update XapiStatement property types to use Instant and Duration where appr</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><commitId>49578779969312d3e8855c1be1fe32548c3dd428</commitId><timestamp>1774186955000</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 Xapi models into local db entities.
</comment><date>2026-03-22 17:42:35 +0400</date><id>49578779969312d3e8855c1be1fe32548c3dd428</id><msg>Initial implementation of converting Xapi models into local db entities.</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</affectedPath><commitId>5b204dec35a1229d6a11b97b643523c240e001ed</commitId><timestamp>1774187609000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor tidyup of typing.
</comment><date>2026-03-22 17:53:29 +0400</date><id>5b204dec35a1229d6a11b97b643523c240e001ed</id><msg>Minor tidyup of typing.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt</affectedPath><commitId>fa05f5c19f73b0ed9302033a4598116e73a8edb8</commitId><timestamp>1774246056000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add StoreActivitiesUseCase and requirements.
</comment><date>2026-03-23 10:07:36 +0400</date><id>fa05f5c19f73b0ed9302033a4598116e73a8edb8</id><msg>Add StoreActivitiesUseCase and requirements.</msg><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>263821cc27ab97df3024c5318d2f31052bf746a1</commitId><timestamp>1774246743000</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 share screen
</comment><date>2026-03-23 11:49:03 +0530</date><id>263821cc27ab97df3024c5318d2f31052bf746a1</id><msg>add share screen</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/AppNavHost.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><commitId>e94a382e15395946fb9160fabf4c370577df44b5</commitId><timestamp>1774262386000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial commit of a version of XapiStatementDataSourceDb.kt that compiles.
</comment><date>2026-03-23 14:39:46 +0400</date><id>e94a382e15395946fb9160fabf4c370577df44b5</id><msg>Initial commit of a version of XapiStatementDataSourceDb.kt that compiles.</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/CreatePlaylistShareLinkUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>cc00308dfdfbd09db9f346bf4d8ea49ec508de67</commitId><timestamp>1774323572000</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 Playlist share screen
</comment><date>2026-03-24 09:09:32 +0530</date><id>cc00308dfdfbd09db9f346bf4d8ea49ec508de67</id><msg>fix Playlist share screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.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/list/LearningUnitListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/CreatePlaylistShareLinkUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><commitId>2037bc479fede5e569ed0a3b2131f466aff9609e</commitId><timestamp>1774327037000</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 releation link
</comment><date>2026-03-24 10:07:17 +0530</date><id>2037bc479fede5e569ed0a3b2131f466aff9609e</id><msg>added the releation link</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.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/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><commitId>e1b0c5da2beb1eae41bbb076c9efc5c458898d0e</commitId><timestamp>1774331388000</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 the build error
</comment><date>2026-03-24 11:19:48 +0530</date><id>e1b0c5da2beb1eae41bbb076c9efc5c458898d0e</id><msg>fix the build error</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.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/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>635519e5577887607af9cfccecfda0c4e8f42850</commitId><timestamp>1774358734000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md
</comment><date>2026-03-24 17:25:34 +0400</date><id>635519e5577887607af9cfccecfda0c4e8f42850</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</commitId><timestamp>1774359709000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create CONTRIBUTING.md
</comment><date>2026-03-24 17:41:49 +0400</date><id>bfa39b2a3c882f4d1a6bd38434113917aa9fd04f</id><msg>Create CONTRIBUTING.md</msg><path><editType>add</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>4d2d577c074261d46b7da9fd78869c41335c815b</commitId><timestamp>1774359812000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md to clarify contribution types

Expanded contribution guidelines to include non-coding contributions.
</comment><date>2026-03-24 17:43:32 +0400</date><id>4d2d577c074261d46b7da9fd78869c41335c815b</id><msg>Update CONTRIBUTING.md to clarify contribution types</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CODE_OF_CONDUCT.md</affectedPath><commitId>dbddedba8d033a04df559f19350ae22a6a3e5fe2</commitId><timestamp>1774372715000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add Contributor Covenant Code of Conduct

Added Contributor Covenant Code of Conduct to outline community standards and enforcement guidelines.
</comment><date>2026-03-24 21:18:35 +0400</date><id>dbddedba8d033a04df559f19350ae22a6a3e5fe2</id><msg>Add Contributor Covenant Code of Conduct</msg><path><editType>add</editType><file>CODE_OF_CONDUCT.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</commitId><timestamp>1774373152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:25:52 +0400</date><id>255c9ea9b8c73cd3984a3a39fa98bfd76a5f0be3</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</commitId><timestamp>1774374472000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Revise CONTRIBUTING.md
</comment><date>2026-03-24 21:47:52 +0400</date><id>66d6c3acce0f2f9e6d67ee69a50ed0052135ea6b</id><msg>Revise CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</commitId><timestamp>1774378557000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add issue template for app catalog requests
</comment><date>2026-03-24 22:55:57 +0400</date><id>3adb525ecee9881eeecb0701badac5cb1dfa4fb8</id><msg>Add issue template for app catalog requests</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>d41eee02111a434cd28e8aaf46ec80aca4d17252</commitId><timestamp>1774378654000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 22:57:34 +0400</date><id>d41eee02111a434cd28e8aaf46ec80aca4d17252</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/localization.MD</affectedPath><commitId>1436b71a08c919402daf54676335d6f762ceeaf2</commitId><timestamp>1774381716000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Create localization.MD
</comment><date>2026-03-24 23:48:36 +0400</date><id>1436b71a08c919402daf54676335d6f762ceeaf2</id><msg>Create localization.MD</msg><path><editType>add</editType><file>.github/ISSUE_TEMPLATE/localization.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</commitId><timestamp>1774381915000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:51:55 +0400</date><id>bef105b18bfdc9b0a6f50b71a583e255dcd24b32</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>508d677cb32637726a803e6a92bae4ad3b3fac34</commitId><timestamp>1774382049000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CONTRIBUTING.md
</comment><date>2026-03-24 23:54:09 +0400</date><id>508d677cb32637726a803e6a92bae4ad3b3fac34</id><msg>Update CONTRIBUTING.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CONTRIBUTING.md</affectedPath><commitId>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</commitId><timestamp>1774382305000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update contributing.md
</comment><date>2026-03-24 23:58:25 +0400</date><id>1abbff4ce9a48a56e39ac1aaaceabede35dc9ea2</id><msg>Update contributing.md</msg><path><editType>edit</editType><file>CONTRIBUTING.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</commitId><timestamp>1774382402000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add contributing guidelines to README

Added a contributing section to the README to encourage community involvement.
</comment><date>2026-03-25 00:00:02 +0400</date><id>1c61153609b7b0f4f77fd75a7385ac22fe62fc2c</id><msg>Add contributing guidelines to README</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</commitId><timestamp>1774382441000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Fix link formatting in README.md
</comment><date>2026-03-25 00:00:41 +0400</date><id>d0828308512c5fe7bc10a3e0fe7180c0e71dfb37</id><msg>Fix link formatting in README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>8ec867d48c5d044950ba57ca8d95635abcd5eab7</commitId><timestamp>1774407164000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>update `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to include Home navigation and verify Playlists visibility
</comment><date>2026-03-25 06:52:44 +0400</date><id>8ec867d48c5d044950ba57ca8d95635abcd5eab7</id><msg>update `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to include Home navigation and verify Playlists visibility</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>88e4dba3f10f19b75c688850e23ccec2bfe3da3f</commitId><timestamp>1774425574000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>update `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to include Home navigation and verify Playlists visibility
</comment><date>2026-03-25 11:59:34 +0400</date><id>88e4dba3f10f19b75c688850e23ccec2bfe3da3f</id><msg>update `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to include Home navigation and verify Playlists visibility</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>ec5adb2e9cf84c581896e392bca250f73bdaa32c</commitId><timestamp>1774436063000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flows for user and app management
</comment><date>2026-03-25 14:54:23 +0400</date><id>ec5adb2e9cf84c581896e392bca250f73bdaa32c</id><msg>Update Maestro test flows for user and app management</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>d856a57d1a0cbac59cc379b891aa89043a690235</commitId><timestamp>1774438771000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flows to reflect UI change from "Apps" to "Home" title text
</comment><date>2026-03-25 15:39:31 +0400</date><id>d856a57d1a0cbac59cc379b891aa89043a690235</id><msg>Update Maestro test flows to reflect UI change from "Apps" to "Home" title text</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_005_add_school_self_registration_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>7bb4dd1529b6c4c34438035e21aeb1989de5e1e6</commitId><timestamp>1774438933000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to match UI text change for playlist creation.
</comment><date>2026-03-25 15:42:13 +0400</date><id>7bb4dd1529b6c4c34438035e21aeb1989de5e1e6</id><msg>Updated `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to match UI text change for playlist creation.</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><commitId>d29cb262b304057688bda325188896e9f1572ad0</commitId><timestamp>1774444646000</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 test for "home" and added the id
</comment><date>2026-03-25 18:47:26 +0530</date><id>d29cb262b304057688bda325188896e9f1572ad0</id><msg>fix test for "home" and added the id</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>fa64b7437e81aede55693575dd2b6b8a00a7f195</commitId><timestamp>1774448363000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update and refine Maestro end-to-end test flows for user assignments and playlists
</comment><date>2026-03-25 18:19:23 +0400</date><id>fa64b7437e81aede55693575dd2b6b8a00a7f195</id><msg>Update and refine Maestro end-to-end test flows for user assignments and playlists</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_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-shared/src/commonMain/composeResources/values/strings.xml</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/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>b5f453d555913a41674a72dc9db4c5202c126dcc</commitId><timestamp>1774520442000</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 the code
</comment><date>2026-03-26 15:50:42 +0530</date><id>b5f453d555913a41674a72dc9db4c5202c126dcc</id><msg>fix the code</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.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/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>dfbb11fe8266866c03db6bd38615617fcaf00c48</commitId><timestamp>1774530971000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>implement playlist selection logic and improve validation in PlaylistEdit

- Implement selection logic in `LearningUnitListViewModel` to allow picking specific navigation items (e.g., Grades) for playlists.
- Update `LearningUnitListScreen` to highlight selected navigation items and disable the "Select Playlist" button until a selection is made.
- Refactor `PlaylistEditViewModel` to use `UiText` for title validation errors and display a "required field" message.
- Update UI labels and strings, changing "Lesson/assessment" to "Task" and adding required field indicators.
- Adjust Maestro test flow to reflect updated navigation and UI labels.
</comment><date>2026-03-26 18:46:11 +0530</date><id>dfbb11fe8266866c03db6bd38615617fcaf00c48</id><msg>implement playlist selection logic and improve validation in PlaylistEdit</msg><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/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.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-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.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>8b2e2a825e6d37ecef707b0dba3d3863d849bf0f</commitId><timestamp>1774533712000</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 the test
</comment><date>2026-03-26 19:31:52 +0530</date><id>8b2e2a825e6d37ecef707b0dba3d3863d849bf0f</id><msg>fix the 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-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><commitId>f7d30dc821ed2fca00fd73ea0759644a7b8a20eb</commitId><timestamp>1774534177000</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 labels in AssignmentEditScreen
</comment><date>2026-03-26 19:39:37 +0530</date><id>f7d30dc821ed2fca00fd73ea0759644a7b8a20eb</id><msg>update labels in AssignmentEditScreen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>48c4c8d4501f3ee4c0672c15c2cac286db2d33ef</commitId><timestamp>1774539154000</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 labels in AssignmentEditScreen
</comment><date>2026-03-26 21:02:34 +0530</date><id>48c4c8d4501f3ee4c0672c15c2cac286db2d33ef</id><msg>update labels in AssignmentEditScreen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>8083d5a443274b140ea22ef9b2ebf350589f3a00</commitId><timestamp>1774544379000</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 the assignment to follow the flow.
</comment><date>2026-03-26 22:29:39 +0530</date><id>8083d5a443274b140ea22ef9b2ebf350589f3a00</id><msg>fix the assignment to follow the flow.</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>c4fa61370719913d8c6e1b40c63dec00d3da3c7f</commitId><timestamp>1774579892000</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 titles in respect-ds and adjust Maestro test assertions
</comment><date>2026-03-27 08:21:32 +0530</date><id>c4fa61370719913d8c6e1b40c63dec00d3da3c7f</id><msg>update titles in respect-ds and adjust Maestro test assertions</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</file></path><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</affectedPath><commitId>198e19d89322723e32e41d5df63ee470857c34e6</commitId><timestamp>1774588069000</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 the flow.
</comment><date>2026-03-27 10:37:49 +0530</date><id>198e19d89322723e32e41d5df63ee470857c34e6</id><msg>fix the flow.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>29c0b7270b53a708c924007572ad6b11c41cd724</commitId><timestamp>1774591339000</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 the flow.
</comment><date>2026-03-27 11:32:19 +0530</date><id>29c0b7270b53a708c924007572ad6b11c41cd724</id><msg>fix the flow.</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>35702c3d6796269401935e7a0356bcf463250e9c</commitId><timestamp>1774593135000</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 the flow.
</comment><date>2026-03-27 12:02:15 +0530</date><id>35702c3d6796269401935e7a0356bcf463250e9c</id><msg>fix the flow.</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>c020b51fdd3557389cfc0524594c1e0055581603</commitId><timestamp>1774601800000</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 learning unit selection and playlist editing.

- Update Maestro test flows for improved playlist and section assertions.
- Refactor `LearningUnitListScreen` to simplify multi-select UI and improve bottom button logic for playlist selection.
- Update `LearningUnitListViewModel` to handle playlist picking mode, supporting `ReadiumLink` results and preventing multi-select of publications during playlist selection.
- Improve `PlaylistEditViewModel` to correctly resolve playlist titles and navigation links when adding items to sections.
- Refine section type detection in `PlaylistEditScreen` to properly distinguish between navigation and publication sections.
- Remove redundant app bar state restoration calls in `PlaylistEditScreen`.
</comment><date>2026-03-27 14:26:40 +0530</date><id>c020b51fdd3557389cfc0524594c1e0055581603</id><msg>Refactor learning unit selection and playlist editing.</msg><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-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/playlists/mapping/edit/PlaylistEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.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_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>a3f4e5f74644f1d9d9bb1b91d0640729091e49a0</commitId><timestamp>1774604390000</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 onClickAssignSection to support optional indices and replace exceptions with early returns.
</comment><date>2026-03-27 15:09:50 +0530</date><id>a3f4e5f74644f1d9d9bb1b91d0640729091e49a0</id><msg>Refactor onClickAssignSection to support optional indices and replace exceptions with early returns.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>6635c3829a71b25306606edaf5a009aafe606080</commitId><timestamp>1774604621000</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 onClickAssignSection to support optional indices and replace exceptions with early returns.
</comment><date>2026-03-27 15:13:41 +0530</date><id>6635c3829a71b25306606edaf5a009aafe606080</id><msg>Refactor onClickAssignSection to support optional indices and replace exceptions with early returns.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>2047444347fcccefe9b35e34b80641ad6f794e52</commitId><timestamp>1774609080000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Assignment support
</comment><date>2026-03-27 16:28:00 +0530</date><id>2047444347fcccefe9b35e34b80641ad6f794e52</id><msg>Assignment support</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.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-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>ffb2b1df0be25f4c733b758c84f1eecabe3fbfa3</commitId><timestamp>1774610164000</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 assignment navigation
</comment><date>2026-03-27 16:46:04 +0530</date><id>ffb2b1df0be25f4c733b758c84f1eecabe3fbfa3</id><msg>fix assignment navigation</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>3fe851221009338b67708e32a6e116de489cfb0b</commitId><timestamp>1774613727000</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 maestro test flow and fix element IDs
</comment><date>2026-03-27 17:45:27 +0530</date><id>3fe851221009338b67708e32a6e116de489cfb0b</id><msg>update maestro test flow and fix element IDs</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>35b286fe088742cb79ddaa32db5932359fb26038</commitId><timestamp>1774728753000</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 share
</comment><date>2026-03-29 01:42:33 +0530</date><id>35b286fe088742cb79ddaa32db5932359fb26038</id><msg>fix share</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>f9f0efa7bf52de1412f44f2c2c5e867b98909e5c</commitId><timestamp>1774764627000</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 assignmentedit
</comment><date>2026-03-29 11:40:27 +0530</date><id>f9f0efa7bf52de1412f44f2c2c5e867b98909e5c</id><msg>refactor assignmentedit</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</commitId><timestamp>1774776985000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix issue #209

Attempting to self-register a new school failed when URL is included in verified app links as per the Android Manifest.
</comment><date>2026-03-29 13:36:25 +0400</date><id>5e6b93f7cebe6c0a82390618f3bcbb3f1e044ff8</id><msg>Fix issue #209</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><commitId>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</commitId><timestamp>1774777246000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchCustomTabUseCase to use Url type.
</comment><date>2026-03-29 13:40:46 +0400</date><id>c86cd41b696bc6a2c81db3363dc0a0b2a4d30956</id><msg>Update LaunchCustomTabUseCase to use Url type.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>c20ab8c871ed3a46390d51d4b9db99d3108783e3</commitId><timestamp>1774778744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update default base catalog url.
</comment><date>2026-03-29 14:05:44 +0400</date><id>c20ab8c871ed3a46390d51d4b9db99d3108783e3</id><msg>Update default base catalog url.</msg><path><editType>edit</editType><file>respect-server/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-app-compose/build.gradle.kts</affectedPath><commitId>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</commitId><timestamp>1774789982000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version number.
</comment><date>2026-03-29 17:13:02 +0400</date><id>4ef8e0427f0d9ce3e869054aab57fde1d697ce84</id><msg>Bump version number.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>4669e4ff928fd37c382a0d4bdc4b1a00789a73b9</commitId><timestamp>1774839194000</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 assignment navigation
</comment><date>2026-03-30 08:23:14 +0530</date><id>4669e4ff928fd37c382a0d4bdc4b1a00789a73b9</id><msg>fix assignment navigation</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>650ef92d057fd7233e884749b066598e807fa43a</commitId><timestamp>1774845461000</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 maestro test flow to hide keyboard
</comment><date>2026-03-30 10:07:41 +0530</date><id>650ef92d057fd7233e884749b066598e807fa43a</id><msg>update maestro test flow to hide keyboard</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><commitId>090a371f5fa74341f39dfda2cce23f3cadfb835a</commitId><timestamp>1774878926000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update StatementEntities on XapiStatemenTAdapter to follow the same pattern as other adapter data classes.
</comment><date>2026-03-30 17:55:26 +0400</date><id>090a371f5fa74341f39dfda2cce23f3cadfb835a</id><msg>Update StatementEntities on XapiStatemenTAdapter to follow the same pattern as other adapter data classes.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><commitId>cab7d656f7ba475eb909571f04948e7ed27b4b32</commitId><timestamp>1774899397000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Adapter to convert from Xapi Statement entities into
</comment><date>2026-03-30 23:36:37 +0400</date><id>cab7d656f7ba475eb909571f04948e7ed27b4b32</id><msg>Adapter to convert from Xapi Statement entities into</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.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/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</commitId><timestamp>1774955089000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add confirmation feedback guideline for user actions

Added guideline for user action confirmation feedback.
</comment><date>2026-03-31 15:04:49 +0400</date><id>65b57bc675618aadff7f1cb7ce02a1b8f343b28c</id><msg>Add confirmation feedback guideline for user actions</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/GetActiveUsernameUseCase.kt</affectedPath><commitId>e8e991241066679204db500e38e4187b1ad7011d</commitId><timestamp>1775023507000</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 GetActiveUsernameUseCase and refactor Playlist handling
</comment><date>2026-04-01 11:35:07 +0530</date><id>e8e991241066679204db500e38e4187b1ad7011d</id><msg>Add GetActiveUsernameUseCase and refactor Playlist handling</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.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/view/playlists/mapping/list/PlaylistListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/GetActiveUsernameUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt</affectedPath><commitId>fad79fe5b4c098582d8cd46f97bf59fdfe2aa89d</commitId><timestamp>1775072530000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements to storing xapi activity in the database. Introduce enums to replace integer flags on room entities.
</comment><date>2026-04-01 23:42:10 +0400</date><id>fad79fe5b4c098582d8cd46f97bf59fdfe2aa89d</id><msg>Improvements to storing xapi activity in the database. Introduce enums to replace integer flags on room entities.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>9124cfae27641662a050276d7263c96e7c5afacb</commitId><timestamp>1775114363000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements for XapiActivity database storage: use enum for interaction type.
</comment><date>2026-04-02 11:19:23 +0400</date><id>9124cfae27641662a050276d7263c96e7c5afacb</id><msg>Improvements for XapiActivity database storage: use enum for interaction type.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt</affectedPath><commitId>a9093197b02ba4482ff7724cee52ae075aac0f2f</commitId><timestamp>1775122281000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Xapi Statement and Activity storage: work in progress.

Initial implementation of StatementEntities toModel function that can handle an Activity, sub statement, statement ref, or actor.
</comment><date>2026-04-02 13:31:21 +0400</date><id>a9093197b02ba4482ff7724cee52ae075aac0f2f</id><msg>Xapi Statement and Activity storage: work in progress.</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><commitId>abc7088eee293f837c41ee15896c1474c8c3ff61</commitId><timestamp>1775126753000</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 PlaylistListViewModel
</comment><date>2026-04-02 16:15:53 +0530</date><id>abc7088eee293f837c41ee15896c1474c8c3ff61</id><msg>Refactor PlaylistListViewModel</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-lib-test-resources/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/README.md</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><commitId>20fed7dbd6f2befd5c51281bef91947274d7983f</commitId><timestamp>1775206648000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor sample statements into a single module.
</comment><date>2026-04-03 12:57:28 +0400</date><id>20fed7dbd6f2befd5c51281bef91947274d7983f</id><msg>Refactor sample statements into a single module.</msg><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/README.md</file></path><path><editType>add</editType><file>respect-lib-test-resources/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>DESIGN_GUIDELINES.md</affectedPath><commitId>f45fcd119a5923dae9e1585706f20b46577e45e2</commitId><timestamp>1775461032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update design guidelines for screen inclusion

Clarified guidelines for including existing screens in prototypes.
</comment><date>2026-04-06 11:37:12 +0400</date><id>f45fcd119a5923dae9e1585706f20b46577e45e2</id><msg>Update design guidelines for screen inclusion</msg><path><editType>edit</editType><file>DESIGN_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>719c336575b54c0e1ce64b7c522ff2adbe5e8e93</commitId><timestamp>1775485177000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update handling of sample statements.
Add a JsonTransformingSerializer that handles the difference between a Statement and a SubStatement.
Improve handling of empty/null properties serializing to/from the database.
</comment><date>2026-04-06 18:19:37 +0400</date><id>719c336575b54c0e1ce64b7c522ff2adbe5e8e93</id><msg>Update handling of sample statements.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>2c586ab50c082b76f522114e26054c62fffb87e3</commitId><timestamp>1775551714000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement assertions to check proper serialization of Xapi Activity.
</comment><date>2026-04-07 12:48:34 +0400</date><id>2c586ab50c082b76f522114e26054c62fffb87e3</id><msg>Implement assertions to check proper serialization of Xapi Activity.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><commitId>3d6aa8c0591cc0346e544ce6a462192aa8a86b93</commitId><timestamp>1775552163000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add Xapi assertions to validate expected/actual statement object.
</comment><date>2026-04-07 12:56:03 +0400</date><id>3d6aa8c0591cc0346e544ce6a462192aa8a86b93</id><msg>Add Xapi assertions to validate expected/actual statement object.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>24f03b6f0a8014960ad847a7a30c6713872a17e2</commitId><timestamp>1775672232000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Further improvements to converting statements to/from entities and assertions
</comment><date>2026-04-08 22:17:12 +0400</date><id>24f03b6f0a8014960ad847a7a30c6713872a17e2</id><msg>Further improvements to converting statements to/from entities and assertions</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt</affectedPath><commitId>20233ca2517df98b1a75cada5f9e57694471186c</commitId><timestamp>1775727605000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>xAPI entity improvements
a) Update Actor entity to use an enum for Group / Agent type
b) Update StatementContextActivityJoin to use Enum for type

Remove some obsolete properties from StatementContextActivityJoin
</comment><date>2026-04-09 13:40:05 +0400</date><id>20233ca2517df98b1a75cada5f9e57694471186c</id><msg>xAPI entity improvements</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</affectedPath><commitId>68931248838fe00fbacefbdb571ad92ce0d89403</commitId><timestamp>1775743406000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements to handling activity entities conversion.
</comment><date>2026-04-09 18:03:26 +0400</date><id>68931248838fe00fbacefbdb571ad92ce0d89403</id><msg>Improvements to handling activity entities conversion.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><commitId>923abf9c29155517aa87f7e95942a75af4601400</commitId><timestamp>1775827290000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements to handling statement storage to/from entities.

Separate out to/from entities for Activity, Verb, and Actor, and remove them from the StatementEntities class.

This makes it far more elegant to merge data correctly where one statement refers to the same actor, activity, or verb more than once.
</comment><date>2026-04-10 17:21:30 +0400</date><id>923abf9c29155517aa87f7e95942a75af4601400</id><msg>Improvements to handling statement storage to/from entities.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/Externallinkeditviewmodel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>a8ec34eb992ca5f545778899c7b8c94e1deaeb31</commitId><timestamp>1776244733000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>initial commit
</comment><date>2026-04-15 14:48:53 +0530</date><id>a8ec34eb992ca5f545778899c7b8c94e1deaeb31</id><msg>initial commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/Externallinkeditviewmodel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.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-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>43987f51e37af59416d7fe5187061de750f13e52</commitId><timestamp>1776412611000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve handling serialization/deserialization of xapi activities and actors
</comment><date>2026-04-17 11:56:51 +0400</date><id>43987f51e37af59416d7fe5187061de750f13e52</id><msg>Improve handling serialization/deserialization of xapi activities and actors</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.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/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><commitId>eafa8bfb829d75f3b18d68abb716d9c00f537fca</commitId><timestamp>1776418008000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Handle serialization/deserialization and tests for statement context activities.
</comment><date>2026-04-17 13:26:48 +0400</date><id>eafa8bfb829d75f3b18d68abb716d9c00f537fca</id><msg>Handle serialization/deserialization and tests for statement context activities.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.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/playlists/mapping/edit/Externallinkeditviewmodel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/cover.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/cover.png</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>0a3ffb13d52eba840ce9e6adbd53e1d87f2ba741</commitId><timestamp>1776423606000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>commit
</comment><date>2026-04-17 16:30:06 +0530</date><id>0a3ffb13d52eba840ce9e6adbd53e1d87f2ba741</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/Externallinkeditviewmodel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/cover.png</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/cover.png</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-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>6e3f531da23c5c70a5236dbfa75c142dad8dbbad</commitId><timestamp>1776429801000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow `002_user_add_apps_playlists_bookmarks_test.yaml` to include testing for adding external links to playlists and clean up unused assertions.
</comment><date>2026-04-17 16:43:21 +0400</date><id>6e3f531da23c5c70a5236dbfa75c142dad8dbbad</id><msg>Update Maestro flow `002_user_add_apps_playlists_bookmarks_test.yaml` to include testing for adding external links to playlists and clean up unused assertions.</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><commitId>ef3dee9797ea07f51f6317fe69aca70995ff1394</commitId><timestamp>1776599161000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements to handling storing / updating Xapi Activities.
</comment><date>2026-04-19 15:46:01 +0400</date><id>ef3dee9797ea07f51f6317fe69aca70995ff1394</id><msg>Improvements to handling storing / updating Xapi Activities.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.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/school/xapi/XapiStatementDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>f637c64525076dd0b3155a208063eb628b1e4f83</commitId><timestamp>1776606100000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix handling of last modified time for XapiActivity db datasource.
Add XapiActorDataSourceDb  initial implementation
</comment><date>2026-04-19 17:41:40 +0400</date><id>f637c64525076dd0b3155a208063eb628b1e4f83</id><msg>Fix handling of last modified time for XapiActivity db datasource.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentFilter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>58afb866e5f7690bd0bbb7fac011d7722d0b6a2f</commitId><timestamp>1776667542000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>initial commit
</comment><date>2026-04-20 12:15:42 +0530</date><id>58afb866e5f7690bd0bbb7fac011d7722d0b6a2f</id><msg>initial commit</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentFilter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><commitId>f940d198cea0d4e4d2cc02a4e82292d55020f0d1</commitId><timestamp>1776669197000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>initial commit
</comment><date>2026-04-20 12:43:17 +0530</date><id>f940d198cea0d4e4d2cc02a4e82292d55020f0d1</id><msg>initial commit</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><commitId>6b5c22c0a6c1c0725992ec0f599a3677d03b1d51</commitId><timestamp>1776669280000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>initial commit
</comment><date>2026-04-20 12:44:40 +0530</date><id>6b5c22c0a6c1c0725992ec0f599a3677d03b1d51</id><msg>initial commit</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</affectedPath><commitId>cba2620c0b3c87e41f4d62db3743930a2456b538</commitId><timestamp>1776675650000</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 statements from database entities back to the model.
</comment><date>2026-04-20 13:00:50 +0400</date><id>cba2620c0b3c87e41f4d62db3743930a2456b538</id><msg>Initial implementation of converting statements from database entities back to the model.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.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>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><commitId>875f1ccf73e58d07d2fcd2b1217698c1e026cde8</commitId><timestamp>1776678874000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress implementation of deserializing statements from the database.
</comment><date>2026-04-20 13:54:34 +0400</date><id>875f1ccf73e58d07d2fcd2b1217698c1e026cde8</id><msg>Work in progress implementation of deserializing statements from the database.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><commitId>370a20da48e132d8470e0585437104c398593af5</commitId><timestamp>1776687715000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiStatementDataSourceDbTest to use new database for each example statement.

Some activities have the same id IRI. In this case as per the xAPI spec the canonical definition will not be updated.
</comment><date>2026-04-20 16:21:55 +0400</date><id>370a20da48e132d8470e0585437104c398593af5</id><msg>Update XapiStatementDataSourceDbTest to use new database for each example statement.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><affectedPath>.maestro/flows/subflows/create_account_for_class_member.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</affectedPath><commitId>fd3011427f02341c1e493362ec416de686be5846</commitId><timestamp>1776732160000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Refactor and modularize Maestro E2E test flows for admin and class management.
</comment><date>2026-04-21 04:42:40 +0400</date><id>fd3011427f02341c1e493362ec416de686be5846</id><msg>Refactor and modularize Maestro E2E test flows for admin and class management.</msg><path><editType>add</editType><file>.maestro/flows/subflows/admin_add_class_with_members.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/create_account_for_class_member.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</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>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/subflows/admin_add_app_and_teacher.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>074a766439e91d68f94673691403310dafc7f59d</commitId><timestamp>1776755045000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Handle context activity joins for substatement.
</comment><date>2026-04-21 11:04:05 +0400</date><id>074a766439e91d68f94673691403310dafc7f59d</id><msg>Handle context activity joins for substatement.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</affectedPath><commitId>ee09dc9bb6c568bf3173ed1df93da392f508c28f</commitId><timestamp>1776758744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Standardize Xapi class names in datalayer-db
</comment><date>2026-04-21 12:05:44 +0400</date><id>ee09dc9bb6c568bf3173ed1df93da392f508c28f</id><msg>Standardize Xapi class names in datalayer-db</msg><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.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>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>871718428513a5c51640ba6afc5fcd998e05b7c5</commitId><timestamp>1776761526000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Implement ExtractWebPageMetadataUseCaseAndroid for extracting metadata from web pages
</comment><date>2026-04-21 14:22:06 +0530</date><id>871718428513a5c51640ba6afc5fcd998e05b7c5</id><msg>Implement ExtractWebPageMetadataUseCaseAndroid for extracting metadata from web pages</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</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/externallink/ExtractWebPageMetadataUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>cf1ccc5dea71eb1226cf25117715e9d5046cda22</commitId><timestamp>1776762291000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update assignment deatils screen with student progression section
</comment><date>2026-04-21 14:34:51 +0530</date><id>cf1ccc5dea71eb1226cf25117715e9d5046cda22</id><msg>update assignment deatils screen with student progression section</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.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/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.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-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><commitId>537c910399340557942ca4d5ade8af4a9a53c089</commitId><timestamp>1776762377000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement Xapi Statement search by agent and related agents.
</comment><date>2026-04-21 13:06:17 +0400</date><id>537c910399340557942ca4d5ade8af4a9a53c089</id><msg>Implement Xapi Statement search by agent and related agents.</msg><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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>56c008c96283615c916cd62cdd1e98501b10342c</commitId><timestamp>1776763639000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support for since/until search in XapiStatementDataSourceDb
</comment><date>2026-04-21 13:27:19 +0400</date><id>56c008c96283615c916cd62cdd1e98501b10342c</id><msg>Add support for since/until search in XapiStatementDataSourceDb</msg><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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</affectedPath><commitId>622755b8a4abec3b58a617dcddb7689bdf0f5e4b</commitId><timestamp>1776764467000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move statements read into a transaction.
Add support for verb search in statements.
</comment><date>2026-04-21 13:41:07 +0400</date><id>622755b8a4abec3b58a617dcddb7689bdf0f5e4b</id><msg>Move statements read into a transaction.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><commitId>769cfa3070ed622d63675fa2c10e70604bd83bbb</commitId><timestamp>1776765598000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix compilation of http and repo modules (still just using the local package).
</comment><date>2026-04-21 13:59:58 +0400</date><id>769cfa3070ed622d63675fa2c10e70604bd83bbb</id><msg>Fix compilation of http and repo modules (still just using the local package).</msg><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-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><commitId>87261eef0e86be96c23ba5c0338ce56c140bc97d</commitId><timestamp>1776831802000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>App crash fix
</comment><date>2026-04-22 09:53:22 +0530</date><id>87261eef0e86be96c23ba5c0338ce56c140bc97d</id><msg>App crash fix</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><commitId>a07bd9337d8d0c6004e5cee4986a8d195bfe71c8</commitId><timestamp>1776843019000</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 xapi statements search by activity uid.
</comment><date>2026-04-22 11:30:19 +0400</date><id>a07bd9337d8d0c6004e5cee4986a8d195bfe71c8</id><msg>Initial implementation of xapi statements search by activity uid.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_user_login_flow.yaml</affectedPath><commitId>4d2ce6ff938c097a0ee27dfd6e49a56d67b90bff</commitId><timestamp>1776843349000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flows for assignment management and class member creation.

- Move `003_admin_user_assigns_assignment_to_a_class_test.yaml` to `pending-flows`
</comment><date>2026-04-22 11:35:49 +0400</date><id>4d2ce6ff938c097a0ee27dfd6e49a56d67b90bff</id><msg>Update Maestro flows for assignment management and class member creation.</msg><path><editType>delete</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class_with_members.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/school_user_login_flow.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><commitId>0bfa6bf88174781dc081eb1b6c2a4fab53f7ae0a</commitId><timestamp>1776843449000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Include substatement, where present, in related activities search as per spec.
</comment><date>2026-04-22 11:37:29 +0400</date><id>0bfa6bf88174781dc081eb1b6c2a4fab53f7ae0a</id><msg>Include substatement, where present, in related activities search as per spec.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>0ea96448c81de6f8b2319f3cfc80a0b2db37301d</commitId><timestamp>1776843770000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>test: update field labels in Maestro assignment flow
</comment><date>2026-04-22 11:42:50 +0400</date><id>0ea96448c81de6f8b2319f3cfc80a0b2db37301d</id><msg>test: update field labels in Maestro assignment flow</msg><path><editType>edit</editType><file>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>a581ac7d223f14a4a2a4d4278ceed40059e06181</commitId><timestamp>1776844361000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support for order and limit in XapiStatementDataSourceDb
</comment><date>2026-04-22 11:52:41 +0400</date><id>a581ac7d223f14a4a2a4d4278ceed40059e06181</id><msg>Add support for order and limit in XapiStatementDataSourceDb</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmissionFile.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentProgressSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ErrorReport.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LeavingReason.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupAssignmentSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CacheLockJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLanguage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithDisplayDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTerms.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture2.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementReportData.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocationList.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithHolidayCalendarAndAndTerminology.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupWithMemberCount.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendarWithNumEntries.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobError.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SystemPermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryButtonModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryVersion.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UmAccount.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Language.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Schedule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth2.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ConnectivityStatus.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocation.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Clazz.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UidAndLabel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryImportJob.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLog.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentWithAttemptSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemParentChildJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantAndName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonNameAndUid.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Holiday.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithLeavingReason.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Site.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupMember.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryContentCategoryJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AverageCourseAssignmentMark.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecordWithPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LangUidAndName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJob.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLangName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrant.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSession.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithAttemptsSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryParentChildJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTermsWithLanguage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazz.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecord.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzInvite.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskey.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Message.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StudentResult.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendar.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ParentEnrolmentRequired.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Comments.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryStatementScoreProgress.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantWithName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithLanguage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJob.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementEntityAndDisplayDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgress.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/OfflineItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMember.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentRollUp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategory.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMarkWithPersonMarker.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazzAndAttendance.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterAndAllocations.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMark.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMemberAndName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategorySchema.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LanguageVariant.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithBlockAndLanguage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonUidAndPasswordHash.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithListDisplayDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAndDisplayDetail.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithAttemptsSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPost.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EntityConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ExternalAppPermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlockPicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSessionAndPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgressAndStatus.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroup.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Moment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupSet.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentCourseBlockAndSubmitterUid.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlock.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DownloadJobSizeInfo.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoinAndMinorPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithSessionsDisplay.kt</affectedPath><commitId>6efb69b4c59c14e40f53f5493c74c0dcb4d89d11</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>bring everything that is in lib-database from Ustad into Respect
</comment><date>2026-04-23 13:27:12 +0530</date><id>6efb69b4c59c14e40f53f5493c74c0dcb4d89d11</id><msg>bring everything that is in lib-database from Ustad into Respect</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ErrorReport.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementReportData.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DownloadJobSizeInfo.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLog.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EntityConstants.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoinAndMinorPerson.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentWithAttemptSummary.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryContentCategoryJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentProgressSummary.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Holiday.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMember.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategorySchema.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithPerson.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ExternalAppPermission.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithLanguage.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantAndName.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategory.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMarkWithPersonMarker.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/OfflineItem.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupAssignmentSummary.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryParentChildJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryImportJob.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Comments.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMemberAndName.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrant.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Schedule.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemParentChildJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithAttemptsSummary.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SystemPermission.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobError.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLangName.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignment.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth2.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture2.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendar.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazzAndAttendance.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupSet.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecord.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLanguage.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocation.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithHolidayCalendarAndAndTerminology.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ConnectivityStatus.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StudentResult.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UidAndLabel.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupMember.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecordWithPerson.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Moment.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobItem.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlockPicture.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Clazz.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPicture.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSession.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryStatementScoreProgress.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryVersion.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMark.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryButtonModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzInvite.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAndDisplayDetail.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolment.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPost.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Message.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonUidAndPasswordHash.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendarWithNumEntries.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentCourseBlockAndSubmitterUid.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Language.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ParentEnrolmentRequired.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskey.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterSummary.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJob.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupWithMemberCount.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithBlockAndLanguage.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTermsWithLanguage.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmissionFile.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LeavingReason.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CacheLockJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgressAndStatus.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterAndAllocations.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazz.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSessionAndPerson.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UmAccount.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LanguageVariant.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmission.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AverageCourseAssignmentMark.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlock.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithLeavingReason.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithAttemptsSummary.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Site.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTerms.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentRollUp.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePermission.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPicture.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LangUidAndName.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantWithName.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocationList.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroup.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithListDisplayDetails.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgress.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithSessionsDisplay.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonNameAndUid.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementEntityAndDisplayDetails.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithDisplayDetails.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJob.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt</affectedPath><commitId>c2d8d1da7141dfee1598f7c6cbb014f12465ee0a</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>code refactor
</comment><date>2026-04-23 13:27:12 +0530</date><id>c2d8d1da7141dfee1598f7c6cbb014f12465ee0a</id><msg>code refactor</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</affectedPath><commitId>b9e1ae7bf6f4cc0c87c446078d245cc7d5d82dbc</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add xapi related composites
</comment><date>2026-04-23 13:27:12 +0530</date><id>b9e1ae7bf6f4cc0c87c446078d245cc7d5d82dbc</id><msg>add xapi related composites</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmissionFile.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentProgressSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ErrorReport.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LeavingReason.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupAssignmentSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CacheLockJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLanguage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithDisplayDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTerms.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture2.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementReportData.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocationList.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithHolidayCalendarAndAndTerminology.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupWithMemberCount.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendarWithNumEntries.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobError.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SystemPermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryButtonModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UmAccount.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryVersion.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Language.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Schedule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth2.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ConnectivityStatus.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocation.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Clazz.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UidAndLabel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryImportJob.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLog.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentWithAttemptSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemParentChildJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantAndName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonNameAndUid.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Holiday.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithLeavingReason.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Site.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupMember.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryContentCategoryJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AverageCourseAssignmentMark.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecordWithPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LangUidAndName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJob.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLangName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrant.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSession.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithAttemptsSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryParentChildJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTermsWithLanguage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazz.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecord.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzInvite.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskey.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Message.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StudentResult.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ParentEnrolmentRequired.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendar.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Comments.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryStatementScoreProgress.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantWithName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithLanguage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJob.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementEntityAndDisplayDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgress.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/OfflineItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMember.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentRollUp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategory.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMarkWithPersonMarker.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazzAndAttendance.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterAndAllocations.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMark.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMemberAndName.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategorySchema.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LanguageVariant.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithBlockAndLanguage.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonUidAndPasswordHash.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithListDisplayDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAndDisplayDetail.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPost.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithAttemptsSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EntityConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ExternalAppPermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlockPicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSessionAndPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPicture.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgressAndStatus.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroup.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Moment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupSet.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentCourseBlockAndSubmitterUid.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlock.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoinAndMinorPerson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DownloadJobSizeInfo.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithSessionsDisplay.kt</affectedPath><commitId>0641ac773a1a5fd4ab2534ce4ab0a35bb33162e5</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>remove unwanted files
</comment><date>2026-04-23 13:27:12 +0530</date><id>0641ac773a1a5fd4ab2534ce4ab0a35bb33162e5</id><msg>remove unwanted files</msg><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgress.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecord.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentProgressSummary.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Message.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAndDisplayDetail.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EntityConstants.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMember.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ParentEnrolmentRequired.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterAndAllocations.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementReportData.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Schedule.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPost.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithSessionsDisplay.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryImportJob.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryButtonModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLangName.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePermission.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmissionFile.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ErrorReport.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithBlockAndLanguage.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth2.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantWithName.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterSummary.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoinAndMinorPerson.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LanguageVariant.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupMember.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecordWithPerson.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLog.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategory.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupSet.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrant.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLanguage.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobError.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazz.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJob.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlock.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Language.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithPerson.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocationList.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithLanguage.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMarkWithPersonMarker.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CacheLockJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UidAndLabel.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPicture.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UmAccount.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupAssignmentSummary.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupWithMemberCount.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/OfflineItem.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolment.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignment.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Moment.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendar.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJob.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Site.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DownloadJobSizeInfo.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantAndName.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobItem.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSessionAndPerson.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategorySchema.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMemberAndName.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPicture.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithDisplayDetails.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Comments.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryContentCategoryJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithAttemptsSummary.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemParentChildJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Holiday.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTerms.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentWithAttemptSummary.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocation.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroup.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ExternalAppPermission.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SystemPermission.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendarWithNumEntries.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture2.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmission.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ConnectivityStatus.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskey.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryParentChildJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentCourseBlockAndSubmitterUid.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlockPicture.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonUidAndPasswordHash.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonNameAndUid.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LangUidAndName.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgressAndStatus.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMark.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzInvite.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTermsWithLanguage.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithHolidayCalendarAndAndTerminology.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithAttemptsSummary.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LeavingReason.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithLeavingReason.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazzAndAttendance.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StudentResult.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSession.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementEntityAndDisplayDetails.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithListDisplayDetails.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AverageCourseAssignmentMark.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryVersion.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryStatementScoreProgress.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentRollUp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Clazz.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><commitId>e24bb8e32107c25d64be998804cd635ac5d01622</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Initial Xapi Statement serialization model and test.
</comment><date>2026-04-23 13:27:12 +0530</date><id>e24bb8e32107c25d64be998804cd635ac5d01622</id><msg>Initial Xapi Statement serialization model and test.</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt</affectedPath><commitId>09b899b4dc2ca12f7ecbb1c750308ee944968836</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Update XapiStatement property types to use Instant and Duration where appr
</comment><date>2026-04-23 13:27:12 +0530</date><id>09b899b4dc2ca12f7ecbb1c750308ee944968836</id><msg>Update XapiStatement property types to use Instant and Duration where appr</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</file></path><path><editType>add</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><commitId>453ab1b9d64d825708b359be94215fd020749fd8</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Initial implementation of converting Xapi models into local db entities.
</comment><date>2026-04-23 13:27:12 +0530</date><id>453ab1b9d64d825708b359be94215fd020749fd8</id><msg>Initial implementation of converting Xapi models into local db entities.</msg><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</affectedPath><commitId>df50e60c415bd2a3664627cc677115fd1de400e9</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Minor tidyup of typing.
</comment><date>2026-04-23 13:27:12 +0530</date><id>df50e60c415bd2a3664627cc677115fd1de400e9</id><msg>Minor tidyup of typing.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt</affectedPath><commitId>88fea28bbaa94f42314041c4f16d7c2f024ae0b9</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add StoreActivitiesUseCase and requirements.
</comment><date>2026-04-23 13:27:12 +0530</date><id>88fea28bbaa94f42314041c4f16d7c2f024ae0b9</id><msg>Add StoreActivitiesUseCase and requirements.</msg><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><commitId>69a5ab0125a2c765f0de4fdd162887716c996a08</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Initial commit of a version of XapiStatementDataSourceDb.kt that compiles.
</comment><date>2026-04-23 13:27:12 +0530</date><id>69a5ab0125a2c765f0de4fdd162887716c996a08</id><msg>Initial commit of a version of XapiStatementDataSourceDb.kt that compiles.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><commitId>279e800096fe123bf26664a9a28a80396431a74b</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Update StatementEntities on XapiStatemenTAdapter to follow the same pattern as other adapter data classes.
</comment><date>2026-04-23 13:27:12 +0530</date><id>279e800096fe123bf26664a9a28a80396431a74b</id><msg>Update StatementEntities on XapiStatemenTAdapter to follow the same pattern as other adapter data classes.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</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-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</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-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</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-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><commitId>6ac1c42ed748c19625ada8e94204216dd8962cf4</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Adapter to convert from Xapi Statement entities into
</comment><date>2026-04-23 13:27:12 +0530</date><id>6ac1c42ed748c19625ada8e94204216dd8962cf4</id><msg>Adapter to convert from Xapi Statement entities into</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt</affectedPath><commitId>a6b8217e0771cb7c737df7c5b1f2aa6144ea21a1</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Improvements to storing xapi activity in the database. Introduce enums to replace integer flags on room entities.
</comment><date>2026-04-23 13:27:12 +0530</date><id>a6b8217e0771cb7c737df7c5b1f2aa6144ea21a1</id><msg>Improvements to storing xapi activity in the database. Introduce enums to replace integer flags on room entities.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>275622f75a2226a6dc10ac4364fd5e668ab722ca</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Improvements for XapiActivity database storage: use enum for interaction type.
</comment><date>2026-04-23 13:27:12 +0530</date><id>275622f75a2226a6dc10ac4364fd5e668ab722ca</id><msg>Improvements for XapiActivity database storage: use enum for interaction type.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>d2f90efe33ab27951d2e7aba9be64c18fdb868a9</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Xapi Statement and Activity storage: work in progress.

Initial implementation of StatementEntities toModel function that can handle an Activity, sub statement, statement ref, or actor.
</comment><date>2026-04-23 13:27:12 +0530</date><id>d2f90efe33ab27951d2e7aba9be64c18fdb868a9</id><msg>Xapi Statement and Activity storage: work in progress.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-lib-test-resources/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-lib-test-resources/README.md</affectedPath><affectedPath>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><commitId>4516e95ffb547eabe485020ee4c87965c52d2731</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Refactor sample statements into a single module.
</comment><date>2026-04-23 13:27:12 +0530</date><id>4516e95ffb547eabe485020ee4c87965c52d2731</id><msg>Refactor sample statements into a single module.</msg><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/README.md</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>66f99b59a5bddc999e652a30e037babbb50c3e6c</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Update handling of sample statements.
Add a JsonTransformingSerializer that handles the difference between a Statement and a SubStatement.
Improve handling of empty/null properties serializing to/from the database.
</comment><date>2026-04-23 13:27:12 +0530</date><id>66f99b59a5bddc999e652a30e037babbb50c3e6c</id><msg>Update handling of sample statements.</msg><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</file></path><path><editType>edit</editType><file>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>fdff019b094bbb59e049b5e7de2a32c83d7bac4b</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Implement assertions to check proper serialization of Xapi Activity.
</comment><date>2026-04-23 13:27:12 +0530</date><id>fdff019b094bbb59e049b5e7de2a32c83d7bac4b</id><msg>Implement assertions to check proper serialization of Xapi Activity.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><commitId>9af48802f13b93ddb1d2c1c0bc475ab23cb4e42e</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add Xapi assertions to validate expected/actual statement object.
</comment><date>2026-04-23 13:27:12 +0530</date><id>9af48802f13b93ddb1d2c1c0bc475ab23cb4e42e</id><msg>Add Xapi assertions to validate expected/actual statement object.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><commitId>a90ad138e99c8b51954c2211950ec6903b4e2170</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Further improvements to converting statements to/from entities and assertions
</comment><date>2026-04-23 13:27:12 +0530</date><id>a90ad138e99c8b51954c2211950ec6903b4e2170</id><msg>Further improvements to converting statements to/from entities and assertions</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt</affectedPath><commitId>94e9fb88df51ae248e7b30ea4c761cec04d50cdc</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>xAPI entity improvements
a) Update Actor entity to use an enum for Group / Agent type
b) Update StatementContextActivityJoin to use Enum for type

Remove some obsolete properties from StatementContextActivityJoin
</comment><date>2026-04-23 13:27:12 +0530</date><id>94e9fb88df51ae248e7b30ea4c761cec04d50cdc</id><msg>xAPI entity improvements</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</affectedPath><commitId>107f83a051cfe9bc7f51bce73f2a34e0e7288516</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Improvements to handling activity entities conversion.
</comment><date>2026-04-23 13:27:12 +0530</date><id>107f83a051cfe9bc7f51bce73f2a34e0e7288516</id><msg>Improvements to handling activity entities conversion.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><commitId>ca7fcc19254a105e32932aecd9e6fc58bc1c3e94</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Improvements to handling statement storage to/from entities.

Separate out to/from entities for Activity, Verb, and Actor, and remove them from the StatementEntities class.

This makes it far more elegant to merge data correctly where one statement refers to the same actor, activity, or verb more than once.
</comment><date>2026-04-23 13:27:12 +0530</date><id>ca7fcc19254a105e32932aecd9e6fc58bc1c3e94</id><msg>Improvements to handling statement storage to/from entities.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><commitId>9a5df1e5e7eb15a9adcc7c5bf43cdfb0864f3b04</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Improve handling serialization/deserialization of xapi activities and actors
</comment><date>2026-04-23 13:27:12 +0530</date><id>9a5df1e5e7eb15a9adcc7c5bf43cdfb0864f3b04</id><msg>Improve handling serialization/deserialization of xapi activities and actors</msg><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/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><commitId>fddaa1923b8de229017c33a597b5db3af684bd9e</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Handle serialization/deserialization and tests for statement context activities.
</comment><date>2026-04-23 13:27:12 +0530</date><id>fddaa1923b8de229017c33a597b5db3af684bd9e</id><msg>Handle serialization/deserialization and tests for statement context activities.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</affectedPath><commitId>2912180a984ef9d87e621a93def7b1f8ef8c26e7</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Improvements to handling storing / updating Xapi Activities.
</comment><date>2026-04-23 13:27:12 +0530</date><id>2912180a984ef9d87e621a93def7b1f8ef8c26e7</id><msg>Improvements to handling storing / updating Xapi Activities.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.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/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.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-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>add</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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>26fa2bb263ac5e40255d5a3da51243985a156cd0</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Fix handling of last modified time for XapiActivity db datasource.
Add XapiActorDataSourceDb  initial implementation
</comment><date>2026-04-23 13:27:12 +0530</date><id>26fa2bb263ac5e40255d5a3da51243985a156cd0</id><msg>Fix handling of last modified time for XapiActivity db datasource.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</affectedPath><commitId>2dc83817e78da275c4276283e4ea13d5625fea38</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Initial implementation of converting statements from database entities back to the model.
</comment><date>2026-04-23 13:27:12 +0530</date><id>2dc83817e78da275c4276283e4ea13d5625fea38</id><msg>Initial implementation of converting statements from database entities back to the model.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><commitId>a6977fe513bbeb8e57e43d8aed61cf6dd20f3e56</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Work in progress implementation of deserializing statements from the database.
</comment><date>2026-04-23 13:27:12 +0530</date><id>a6977fe513bbeb8e57e43d8aed61cf6dd20f3e56</id><msg>Work in progress implementation of deserializing statements from the database.</msg><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><commitId>1e1fdf4684c00cf6cc5744e538faf90468817786</commitId><timestamp>1776931032000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Update XapiStatementDataSourceDbTest to use new database for each example statement.

Some activities have the same id IRI. In this case as per the xAPI spec the canonical definition will not be updated.
</comment><date>2026-04-23 13:27:12 +0530</date><id>1e1fdf4684c00cf6cc5744e538faf90468817786</id><msg>Update XapiStatementDataSourceDbTest to use new database for each example statement.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>12c348d75ad6ece0b78d4c1177ae6ac147ce88b2</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Handle context activity joins for substatement.
</comment><date>2026-04-23 13:27:13 +0530</date><id>12c348d75ad6ece0b78d4c1177ae6ac147ce88b2</id><msg>Handle context activity joins for substatement.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</affectedPath><commitId>452031825510d1c855440157b9357091d8678d7e</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Standardize Xapi class names in datalayer-db
</comment><date>2026-04-23 13:27:13 +0530</date><id>452031825510d1c855440157b9357091d8678d7e</id><msg>Standardize Xapi class names in datalayer-db</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.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>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><commitId>e1686f7c36bbc39d43fceb0a16391f16eba7384e</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Implement Xapi Statement search by agent and related agents.
</comment><date>2026-04-23 13:27:13 +0530</date><id>e1686f7c36bbc39d43fceb0a16391f16eba7384e</id><msg>Implement Xapi Statement search by agent and related agents.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>a7cff0e931727e16de953772af77431dcfd8828a</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add support for since/until search in XapiStatementDataSourceDb
</comment><date>2026-04-23 13:27:13 +0530</date><id>a7cff0e931727e16de953772af77431dcfd8828a</id><msg>Add support for since/until search in XapiStatementDataSourceDb</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</affectedPath><commitId>40fbbd10e7db5eac88f62c3d1fd695b8f66ceaf2</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Move statements read into a transaction.
Add support for verb search in statements.
</comment><date>2026-04-23 13:27:13 +0530</date><id>40fbbd10e7db5eac88f62c3d1fd695b8f66ceaf2</id><msg>Move statements read into a transaction.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.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></item><item _class='hudson.plugins.git.GitChangeSet'><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/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><commitId>3175dbc7e7f3423a9ddb188a6633829d53100fbe</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Fix compilation of http and repo modules (still just using the local package).
</comment><date>2026-04-23 13:27:13 +0530</date><id>3175dbc7e7f3423a9ddb188a6633829d53100fbe</id><msg>Fix compilation of http and repo modules (still just using the local package).</msg><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/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><commitId>a88a838cafa0e87e7f33319ae47b6cbffea804aa</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Initial implementation of xapi statements search by activity uid.
</comment><date>2026-04-23 13:27:13 +0530</date><id>a88a838cafa0e87e7f33319ae47b6cbffea804aa</id><msg>Initial implementation of xapi statements search by activity uid.</msg><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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><commitId>77cc91a8bb8b018bb04c1f540a0abc4666fc631b</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Include substatement, where present, in related activities search as per spec.
</comment><date>2026-04-23 13:27:13 +0530</date><id>77cc91a8bb8b018bb04c1f540a0abc4666fc631b</id><msg>Include substatement, where present, in related activities search as per spec.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>8cae57b5eb1de3c0e4a09c0e5a939c2a0e32289e</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add support for order and limit in XapiStatementDataSourceDb
</comment><date>2026-04-23 13:27:13 +0530</date><id>8cae57b5eb1de3c0e4a09c0e5a939c2a0e32289e</id><msg>Add support for order and limit in XapiStatementDataSourceDb</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.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></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>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>b1f8ac375f6522970093a1dc110a7072d37f35d9</commitId><timestamp>1776931033000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add student flow ui
</comment><date>2026-04-23 13:27:13 +0530</date><id>b1f8ac375f6522970093a1dc110a7072d37f35d9</id><msg>add student flow ui</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_XAPI.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>b3a27fc0ba48649e6669c0fbcfbf69bcd3419dbb</commitId><timestamp>1776936205000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add example statement for assignment completion
</comment><date>2026-04-23 13:23:25 +0400</date><id>b3a27fc0ba48649e6669c0fbcfbf69bcd3419dbb</id><msg>Add example statement for assignment completion</msg><path><editType>add</editType><file>README_XAPI.md</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt</affectedPath><commitId>dd9f97f0ffb0314be6380a84a682ab017b635621</commitId><timestamp>1776940450000</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 static description
</comment><date>2026-04-23 16:04:10 +0530</date><id>dd9f97f0ffb0314be6380a84a682ab017b635621</id><msg>Remove static description</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_XAPI.md</affectedPath><commitId>f8c6162ae45911de824fd0bcba104cc48f3159ef</commitId><timestamp>1776944264000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_XAPI.md
</comment><date>2026-04-23 15:37:44 +0400</date><id>f8c6162ae45911de824fd0bcba104cc48f3159ef</id><msg>Update README_XAPI.md</msg><path><editType>edit</editType><file>README_XAPI.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_XAPI.md</affectedPath><commitId>27da11553a5421f318ef4a53a4d1048a91eb4938</commitId><timestamp>1776944356000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix contextactivities typo on README_XAPI.md
</comment><date>2026-04-23 15:39:16 +0400</date><id>27da11553a5421f318ef4a53a4d1048a91eb4938</id><msg>Fix contextactivities typo on README_XAPI.md</msg><path><editType>edit</editType><file>README_XAPI.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_XAPI.md</affectedPath><commitId>19e11b86ff46af4010001a3eff5b27bee6c59351</commitId><timestamp>1776945541000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix contextactivities typo on README_XAPI.md
</comment><date>2026-04-23 15:59:01 +0400</date><id>19e11b86ff46af4010001a3eff5b27bee6c59351</id><msg>Fix contextactivities typo on README_XAPI.md</msg><path><editType>edit</editType><file>README_XAPI.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>09df43e8889d532745b48ff9d7dec2511a38c273</commitId><timestamp>1776955821000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow `002_user_add_apps_playlists_bookmarks_test.yaml` to include additional visibility assertions for lessons and sections within the Grade 1 playlist.
</comment><date>2026-04-23 18:50:21 +0400</date><id>09df43e8889d532745b48ff9d7dec2511a38c273</id><msg>Update Maestro flow `002_user_add_apps_playlists_bookmarks_test.yaml` to include additional visibility assertions for lessons and sections within the Grade 1 playlist.</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><commitId>072880fa5a3d46fc7db08dc2477a4c1a0edef32a</commitId><timestamp>1776965542000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>description fix
</comment><date>2026-04-23 23:02:22 +0530</date><id>072880fa5a3d46fc7db08dc2477a4c1a0edef32a</id><msg>description fix</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><commitId>d8c8adee0f36837299f3bce6a28abbedefacc837</commitId><timestamp>1777187899000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiStatementDataSourceDb: improve handling of sort. Remove obsolete fields from XapiStatementEntity. Update Xapi statement query to avoid fetching exact json for canonical and exact queries.
</comment><date>2026-04-26 11:18:19 +0400</date><id>d8c8adee0f36837299f3bce6a28abbedefacc837</id><msg>Update XapiStatementDataSourceDb: improve handling of sort. Remove obsolete fields from XapiStatementEntity. Update Xapi statement query to avoid fetching exact json for canonical and exact queries.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</affectedPath><commitId>437736ca178e563cb7579c56e467edb6e14728f5</commitId><timestamp>1777189554000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiStatementDataSource to test statements retrieved using both id and exact format.
</comment><date>2026-04-26 11:45:54 +0400</date><id>437736ca178e563cb7579c56e467edb6e14728f5</id><msg>Update XapiStatementDataSource to test statements retrieved using both id and exact format.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</affectedPath><commitId>952421dbd1ea142d4abf0c2dfc9134f8aecda72c</commitId><timestamp>1777194199000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support for id only format xapi statement results.
</comment><date>2026-04-26 13:03:19 +0400</date><id>952421dbd1ea142d4abf0c2dfc9134f8aecda72c</id><msg>Add support for id only format xapi statement results.</msg><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-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-lib-xapi-model/.gitignore</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-lib-xapi-model/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-lib-xapi-model/README.md</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</affectedPath><commitId>91b8a25775441f75a72b27e60d8c9e4b4b279248</commitId><timestamp>1777205261000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move xAPI model into its own module.
</comment><date>2026-04-26 16:07:41 +0400</date><id>91b8a25775441f75a72b27e60d8c9e4b4b279248</id><msg>Move xAPI model into its own module.</msg><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-model/.gitignore</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-model/README.md</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><commitId>455d2bf311c86cb16b2e04a6078e9242de401ec8</commitId><timestamp>1777207800000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update implementation after refactoring statementdatasource to match the xAPI spec names.
</comment><date>2026-04-26 16:50:00 +0400</date><id>455d2bf311c86cb16b2e04a6078e9242de401ec8</id><msg>Update implementation after refactoring statementdatasource to match the xAPI spec names.</msg><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer-http/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementResourceRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</affectedPath><commitId>e6a02d3e843209bd448b370b5a4aa21e6e267463</commitId><timestamp>1777210091000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor compilation fixes.
</comment><date>2026-04-26 17:28:11 +0400</date><id>e6a02d3e843209bd448b370b5a4aa21e6e267463</id><msg>Minor compilation fixes.</msg><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementResourceRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>d69440b5f38c231f20596ad54b7bd1f4cabbbe84</commitId><timestamp>1777274442000</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 clarify logging in as admin after adding school
</comment><date>2026-04-27 11:20:42 +0400</date><id>d69440b5f38c231f20596ad54b7bd1f4cabbbe84</id><msg>Update README.md</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-lib-xapi-model/.gitignore</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</affectedPath><affectedPath>respect-lib-xapi-model/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsParamsExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</affectedPath><affectedPath>respect-lib-xapi-model/README.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/.gitignore</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementResourceRoute.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-lib-xapi-core/README.md</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt</affectedPath><commitId>87d318afc6331984aae079c9c002027977a75c7f</commitId><timestamp>1777279758000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor XapiStatementsResource to match spec as closely as possible
</comment><date>2026-04-27 12:49:18 +0400</date><id>87d318afc6331984aae079c9c002027977a75c7f</id><msg>Refactor XapiStatementsResource to match spec as closely as possible</msg><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.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>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/README.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/.gitignore</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsParamsExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementResourceRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/README.md</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</affectedPath><commitId>b9b576d86598fcf470e28e0fa33d7c02f8ca511e</commitId><timestamp>1777342911000</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 metadata extraction
</comment><date>2026-04-28 07:51:51 +0530</date><id>b9b576d86598fcf470e28e0fa33d7c02f8ca511e</id><msg>fix metadata extraction</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</affectedPath><commitId>8e373d583d388fd92933666de91d3c24756e14b4</commitId><timestamp>1777383124000</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 metadata extraction remove manual string amnipulation
</comment><date>2026-04-28 19:02:04 +0530</date><id>8e373d583d388fd92933666de91d3c24756e14b4</id><msg>fix metadata extraction remove manual string amnipulation</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</affectedPath><commitId>f162f0f676db8a098b2db18355faeaa3b89663e6</commitId><timestamp>1777383842000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>documented the callbacks
</comment><date>2026-04-28 19:14:02 +0530</date><id>f162f0f676db8a098b2db18355faeaa3b89663e6</id><msg>documented the callbacks</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</affectedPath><commitId>ab12e17d6fb941494cc297acebb0741e936cd42e</commitId><timestamp>1777447717000</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-04-29 12:58:37 +0530</date><id>ab12e17d6fb941494cc297acebb0741e936cd42e</id><msg>fix</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><commitId>c39a6f4ea039705c4b63d44a56587ba71894f618</commitId><timestamp>1777449932000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add initial draft of assignment xAPI recipe.
</comment><date>2026-04-29 12:05:32 +0400</date><id>c39a6f4ea039705c4b63d44a56587ba71894f618</id><msg>Add initial draft of assignment xAPI recipe.</msg><path><editType>add</editType><file>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><commitId>89d26f87796216004352e6d682515a8f82cdddb8</commitId><timestamp>1777451398000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update initial draft of assignment recipe.
</comment><date>2026-04-29 12:29:58 +0400</date><id>89d26f87796216004352e6d682515a8f82cdddb8</id><msg>Update initial draft of assignment recipe.</msg><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-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><commitId>07173d8df0bc8f53c40e84eebec9ec8fc87c55f2</commitId><timestamp>1777451529000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update initial draft of assignment recipe.
</comment><date>2026-04-29 12:32:09 +0400</date><id>07173d8df0bc8f53c40e84eebec9ec8fc87c55f2</id><msg>Update initial draft of assignment recipe.</msg><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-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><commitId>bf4602c2063c02cc00dd7b5bc0ee78e8780399d0</commitId><timestamp>1777451610000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update initial draft of assignment recipe.
</comment><date>2026-04-29 12:33:30 +0400</date><id>bf4602c2063c02cc00dd7b5bc0ee78e8780399d0</id><msg>Update initial draft of assignment recipe.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>43b6cb8fbcbc058d044d5d3d66c2a704dfd4d02e</commitId><timestamp>1777463582000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update assignment deatil screen with dummy statement data
</comment><date>2026-04-29 17:23:02 +0530</date><id>43b6cb8fbcbc058d044d5d3d66c2a704dfd4d02e</id><msg>update assignment deatil screen with dummy statement data</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.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/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><commitId>40cbb03dca07c6b21f579efddf89dece07b4e7b1</commitId><timestamp>1777477392000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update assignment deatil screen with dummy statement data
</comment><date>2026-04-29 21:13:12 +0530</date><id>40cbb03dca07c6b21f579efddf89dece07b4e7b1</id><msg>update assignment deatil screen with dummy statement data</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/ExternalLinkEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/Externallinkeditviewmodel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/ExternalLinkEditScreen.kt</affectedPath><commitId>7015fb47922bc795afb65dd58ff13e5185e74b4b</commitId><timestamp>1777518105000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>rename
</comment><date>2026-04-30 08:31:45 +0530</date><id>7015fb47922bc795afb65dd58ff13e5185e74b4b</id><msg>rename</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/ExternalLinkEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/Externallinkeditviewmodel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/ExternalLinkEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>18fe79f83c8f8ba2dfb2d78ab7782930d7c2114a</commitId><timestamp>1777536155000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Initial installatoin instructions for RESPECT server binary installation

Initial installatoin instructions for RESPECT server binary installation
</comment><date>2026-04-30 12:02:35 +0400</date><id>18fe79f83c8f8ba2dfb2d78ab7782930d7c2114a</id><msg>Initial installatoin instructions for RESPECT server binary installation</msg><path><editType>add</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/dist/systemd/respect-server.service</affectedPath><affectedPath>INSTALL.md</affectedPath><commitId>6b466c061a8f40a502185c9f650ef992155a88cc</commitId><timestamp>1777537240000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add respect-server.service and update INSTALL.md
</comment><date>2026-04-30 12:20:40 +0400</date><id>6b466c061a8f40a502185c9f650ef992155a88cc</id><msg>Add respect-server.service and update INSTALL.md</msg><path><editType>edit</editType><file>INSTALL.md</file></path><path><editType>add</editType><file>respect-server/src/dist/systemd/respect-server.service</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>8aa8a7446b0b0d821cf7fcb85aa5d4966f7db9b0</commitId><timestamp>1777539382000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make example IP address consistent on INSTALL.md
</comment><date>2026-04-30 12:56:22 +0400</date><id>8aa8a7446b0b0d821cf7fcb85aa5d4966f7db9b0</id><msg>Make example IP address consistent on INSTALL.md</msg><path><editType>edit</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt</affectedPath><commitId>3f460e93f3b2a4c08de5b62c82b0100def53266f</commitId><timestamp>1777540955000</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-04-30 14:52:35 +0530</date><id>3f460e93f3b2a4c08de5b62c82b0100def53266f</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>d650248b0e30b135cd92a5257d0208d0716c7bc3</commitId><timestamp>1777542771000</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-04-30 15:22:51 +0530</date><id>d650248b0e30b135cd92a5257d0208d0716c7bc3</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_PERMISSION_RECIPE.md</affectedPath><commitId>b3662b26a804a553ca91f510fc75a52432ce2453</commitId><timestamp>1777637132000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add work in progress permission recipe.
</comment><date>2026-05-01 16:05:32 +0400</date><id>b3662b26a804a553ca91f510fc75a52432ce2453</id><msg>Add work in progress permission recipe.</msg><path><editType>add</editType><file>respect-lib-xapi-core/README_PERMISSION_RECIPE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>respect-datalayer-repository/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><commitId>fcd2369fc6301c9c1890efab9db2e203e3be898b</commitId><timestamp>1777648179000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress statement resource integration test.
</comment><date>2026-05-01 19:09:39 +0400</date><id>fcd2369fc6301c9c1890efab9db2e203e3be898b</id><msg>Work in progress statement resource integration test.</msg><path><editType>edit</editType><file>respect-datalayer-repository/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><commitId>4f06422b2be810f880858e7d100eb97b84216644</commitId><timestamp>1777743732000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update statement resource test to use flow instead of delay.
</comment><date>2026-05-02 21:42:12 +0400</date><id>4f06422b2be810f880858e7d100eb97b84216644</id><msg>Update statement resource test to use flow instead of delay.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><commitId>f6174d62f529534bcf9be894c573a09a1c020be5</commitId><timestamp>1777745342000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update Statement resource integration test to include get.
</comment><date>2026-05-02 22:09:02 +0400</date><id>f6174d62f529534bcf9be894c573a09a1c020be5</id><msg>Update Statement resource integration test to include get.</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.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-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.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-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.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/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_CLASSGROUPS_RECIPE.md</affectedPath><commitId>5cf8624fd179493e159559d7899d70b278760347</commitId><timestamp>1777797858000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update recipe for class groups.
</comment><date>2026-05-03 12:44:18 +0400</date><id>5cf8624fd179493e159559d7899d70b278760347</id><msg>Update recipe for class groups.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.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/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/README_CLASSGROUPS_RECIPE.md</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.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/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-lib-dataloadstate/.gitignore</affectedPath><affectedPath>respect-lib-dataloadstate/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><commitId>556d069686b097aa98da74870c9600b414f36c3b</commitId><timestamp>1777877278000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiActorDataSourceDb to fix compilation issue. Create new independent dataloadstate module.
</comment><date>2026-05-04 10:47:58 +0400</date><id>556d069686b097aa98da74870c9600b414f36c3b</id><msg>Update XapiActorDataSourceDb to fix compilation issue. Create new independent dataloadstate module.</msg><path><editType>add</editType><file>respect-lib-dataloadstate/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-dataloadstate/.gitignore</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AssignmentRoute.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><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/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadParams.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</affectedPath><affectedPath>respect-lib-dataloadstate/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt</affectedPath><commitId>3bcff8895551559ac562ca9a0b16a4e725a70de1</commitId><timestamp>1777879477000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiActorDataSourceDb to fix compilation issue. Create new independent dataloadstate module.
</comment><date>2026-05-04 11:24:37 +0400</date><id>3bcff8895551559ac562ca9a0b16a4e725a70de1</id><msg>Update XapiActorDataSourceDb to fix compilation issue. Create new independent dataloadstate module.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.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-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.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-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AssignmentRoute.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/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.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>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.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-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadParams.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.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>add</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><commitId>4cdd8bb7fd08a8151c57499618fdd03b583f0203</commitId><timestamp>1777879866000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove obsolete GetStatementsRequest
</comment><date>2026-05-04 11:31:06 +0400</date><id>4cdd8bb7fd08a8151c57499618fdd03b583f0203</id><msg>Remove obsolete GetStatementsRequest</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><commitId>b6deb7dbba4f920d29abd18aa2726f023fb819a2</commitId><timestamp>1777882550000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support for flow based return on XapiStatementResource
</comment><date>2026-05-04 12:15:50 +0400</date><id>b6deb7dbba4f920d29abd18aa2726f023fb819a2</id><msg>Add support for flow based return on XapiStatementResource</msg><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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>7611405f5ab17215d4d4f39112c9dd9497b58c4c</commitId><timestamp>1777887049000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>resolve conflict
</comment><date>2026-05-04 15:00:49 +0530</date><id>7611405f5ab17215d4d4f39112c9dd9497b58c4c</id><msg>resolve conflict</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><commitId>9c3cb8fc2d01870b368bca9c44de71dc651d9ed2</commitId><timestamp>1777915930000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add query intent filter
</comment><date>2026-05-04 21:32:10 +0400</date><id>9c3cb8fc2d01870b368bca9c44de71dc651d9ed2</id><msg>Add query intent filter</msg><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/androidMain/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/.gitignore</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiResourceProvider.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</affectedPath><commitId>2826c4ba92af36c30d981499671efe3768192b5b</commitId><timestamp>1777923705000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress adding embedded Nanohttpd based xapi server.
</comment><date>2026-05-04 23:41:45 +0400</date><id>2826c4ba92af36c30d981499671efe3768192b5b</id><msg>Work in progress adding embedded Nanohttpd based xapi server.</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-nanohttpd/.gitignore</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-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiResourceProvider.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-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/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.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-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-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/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.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/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-nanohttpd/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.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-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><commitId>55fc5a2a5a7ef6977cac887395bca0303f5030a8</commitId><timestamp>1777960490000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update getAssignmentResult on repository
</comment><date>2026-05-05 11:24:50 +0530</date><id>55fc5a2a5a7ef6977cac887395bca0303f5030a8</id><msg>update getAssignmentResult on repository</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><commitId>dfa5028551ea04084b57b3a7891243a77d8b42f4</commitId><timestamp>1777966869000</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-05-05 13:11:09 +0530</date><id>dfa5028551ea04084b57b3a7891243a77d8b42f4</id><msg>refactor</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.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-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.kt</affectedPath><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/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/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiResourceProvider.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.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/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><commitId>901a5b08da74d631ae8e8db83adf9ae8d0383e4a</commitId><timestamp>1777973593000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: setup learning unit detail viewmodel to get xapi launch url using embedded xapi server.
</comment><date>2026-05-05 13:33:13 +0400</date><id>901a5b08da74d631ae8e8db83adf9ae8d0383e4a</id><msg>Work in progress: setup learning unit detail viewmodel to get xapi launch url using embedded xapi server.</msg><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/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.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-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.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/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</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>delete</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiResourceProvider.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/XAPI.js</affectedPath><commitId>56c69cf8141536edd9ca3a490e7a4d847406e073</commitId><timestamp>1777982700000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: setup learning unit detail viewmodel to get xapi launch url using embedded xapi server.
</comment><date>2026-05-05 16:05:00 +0400</date><id>56c69cf8141536edd9ca3a490e7a4d847406e073</id><msg>Work in progress: setup learning unit detail viewmodel to get xapi launch url using embedded xapi server.</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/XAPI.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/README.md</affectedPath><affectedPath>.maestro/flow-summary/001_002_add_user_direct_test.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_003_login_using_school_link_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/002_browse_lessons_test_description.md</affectedPath><affectedPath>.maestro/flow-summary/001_005_add_school_self_registration_test.md</affectedPath><affectedPath>.maestro/flow-summary/002_browse_lessons_test.md</affectedPath><affectedPath>.maestro/README.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</affectedPath><affectedPath>.maestro/flow-summary/001_001_invite_users_using_qr_code_or_link_test.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/001_005_add_school_self_registration_test_description.md</affectedPath><affectedPath>.maestro/flow-summary/001_003_login_using_school_link_test.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/003_teacher_user_assigns_assignment_to_a_class_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md</affectedPath><affectedPath>.maestro/flow-summary/003_admin_user_assigns_assignment_to_a_class_test.md</affectedPath><commitId>507c9fb296572ecad9badcd988357fc80e9ab3c1</commitId><timestamp>1778061233000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add Maestro flow summary documentation for core features.
</comment><date>2026-05-06 13:53:53 +0400</date><id>507c9fb296572ecad9badcd988357fc80e9ab3c1</id><msg>Add Maestro flow summary documentation for core features.</msg><path><editType>add</editType><file>.maestro/flow-summary/001_005_add_school_self_registration_test.md</file></path><path><editType>add</editType><file>.maestro/flow-summary/002_browse_lessons_test.md</file></path><path><editType>add</editType><file>.maestro/flow-summary/001_003_login_using_school_link_test.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>.maestro/flow-summary/003_admin_user_assigns_assignment_to_a_class_test.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_003_login_using_school_link_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/README.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_005_add_school_self_registration_test_description.md</file></path><path><editType>add</editType><file>.maestro/flow-summary/001_001_invite_users_using_qr_code_or_link_test.md</file></path><path><editType>add</editType><file>.maestro/flow-summary/001_002_add_user_direct_test.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/003_teacher_user_assigns_assignment_to_a_class_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/002_browse_lessons_test_description.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><commitId>426ab425c9387e68a05bb151d74e49906521e977</commitId><timestamp>1778061421000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `.maestro/README.md` formatting.
</comment><date>2026-05-06 13:57:01 +0400</date><id>426ab425c9387e68a05bb151d74e49906521e977</id><msg>Update `.maestro/README.md` formatting.</msg><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>.maestro/flow-summary/001_002_add_user_direct_test.md</affectedPath><affectedPath>.maestro/flow-summary/001_001_invite_users_using_qr_code_or_link_test.md</affectedPath><affectedPath>.maestro/flow-summary/001_003_login_using_school_link_test.md</affectedPath><affectedPath>.maestro/flow-summary/001_005_add_school_self_registration_test.md</affectedPath><affectedPath>.maestro/flow-summary/002_browse_lessons_test.md</affectedPath><affectedPath>.maestro/flow-summary/003_admin_user_assigns_assignment_to_a_class_test.md</affectedPath><commitId>df4bd8e47a102ff17962776fc91467fe9276b59f</commitId><timestamp>1778063302000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Refactor Maestro test documentation by consolidating flow summaries.
</comment><date>2026-05-06 14:28:22 +0400</date><id>df4bd8e47a102ff17962776fc91467fe9276b59f</id><msg>Refactor Maestro test documentation by consolidating flow summaries.</msg><path><editType>delete</editType><file>.maestro/flow-summary/003_admin_user_assigns_assignment_to_a_class_test.md</file></path><path><editType>delete</editType><file>.maestro/flow-summary/001_003_login_using_school_link_test.md</file></path><path><editType>delete</editType><file>.maestro/flow-summary/001_001_invite_users_using_qr_code_or_link_test.md</file></path><path><editType>delete</editType><file>.maestro/flow-summary/002_browse_lessons_test.md</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>delete</editType><file>.maestro/flow-summary/001_002_add_user_direct_test.md</file></path><path><editType>delete</editType><file>.maestro/flow-summary/001_005_add_school_self_registration_test.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><commitId>c1bfccdbe55284ca41957899c8bb93a7f3fdddad</commitId><timestamp>1778063496000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro README.md to use numbered lists for test flow descriptions.
</comment><date>2026-05-06 14:31:36 +0400</date><id>c1bfccdbe55284ca41957899c8bb93a7f3fdddad</id><msg>Update Maestro README.md to use numbered lists for test flow descriptions.</msg><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><commitId>efb7a28407916d1ed6c4a7ae740a0426c4cce9a1</commitId><timestamp>1778067487000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro README with detailed steps for user management and school registration test flows.
</comment><date>2026-05-06 15:38:07 +0400</date><id>efb7a28407916d1ed6c4a7ae740a0426c4cce9a1</id><msg>Update Maestro README with detailed steps for user management and school registration test flows.</msg><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><commitId>67d616e77479b2ecf04a181441330e602a1cb6b7</commitId><timestamp>1778091684000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Change PERSON_ADMIN_WRITE flag to an explicit permission. Using a value that was not represented by a single 2^x value resulted in errors in the permission check queries not working as expected.

Permission check queries were using a binary and, then checking the result is greater than zero. This is fine when checking for a 2^x value, but not others.
</comment><date>2026-05-06 22:21:24 +0400</date><id>67d616e77479b2ecf04a181441330e602a1cb6b7</id><msg>Change PERSON_ADMIN_WRITE flag to an explicit permission. Using a value that was not represented by a single 2^x value resulted in errors in the permission check queries not working as expected.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt</affectedPath><commitId>93e8ed5b9f0b2414facb4a76d63f604d64d9a31b</commitId><timestamp>1778094911000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix for issue #231.

When a teacher or any other is being approved, this requires permission to add the given user role. Teachers by default have permission to add students and parents, but not other teachers. They should therefor not see the option to approve a teacher registration (only admin can do that).
</comment><date>2026-05-06 23:15:11 +0400</date><id>93e8ed5b9f0b2414facb4a76d63f604d64d9a31b</id><msg>Fix for issue #231.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><commitId>a500ce454fb2ba95f7643cb028b8cfd7520e0dab</commitId><timestamp>1778136509000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix mistake on xapi statement query: using incorrect verb field
</comment><date>2026-05-07 10:48:29 +0400</date><id>a500ce454fb2ba95f7643cb028b8cfd7520e0dab</id><msg>Fix mistake on xapi statement query: using incorrect verb field</msg><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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>df8580a5381a93f08e6dbc95896003ad16b9888b</commitId><timestamp>1778136729000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix mistake on xapi resource: wrong parameter for until.
</comment><date>2026-05-07 10:52:09 +0400</date><id>df8580a5381a93f08e6dbc95896003ad16b9888b</id><msg>Fix mistake on xapi resource: wrong parameter for until.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</affectedPath><commitId>de6e9a83bbf380cc39f10da49e4bdca96d65a1fc</commitId><timestamp>1778144240000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Issue #231

Fix logic error that prevented handling admin approval for teacher joining class. Student joining class was working as expected.
</comment><date>2026-05-07 12:57:20 +0400</date><id>de6e9a83bbf380cc39f10da49e4bdca96d65a1fc</id><msg>Issue #231</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>52ce3efaad0bc9412197c2eca73e6a7820efe1c0</commitId><timestamp>1778227172000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add Assignment xAPI Recipe in edi, list, deatil screen
</comment><date>2026-05-08 13:29:32 +0530</date><id>52ce3efaad0bc9412197c2eca73e6a7820efe1c0</id><msg>add Assignment xAPI Recipe in edi, list, deatil screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows-disabled/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>69f813221401eb23ef0374d7ef62e1d649005926</commitId><timestamp>1778252973000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Disable flow 003 until new xAPI based assignment branch is merged.
</comment><date>2026-05-08 19:09:33 +0400</date><id>69f813221401eb23ef0374d7ef62e1d649005926</id><msg>Disable flow 003 until new xAPI based assignment branch is merged.</msg><path><editType>add</editType><file>.maestro/flows-disabled/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</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-core/README_PERMISSION_RECIPE.md</affectedPath><commitId>4c50dfefc4af552e7a8914ff22a87baa5a6e0125</commitId><timestamp>1778436234000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refine permission recipe to be folder based : simpler for queries, simpler to run on mobile/SQL, and suitable for folder based backends (e.g. Google Drive, NextCloud, etc).
</comment><date>2026-05-10 22:03:54 +0400</date><id>4c50dfefc4af552e7a8914ff22a87baa5a6e0125</id><msg>Refine permission recipe to be folder based : simpler for queries, simpler to run on mobile/SQL, and suitable for folder based backends (e.g. Google Drive, NextCloud, etc).</msg><path><editType>edit</editType><file>respect-lib-xapi-core/README_PERMISSION_RECIPE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_PERMISSION_RECIPE.md</affectedPath><commitId>fd821aaf134d6baa9a915c36fccfd80c49cfcbf6</commitId><timestamp>1778491957000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add note on canonical updates to permission recipe.
</comment><date>2026-05-11 13:32:37 +0400</date><id>fd821aaf134d6baa9a915c36fccfd80c49cfcbf6</id><msg>Add note on canonical updates to permission recipe.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/README_PERMISSION_RECIPE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt</affectedPath><commitId>f57c392693352718885d4fc16cde4b3c71480fb5</commitId><timestamp>1778499793000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Check username unique during invitation acceptance process (issue #232).
</comment><date>2026-05-11 15:43:13 +0400</date><id>f57c392693352718885d4fc16cde4b3c71480fb5</id><msg>Check username unique during invitation acceptance process (issue #232).</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.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/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.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/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><commitId>f80a98b0700c71f29761383f0d1825474d323c49</commitId><timestamp>1778506659000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Apply username unique check to when admin sets a username manually.
</comment><date>2026-05-11 17:37:39 +0400</date><id>f80a98b0700c71f29761383f0d1825474d323c49</id><msg>Apply username unique check to when admin sets a username manually.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><commitId>8f8b35910f242ef2abdf0ecc542df733be8f66dc</commitId><timestamp>1778506944000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Correct visibility of floating action button on PersonListViewModel.kt and update to use common GetWritableRolesUseCase
</comment><date>2026-05-11 17:42:24 +0400</date><id>8f8b35910f242ef2abdf0ecc542df733be8f66dc</id><msg>Correct visibility of floating action button on PersonListViewModel.kt and update to use common GetWritableRolesUseCase</msg><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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>365ec1fab02c70ecace2c5b3843272cab7224de9</commitId><timestamp>1778564953000</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-05-12 11:19:13 +0530</date><id>365ec1fab02c70ecace2c5b3843272cab7224de9</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.kt</affectedPath><commitId>6252aff4599c9374493601a1ea8c1b0a520e2d37</commitId><timestamp>1778568050000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Show role on PersonListScreen.
When selecting people to add to class, filter by role (as per #237).
</comment><date>2026-05-12 10:40:50 +0400</date><id>6252aff4599c9374493601a1ea8c1b0a520e2d37</id><msg>Show role on PersonListScreen.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.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-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><commitId>ab5a99a59234259c334be4a2fb2f86b32ba5f558</commitId><timestamp>1778571262000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Show error snackbar when no valid link is found.
Fix handling of opening lessons from horizontal pager on app detail screen (Issue #229).
</comment><date>2026-05-12 11:34:22 +0400</date><id>ab5a99a59234259c334be4a2fb2f86b32ba5f558</id><msg>Show error snackbar when no valid link is found.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/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-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>a3ad308646f86af215e35299a44e2d6fb8a29738</commitId><timestamp>1778576588000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version and change assignment label.
</comment><date>2026-05-12 13:03:08 +0400</date><id>a3ad308646f86af215e35299a44e2d6fb8a29738</id><msg>Bump version and change assignment label.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</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/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>b1f93cb7e0056227f44fbca69dc7a53f52ed2caf</commitId><timestamp>1778590018000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Merge dev-xapi changes.
</comment><date>2026-05-12 16:46:58 +0400</date><id>b1f93cb7e0056227f44fbca69dc7a53f52ed2caf</id><msg>Merge dev-xapi changes.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/create_account_for_class_member.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/school_user_login_flow.yaml</affectedPath><commitId>969e552f4869629f538e5a6cacb8171e23010298</commitId><timestamp>1778659539000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flows for assignment management and class member creation.
</comment><date>2026-05-13 12:05:39 +0400</date><id>969e552f4869629f538e5a6cacb8171e23010298</id><msg>Update Maestro flows for assignment management and class member creation.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/school_user_login_flow.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/create_account_for_class_member.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</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-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AssignmentRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.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/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><commitId>a6012b5710898e613ce6c879e3032ae3b2972bb8</commitId><timestamp>1778660317000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>remove Assignmententity and related classes
</comment><date>2026-05-13 13:48:37 +0530</date><id>a6012b5710898e613ce6c879e3032ae3b2972bb8</id><msg>remove Assignmententity and related classes</msg><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AssignmentRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.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-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.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-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>3df63fd057bfae4e5764e0451083fe49df50ea4e</commitId><timestamp>1778661791000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move `003_admin_user_assigns_assignment_to_a_class_test.yaml` to `pending-flows` and add an xAPI verification script.
</comment><date>2026-05-13 12:43:11 +0400</date><id>3df63fd057bfae4e5764e0451083fe49df50ea4e</id><msg>Move `003_admin_user_assigns_assignment_to_a_class_test.yaml` to `pending-flows` and add an xAPI verification script.</msg><path><editType>add</editType><file>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</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-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>4513cf5f87165b746305c8498a57997e28a61f51</commitId><timestamp>1778692885000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update terms/conditions to use .well-known path on school directory server.
Bump version.
</comment><date>2026-05-13 21:21:25 +0400</date><id>4513cf5f87165b746305c8498a57997e28a61f51</id><msg>Update terms/conditions to use .well-known path on school directory server.</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/termsandcondition/TermsAndConditionViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.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-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CODE_OF_CONDUCT.md</affectedPath><commitId>230b80b2452d708b0978043e033e0a5826668285</commitId><timestamp>1778743774000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add guideline on AI-generated content submission

Add explicit guidelines against submission of AI slop
</comment><date>2026-05-14 11:29:34 +0400</date><id>230b80b2452d708b0978043e033e0a5826668285</id><msg>Add guideline on AI-generated content submission</msg><path><editType>edit</editType><file>CODE_OF_CONDUCT.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CODE_OF_CONDUCT.md</affectedPath><commitId>e5a71f872211b1adc6692b881a207ff34a1d3de0</commitId><timestamp>1778743821000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Clarify guidelines on submitting AI-generated content
</comment><date>2026-05-14 11:30:21 +0400</date><id>e5a71f872211b1adc6692b881a207ff34a1d3de0</id><msg>Clarify guidelines on submitting AI-generated content</msg><path><editType>edit</editType><file>CODE_OF_CONDUCT.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows-disabled/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>0a8724331537d9aaae4221f892a1b7853027aa57</commitId><timestamp>1778744898000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro assignment flow.
</comment><date>2026-05-14 11:48:18 +0400</date><id>0a8724331537d9aaae4221f892a1b7853027aa57</id><msg>Update Maestro assignment flow.</msg><path><editType>edit</editType><file>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-disabled/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/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>bf68c64ed5e3582d25ff213d68a9031873239975</commitId><timestamp>1778746314000</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-05-14 13:41:54 +0530</date><id>bf68c64ed5e3582d25ff213d68a9031873239975</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</affectedPath><commitId>1b761b2d7f5431b5d5a5eaa8050c5a271e92a7fa</commitId><timestamp>1778750991000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial xAPI embedded server implementation.

Add support for cross origin requests for embedded statements endpoint.
 Fix nanohttpd bodyAsBytes function
 Fix basic auth encoding/decoding
</comment><date>2026-05-14 13:29:51 +0400</date><id>1b761b2d7f5431b5d5a5eaa8050c5a271e92a7fa</id><msg>Initial xAPI embedded server implementation.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</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-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><commitId>1e990ff70a0085f5b22a53f3cf93da7cacc978ff</commitId><timestamp>1778762633000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix ktor path for xapi statements resource.
</comment><date>2026-05-14 16:43:53 +0400</date><id>1e990ff70a0085f5b22a53f3cf93da7cacc978ff</id><msg>Fix ktor path for xapi statements resource.</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-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/statementmaker.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/xapi_module.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/XAPI.js</affectedPath><commitId>846633c662e52445f3613caeed6ebfa5457d972d</commitId><timestamp>1778768829000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial statement maker.
</comment><date>2026-05-14 18:27:09 +0400</date><id>846633c662e52445f3613caeed6ebfa5457d972d</id><msg>Initial statement maker.</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/xapi_module.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/statementmaker.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/XAPI.js</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>add</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentFilter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/LocalDateExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>3afdd31994678bb1da6c23fbd84da0a49266650f</commitId><timestamp>1778827194000</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-05-15 12:09:54 +0530</date><id>3afdd31994678bb1da6c23fbd84da0a49266650f</id><msg>refactor</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/LocalDateExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentFilter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt</affectedPath><commitId>64c87e114d36f3a1bd7c14c7be043200ab4c06ae</commitId><timestamp>1778833101000</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-05-15 13:48:21 +0530</date><id>64c87e114d36f3a1bd7c14c7be043200ab4c06ae</id><msg>refactor</msg><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.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>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</affectedPath><commitId>2ed057dc5e2d1ed4c857181ceee908811663fd69</commitId><timestamp>1778833699000</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-05-15 13:58:19 +0530</date><id>2ed057dc5e2d1ed4c857181ceee908811663fd69</id><msg>refactor</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>2b7b83738976e155a70b17f7a718a934f6e9ea05</commitId><timestamp>1778837333000</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-05-15 14:58:53 +0530</date><id>2b7b83738976e155a70b17f7a718a934f6e9ea05</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.json</affectedPath><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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</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-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.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/grade1/statementmaker/statementmaker.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html</affectedPath><commitId>1bc6aeeb9246345ab46c4839c4a5728d7e8d0e51</commitId><timestamp>1778952646000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update statement maker to use a statement json from text area and actor from params.
Update LaunchAppUseCase to accept an assignment activity id.
</comment><date>2026-05-16 21:30:46 +0400</date><id>1bc6aeeb9246345ab46c4839c4a5728d7e8d0e51</id><msg>Update statement maker to use a statement json from text area and actor from params.</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.json</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-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</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-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html</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/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/statementmaker.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/script.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/audio.ogg</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json</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/grade1/lesson001/lesson001.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/video.mp4</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/statementmaker.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/xapi_module.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png</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/statementmaker/index.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/script.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/icon.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/cover.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/audio.ogg</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/video.mp4</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png</affectedPath><commitId>30e70b9f21b72016986ca29770c01c87cd314d6a</commitId><timestamp>1778955365000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update example app structure and naming.
</comment><date>2026-05-16 22:16:05 +0400</date><id>30e70b9f21b72016986ca29770c01c87cd314d6a</id><msg>Update example app structure and naming.</msg><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/audio.ogg</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/video.mp4</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/script.js</file></path><path><editType>add</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-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.html</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/audio.ogg</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/xapi_module.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/statementmaker.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/script.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/icon.png</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/cover.png</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>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/video.mp4</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</file></path><path><editType>add</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-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-right.gif</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-05-04.0.log</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-05-12.0.log</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt</affectedPath><commitId>6187e85e6df49136f148542a2076e86061721555</commitId><timestamp>1778956821000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add jstetris example.
</comment><date>2026-05-16 22:40:21 +0400</date><id>6187e85e6df49136f148542a2076e86061721555</id><msg>Add jstetris example.</msg><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/jstetris/key-right.gif</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif</file></path><path><editType>add</editType><file>respect-datalayer-repository/log/respect-server.2026-05-12.0.log</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js</file></path><path><editType>add</editType><file>respect-datalayer-repository/log/respect-server.2026-05-04.0.log</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><commitId>62ccad8b6c976ed3de4ef7ac2ef6e8e401801ced</commitId><timestamp>1779005615000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchAppUseCaseAndroid to handle launching native app if app with a verified app link is available.

Otherwise fall back to using our own WebView Activity. Handle SDK30+ and pre-SDK30.
</comment><date>2026-05-17 12:13:35 +0400</date><id>62ccad8b6c976ed3de4ef7ac2ef6e8e401801ced</id><msg>Update LaunchAppUseCaseAndroid to handle launching native app if app with a verified app link is available.</msg><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-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>c9c53997c97601c6ae6fcefb5c3be6229e17d946</commitId><timestamp>1779014144000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: add header xapi header fields
</comment><date>2026-05-17 14:35:44 +0400</date><id>c9c53997c97601c6ae6fcefb5c3be6229e17d946</id><msg>Work in progress: add header xapi header fields</msg><path><editType>edit</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</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>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>008215d71e69209d9c4fb0b24bc80ece11bbf289</commitId><timestamp>1779040758000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version for xAPI preview
</comment><date>2026-05-17 21:59:18 +0400</date><id>008215d71e69209d9c4fb0b24bc80ece11bbf289</id><msg>Bump version for xAPI preview</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>623ad6e0c3e42b540045210ef30a063d4f2593c7</commitId><timestamp>1779087514000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>change assignment detail and edit screens to use XapiStatement instead of Assignment model
</comment><date>2026-05-18 12:28:34 +0530</date><id>623ad6e0c3e42b540045210ef30a063d4f2593c7</id><msg>change assignment detail and edit screens to use XapiStatement instead of Assignment model</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><commitId>752caaf8214d94e8e6f5ec089405c5095c785dc7</commitId><timestamp>1779101412000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename and document LaunchRequest properties.
</comment><date>2026-05-18 14:50:12 +0400</date><id>752caaf8214d94e8e6f5ec089405c5095c785dc7</id><msg>Rename and document LaunchRequest properties.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><commitId>cf4a9f42b8e7f871329c51279c628fd59fd02757</commitId><timestamp>1779104756000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Pass assignment activity id through learning unit detail to launch app use case.
</comment><date>2026-05-18 15:45:56 +0400</date><id>cf4a9f42b8e7f871329c51279c628fd59fd02757</id><msg>Pass assignment activity id through learning unit detail to launch app use case.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.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/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>29863af27f444d06894eb613cd13372b707b9632</commitId><timestamp>1779104933000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>resolve conflict
</comment><date>2026-05-18 17:18:53 +0530</date><id>29863af27f444d06894eb613cd13372b707b9632</id><msg>resolve conflict</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.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/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</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/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><commitId>50b45575b509674831d86091945b25b8e1275920</commitId><timestamp>1779107470000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update GetXapiLaunchUrlUseCase to include assignment activity id in the path.
</comment><date>2026-05-18 16:31:10 +0400</date><id>50b45575b509674831d86091945b25b8e1275920</id><msg>Update GetXapiLaunchUrlUseCase to include assignment activity id in the path.</msg><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/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.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-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiForbiddenException.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiBadRequestException.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</affectedPath><commitId>175af5b50914120881058f512916023093144712</commitId><timestamp>1779126551000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement initial support for statement voiding.
</comment><date>2026-05-18 21:49:11 +0400</date><id>175af5b50914120881058f512916023093144712</id><msg>Implement initial support for statement voiding.</msg><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiForbiddenException.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</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>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiBadRequestException.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>b7d5f801e1473eff3d8117a25511c31abf9aa63c</commitId><timestamp>1779172400000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Implement comments in AssignmentEdit
</comment><date>2026-05-19 12:03:20 +0530</date><id>b7d5f801e1473eff3d8117a25511c31abf9aa63c</id><msg>Implement comments in AssignmentEdit</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><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-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.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/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><commitId>3aa20d8ffde26f9bb3632fcf8c10ef12964e746c</commitId><timestamp>1779174411000</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-05-19 12:36:51 +0530</date><id>3aa20d8ffde26f9bb3632fcf8c10ef12964e746c</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.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/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAssignmentConstants.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentSummaryEntityRow.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>4256f6c0e6f911e40f006b1d67b8b6cbc3ccd1d4</commitId><timestamp>1779183317000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>improve list screen
</comment><date>2026-05-19 15:05:17 +0530</date><id>4256f6c0e6f911e40f006b1d67b8b6cbc3ccd1d4</id><msg>improve list screen</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-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/assignment/list/AssignmentListScreen.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentSummaryEntityRow.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAssignmentConstants.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><commitId>2461ae15db9cf79401696501c0e7289ca7861a80</commitId><timestamp>1779184607000</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-05-19 15:26:47 +0530</date><id>2461ae15db9cf79401696501c0e7289ca7861a80</id><msg>refactor</msg><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/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>e6cf0fb45896ed5e4b576941685221e575ce053e</commitId><timestamp>1779185021000</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-05-19 15:33:41 +0530</date><id>e6cf0fb45896ed5e4b576941685221e575ce053e</id><msg>refactor</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.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>CODING_GUIDELINES.md</affectedPath><commitId>07731c383a17fb4a0b24db0e760868b6e3acd65d</commitId><timestamp>1779185716000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Add guideline on understanding code before committing

Added guideline about understanding and explaining code before committing.
</comment><date>2026-05-19 14:15:16 +0400</date><id>07731c383a17fb4a0b24db0e760868b6e3acd65d</id><msg>Add guideline on understanding code before committing</msg><path><editType>edit</editType><file>CODING_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CODING_GUIDELINES.md</affectedPath><commitId>18b1fed572b7f8d297d29d9835b62ce9433d97f7</commitId><timestamp>1779186074000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Clarify variable usage in coding guidelines

Added guideline to avoid using two variables for the same purpose.
</comment><date>2026-05-19 14:21:14 +0400</date><id>18b1fed572b7f8d297d29d9835b62ce9433d97f7</id><msg>Clarify variable usage in coding guidelines</msg><path><editType>edit</editType><file>CODING_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><commitId>297b0cec37cbb6280d94c0ed3a0c570d7b57f3dc</commitId><timestamp>1779189096000</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-05-19 16:41:36 +0530</date><id>297b0cec37cbb6280d94c0ed3a0c570d7b57f3dc</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>AGENTS.md</affectedPath><commitId>5faf3ac280de655c20c419f87c90a788297e0488</commitId><timestamp>1779190932000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AGENTS.md to refer to CODING_GUIDELINES.md
</comment><date>2026-05-19 15:42:12 +0400</date><id>5faf3ac280de655c20c419f87c90a788297e0488</id><msg>Update AGENTS.md to refer to CODING_GUIDELINES.md</msg><path><editType>edit</editType><file>AGENTS.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><commitId>64d0fe3181606d69c4e9c656c2d715d7dcb75bb9</commitId><timestamp>1779191058000</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-05-19 17:14:18 +0530</date><id>64d0fe3181606d69c4e9c656c2d715d7dcb75bb9</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>dcaf4ae4698798bc10915e41cd5dfdb26bdb88b6</commitId><timestamp>1779193711000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro E2E test flows for assignment management and app browsing.
</comment><date>2026-05-19 16:28:31 +0400</date><id>dcaf4ae4698798bc10915e41cd5dfdb26bdb88b6</id><msg>Update Maestro E2E test flows for assignment management and app browsing.</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app.yaml</file></path><path><editType>add</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/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><commitId>4bce99f8b5a263f5406b28dde348f1ab84f2770e</commitId><timestamp>1779194668000</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-05-19 18:14:28 +0530</date><id>4bce99f8b5a263f5406b28dde348f1ab84f2770e</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><commitId>ea8c54c5acecc86d7eb61dbdcc4b584e4c2b4b21</commitId><timestamp>1779209190000</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-05-19 22:16:30 +0530</date><id>ea8c54c5acecc86d7eb61dbdcc4b584e4c2b4b21</id><msg>refactor</msg><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/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/AssignmentResultExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><commitId>ab0b104794b6ed600926a6401b05c2145eaf589b</commitId><timestamp>1779256559000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>clean up AssignmentDetail,Edit screens and viewmodels
</comment><date>2026-05-20 11:25:59 +0530</date><id>ab0b104794b6ed600926a6401b05c2145eaf589b</id><msg>clean up AssignmentDetail,Edit screens and viewmodels</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/AssignmentResultExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</affectedPath><commitId>d35ef225c00a65c9e306ed535860bf32d6ee3f62</commitId><timestamp>1779257674000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove role selection from admin add teacher subflow.
</comment><date>2026-05-20 10:14:34 +0400</date><id>d35ef225c00a65c9e306ed535860bf32d6ee3f62</id><msg>Remove role selection from admin add teacher subflow.</msg><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>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>9355d72978457e5038e954d5e7b4821cf169874d</commitId><timestamp>1779258746000</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-05-20 12:02:26 +0530</date><id>9355d72978457e5038e954d5e7b4821cf169874d</id><msg>fix</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><commitId>b1e8e451172906b80b1f87db76c73b350e7b0238</commitId><timestamp>1779259819000</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-05-20 12:20:19 +0530</date><id>b1e8e451172906b80b1f87db76c73b350e7b0238</id><msg>fix</msg><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAssignmentConstants.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.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/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentSummaryEntityRow.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>38a8e9c183bc703790887dd24b24959f923d2a4f</commitId><timestamp>1779262132000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>remove getAssignmentSummaries function
</comment><date>2026-05-20 12:58:52 +0530</date><id>38a8e9c183bc703790887dd24b24959f923d2a4f</id><msg>remove getAssignmentSummaries function</msg><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAssignmentConstants.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentSummaryEntityRow.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt</affectedPath><commitId>de2604a5d24886f12e1eb367420d2fadfc323bea</commitId><timestamp>1779264668000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement initial version of getAssignmentProgress
</comment><date>2026-05-20 12:11:08 +0400</date><id>de2604a5d24886f12e1eb367420d2fadfc323bea</id><msg>Implement initial version of getAssignmentProgress</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><commitId>b3ba8ae947519c38018fa2bd54fe200a41988274</commitId><timestamp>1779265505000</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-05-20 13:55:05 +0530</date><id>b3ba8ae947519c38018fa2bd54fe200a41988274</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</affectedPath><commitId>5f10957c07e8780e0f37aa70d3caf1d0d0b707ea</commitId><timestamp>1779268277000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xapiAgent property to RespectSessionAndPerson
</comment><date>2026-05-20 13:11:17 +0400</date><id>5f10957c07e8780e0f37aa70d3caf1d0d0b707ea</id><msg>Add xapiAgent property to RespectSessionAndPerson</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>f92dde841ae5e5e33596975a9dbd7dd865ae1ac8</commitId><timestamp>1779268432000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>resolve conflicts
</comment><date>2026-05-20 14:43:52 +0530</date><id>f92dde841ae5e5e33596975a9dbd7dd865ae1ac8</id><msg>resolve conflicts</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-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/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>7827d2b6a33d40da5aa71e650b7829df332a58d0</commitId><timestamp>1779269222000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add Uuid opt-in to respect-app-compose and respect-lib-shared.
</comment><date>2026-05-20 13:27:02 +0400</date><id>7827d2b6a33d40da5aa71e650b7829df332a58d0</id><msg>Add Uuid opt-in to respect-app-compose and respect-lib-shared.</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/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</affectedPath><commitId>7a93561a33094be6b42cea2d81d6731ef31335a4</commitId><timestamp>1779270302000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add studentsXapiGroup function
</comment><date>2026-05-20 13:45:02 +0400</date><id>7a93561a33094be6b42cea2d81d6731ef31335a4</id><msg>Add studentsXapiGroup function</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>1a17fd5a6a683ac4c5b407663b9723ae30310b44</commitId><timestamp>1779273769000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flows for assignment and class management to use dynamic class names.
</comment><date>2026-05-20 14:42:49 +0400</date><id>1a17fd5a6a683ac4c5b407663b9723ae30310b44</id><msg>Update Maestro flows for assignment and class management to use dynamic class names.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class_with_members.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/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><commitId>4b36db7f8770355257894aa742542f8159510751</commitId><timestamp>1779276856000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flows to reduce the number of students in the assignment test class.
</comment><date>2026-05-20 15:34:16 +0400</date><id>4b36db7f8770355257894aa742542f8159510751</id><msg>Update Maestro flows to reduce the number of students in the assignment test class.</msg><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/subflows/admin_add_class_with_members.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/account/RespectSessionAndPerson.kt</affectedPath><commitId>654d2ab04aa1a087dc6f33a0dff7f97dc2ab2527</commitId><timestamp>1779277178000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add xapiAgent property to RespectSessionAndPerson
</comment><date>2026-05-20 17:09:38 +0530</date><id>654d2ab04aa1a087dc6f33a0dff7f97dc2ab2527</id><msg>Add xapiAgent property to RespectSessionAndPerson</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.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>02599de5e3e936c79767dd23b205fb086f3a0d02</commitId><timestamp>1779277178000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add Uuid opt-in to respect-app-compose and respect-lib-shared.
</comment><date>2026-05-20 17:09:38 +0530</date><id>02599de5e3e936c79767dd23b205fb086f3a0d02</id><msg>Add Uuid opt-in to respect-app-compose and respect-lib-shared.</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/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</affectedPath><commitId>e4e4f664c0ce6fcef528680817169d27173dc10e</commitId><timestamp>1779277178000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Add studentsXapiGroup function
</comment><date>2026-05-20 17:09:38 +0530</date><id>e4e4f664c0ce6fcef528680817169d27173dc10e</id><msg>Add studentsXapiGroup function</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>86a8af5e1037ff94b4a305fd776318aa5e4f68bc</commitId><timestamp>1779277178000</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-05-20 17:09:38 +0530</date><id>86a8af5e1037ff94b4a305fd776318aa5e4f68bc</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><commitId>d8ebfba071ef18f13c3dfebe5d051b20c017fe33</commitId><timestamp>1779280084000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>fix ui
</comment><date>2026-05-20 17:58:04 +0530</date><id>d8ebfba071ef18f13c3dfebe5d051b20c017fe33</id><msg>fix ui</msg><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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><commitId>81f315480906410a35e706d6b9102c1e64076aaa</commitId><timestamp>1779280934000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix XapiStatementEntityDao

The Xapi search query used Join XapiVerbEntity instead of left join. The XapiVerbEntity is only created when a verb has display properties.

This broke the query such that statements that used verbs that had no display properties would not be returned.
</comment><date>2026-05-20 16:42:14 +0400</date><id>81f315480906410a35e706d6b9102c1e64076aaa</id><msg>Fix XapiStatementEntityDao</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><commitId>2e51e61093b64abdb3ce834e8f8166cc86dc2eca</commitId><timestamp>1779280965000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix XapiStatementEntityDao

The Xapi search query used Join XapiVerbEntity instead of left join. The XapiVerbEntity is only created when a verb has display properties.

This broke the query such that statements that used verbs that had no display properties would not be returned.
</comment><date>2026-05-20 16:42:45 +0400</date><id>2e51e61093b64abdb3ce834e8f8166cc86dc2eca</id><msg>Fix XapiStatementEntityDao</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</affectedPath><commitId>39869b40a763fc14c8e02094fe373e2b93accd8c</commitId><timestamp>1779283007000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix XapiActorExt.distinctMerged function

DistinctMerged function was not handling identified groups correctly: the returned group member was not null even if it was null in the input. This caused the ActorDataSource to incorrectly remove all group members.
</comment><date>2026-05-20 17:16:47 +0400</date><id>39869b40a763fc14c8e02094fe373e2b93accd8c</id><msg>Fix XapiActorExt.distinctMerged function</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_005_add_school_self_registration_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>.maestro/pending-flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>4318a7f11ca89d0d8b2bb7a559306e549484ed37</commitId><timestamp>1779285877000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flows for assignments and move onboarding tests to pending.
</comment><date>2026-05-20 18:04:37 +0400</date><id>4318a7f11ca89d0d8b2bb7a559306e549484ed37</id><msg>Update Maestro test flows for assignments and move onboarding tests to pending.</msg><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><commitId>04eeca8a1ead36288a2a1371e6a859324e142699</commitId><timestamp>1779289874000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix mistake on XapiStatementEntityDao get assignment progress function: incorrect use of group.
</comment><date>2026-05-20 19:11:14 +0400</date><id>04eeca8a1ead36288a2a1371e6a859324e142699</id><msg>Fix mistake on XapiStatementEntityDao get assignment progress function: incorrect use of group.</msg><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-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><commitId>b0a5249bb832437f50727267f631375474f1f233</commitId><timestamp>1779295672000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make assignment progress query test more rigorous.
</comment><date>2026-05-20 20:47:52 +0400</date><id>b0a5249bb832437f50727267f631375474f1f233</id><msg>Make assignment progress query test more rigorous.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><commitId>7f5e45c59ec11eb38383a9d4c8e1b9ec84c576d6</commitId><timestamp>1779301808000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement creation of an XapiGroup for students in a given class to enable assignments to work as expected.
</comment><date>2026-05-20 22:30:08 +0400</date><id>7f5e45c59ec11eb38383a9d4c8e1b9ec84c576d6</id><msg>Implement creation of an XapiGroup for students in a given class to enable assignments to work as expected.</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.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/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.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-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</affectedPath><commitId>434664b0333275004a2de82374a3d3d7da8a2b27</commitId><timestamp>1779342265000</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-05-21 11:14:25 +0530</date><id>434664b0333275004a2de82374a3d3d7da8a2b27</id><msg>refactor</msg><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.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/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.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/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningUnitRef.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</affectedPath><commitId>5dfc66f1f8e4d4a53f4fab55d95ac9b67aab7768</commitId><timestamp>1779347187000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove the app url argument from Learning Unit Detail screen. This should not be required.
</comment><date>2026-05-21 11:06:27 +0400</date><id>5dfc66f1f8e4d4a53f4fab55d95ac9b67aab7768</id><msg>Remove the app url argument from Learning Unit Detail screen. This should not be required.</msg><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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningUnitRef.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/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.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>add</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/viewmodel/learningunit/LearningUnitSelection.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md</affectedPath><commitId>138cb4671512350242d56a31048a7ff773c3bff0</commitId><timestamp>1779349692000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add publication extension readme.
</comment><date>2026-05-21 11:48:12 +0400</date><id>138cb4671512350242d56a31048a7ff773c3bff0</id><msg>Add publication extension readme.</msg><path><editType>add</editType><file>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</affectedPath><commitId>89c05a10ee3a1f4974a422d2a589b4bdb25fafaa</commitId><timestamp>1779351530000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>fix assignment detail viewmodel
</comment><date>2026-05-21 13:48:50 +0530</date><id>89c05a10ee3a1f4974a422d2a589b4bdb25fafaa</id><msg>fix assignment detail viewmodel</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>f7bb93cba14c06c5dc5d1f30250ddc4012c9dcdd</commitId><timestamp>1779352078000</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-05-21 13:57:58 +0530</date><id>f7bb93cba14c06c5dc5d1f30250ddc4012c9dcdd</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><commitId>e5d2e3cc3457e37f87592552c008fb34494514b7</commitId><timestamp>1779355084000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>remove  hardcoded English string literals
</comment><date>2026-05-21 14:48:04 +0530</date><id>e5d2e3cc3457e37f87592552c008fb34494514b7</id><msg>remove  hardcoded English string literals</msg><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/util/AssignmentStatusFilter.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.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-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>80dcc5b2099d97b8df484abc898fc3b602f9e7a5</commitId><timestamp>1779355533000</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-05-21 14:55:33 +0530</date><id>80dcc5b2099d97b8df484abc898fc3b602f9e7a5</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</affectedPath><commitId>2be5b5d4888c7fcb11c26e55025123cbd0251a70</commitId><timestamp>1779357604000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add GetXapiActivityForPublicationUseCase and related readme.
</comment><date>2026-05-21 14:00:04 +0400</date><id>2be5b5d4888c7fcb11c26e55025123cbd0251a70</id><msg>Add GetXapiActivityForPublicationUseCase and related readme.</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/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><commitId>af3beb9f6048b7c6c72f3d45ce998dd5574fab03</commitId><timestamp>1779357814000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update assignment recipe example.
</comment><date>2026-05-21 14:03:34 +0400</date><id>af3beb9f6048b7c6c72f3d45ce998dd5574fab03</id><msg>Update assignment recipe example.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>62e7c11d1b379d282a0204a7b3ba9c98c43f87f1</commitId><timestamp>1779364853000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro assignment flow to uncomment and refine UI assertions.
</comment><date>2026-05-21 16:00:53 +0400</date><id>62e7c11d1b379d282a0204a7b3ba9c98c43f87f1</id><msg>Update Maestro assignment flow to uncomment and refine UI assertions.</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/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-lib-xapi-core/README.md</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>54437d7b066cca0b823e6d625f514f9087ccc0c0</commitId><timestamp>1779367089000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchAppUseCase to set activity id argument as per GetXapiActivityForPublicationUseCase to ensure this is set consistently.

Update XapiStatementsResourceRepository and README notes: always use exact format when fetching statements over the network from the repository.
</comment><date>2026-05-21 16:38:09 +0400</date><id>54437d7b066cca0b823e6d625f514f9087ccc0c0</id><msg>Update LaunchAppUseCase to set activity id argument as per GetXapiActivityForPublicationUseCase to ensure this is set consistently.</msg><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.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/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.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-xapi-core/README.md</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt</affectedPath><commitId>6877db5592f1b065036490592ca28b9d66938446</commitId><timestamp>1779367869000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Change the return type of getAssignmentProgress so that the datasource can take care of loading the assignment statement.
</comment><date>2026-05-21 16:51:09 +0400</date><id>6877db5592f1b065036490592ca28b9d66938446</id><msg>Change the return type of getAssignmentProgress so that the datasource can take care of loading the assignment statement.</msg><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><commitId>23bcdba379c357ab8bd7b749eb89efa6badb4a6b</commitId><timestamp>1779374043000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Chagne GetStatementParams.agent parameter type to XapiActor because the spec allows for this to be an identified group.
</comment><date>2026-05-21 18:34:03 +0400</date><id>23bcdba379c357ab8bd7b749eb89efa6badb4a6b</id><msg>Chagne GetStatementParams.agent parameter type to XapiActor because the spec allows for this to be an identified group.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.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/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><commitId>8935009581c8277b6496aa79fb7ecd5c7e137350</commitId><timestamp>1779378639000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Refactor assignment detail screen and edit screen
</comment><date>2026-05-21 21:20:39 +0530</date><id>8935009581c8277b6496aa79fb7ecd5c7e137350</id><msg>Refactor assignment detail screen and edit screen</msg><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/xapi/XapiAssignmentExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.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/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><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/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>bf3f5cb6f48ae8130ce5e697f89af74e5478d837</commitId><timestamp>1779385122000</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-05-21 23:08:42 +0530</date><id>bf3f5cb6f48ae8130ce5e697f89af74e5478d837</id><msg>Refactor</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/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><commitId>76f486c57bf8d9f2b7c94489aa23fe28b0312655</commitId><timestamp>1779425435000</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-05-22 10:20:35 +0530</date><id>76f486c57bf8d9f2b7c94489aa23fe28b0312655</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>2cabdbcacc184bf2f4e3e83d7e48be82048561aa</commitId><timestamp>1779428765000</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-05-22 11:16:05 +0530</date><id>2cabdbcacc184bf2f4e3e83d7e48be82048561aa</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>9221b67a0ca38a6f16d1d9ccbb54f333042f1ee7</commitId><timestamp>1779431351000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor AssignmentDetailViewModel.
</comment><date>2026-05-22 10:29:11 +0400</date><id>9221b67a0ca38a6f16d1d9ccbb54f333042f1ee7</id><msg>Refactor AssignmentDetailViewModel.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><commitId>c1848dc0dbd96148edd807f9eaf569a9cfd73872</commitId><timestamp>1779432596000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes for AssignmentEditViewModel.kt
a) fix faulty logic on loading most recent statement
b) set random id for new statement
</comment><date>2026-05-22 10:49:56 +0400</date><id>c1848dc0dbd96148edd807f9eaf569a9cfd73872</id><msg>Fixes for AssignmentEditViewModel.kt</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><commitId>cd998c38325f2b282447a4287c9bdc4b21a76ca0</commitId><timestamp>1779440779000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix serialization of XapiGroup: As per Xapi spec XapiGroup objectType must be group, must not be null. Must add custom serializer to ensure default property is still serialized.
</comment><date>2026-05-22 13:06:19 +0400</date><id>cd998c38325f2b282447a4287c9bdc4b21a76ca0</id><msg>Fix serialization of XapiGroup: As per Xapi spec XapiGroup objectType must be group, must not be null. Must add custom serializer to ensure default property is still serialized.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.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/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><commitId>108ff03fc1ba00d90840dd61b7f0af39f8faba88</commitId><timestamp>1779441407000</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-05-22 14:46:47 +0530</date><id>108ff03fc1ba00d90840dd61b7f0af39f8faba88</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><commitId>f4fd5c11da192995d9b3eb04cf24a93e5230a415</commitId><timestamp>1779442085000</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-05-22 14:58:05 +0530</date><id>f4fd5c11da192995d9b3eb04cf24a93e5230a415</id><msg>Refactor</msg><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-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</affectedPath><commitId>5e64863acd46d2a1b25cbebb45ce389222cc483e</commitId><timestamp>1779442679000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix for XapiActorSerializer: had incorrect use of jsonPrimitive.content

Should use contentOrNull
</comment><date>2026-05-22 13:37:59 +0400</date><id>5e64863acd46d2a1b25cbebb45ce389222cc483e</id><msg>Fix for XapiActorSerializer: had incorrect use of jsonPrimitive.content</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><commitId>3b5d793672e5e1a1ce501eb1316519eed54c6b48</commitId><timestamp>1779442786000</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-05-22 15:09:46 +0530</date><id>3b5d793672e5e1a1ce501eb1316519eed54c6b48</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsParamsExt.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</affectedPath><commitId>7f831b0feddc3b8b416814432a83c71c0fe2178a</commitId><timestamp>1779452120000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rework handling of xAPI parameters in http statements datasource
</comment><date>2026-05-22 16:15:20 +0400</date><id>7f831b0feddc3b8b416814432a83c71c0fe2178a</id><msg>Rework handling of xAPI parameters in http statements datasource</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsParamsExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><commitId>840f84da0100022bfc14f482aaa2be050c346b9c</commitId><timestamp>1779452403000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add missing verb parameter to XapiStatementsResourceHttp
</comment><date>2026-05-22 16:20:03 +0400</date><id>840f84da0100022bfc14f482aaa2be050c346b9c</id><msg>Add missing verb parameter to XapiStatementsResourceHttp</msg><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><commitId>82b3662caa7f607e4fb6f5771544dbe628ea8a8a</commitId><timestamp>1779452652000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add missing since/until to fromParams in XapiStatementsResource
</comment><date>2026-05-22 16:24:12 +0400</date><id>82b3662caa7f607e4fb6f5771544dbe628ea8a8a</id><msg>Add missing since/until to fromParams in XapiStatementsResource</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/ExternalLinkEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCaseAndroid.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/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/externallink/ExternalLinkEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/ExternalLinkEditScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><commitId>8bcd3dcfe340b0015198508de3f87ccd903972bb</commitId><timestamp>1779460935000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Clean up
</comment><date>2026-05-22 20:12:15 +0530</date><id>8bcd3dcfe340b0015198508de3f87ccd903972bb</id><msg>Clean up</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/ExternalLinkEditScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/externallink/ExternalLinkEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/ExternalLinkEditViewModel.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-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><commitId>47a8dcbb6773358898f4ea11af4ab33c32f8cb78</commitId><timestamp>1779461272000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Clean up
</comment><date>2026-05-22 20:17:52 +0530</date><id>47a8dcbb6773358898f4ea11af4ab33c32f8cb78</id><msg>Clean up</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</affectedPath><commitId>25396cb239abba2df83a8a97d7cd1d4741731a71</commitId><timestamp>1779467685000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Change Person.asAgent to use only guid to avoid the actor id changing when username is first set.
Update RespectSessionAndPerson to use Person.asXapiAgent
</comment><date>2026-05-22 20:34:45 +0400</date><id>25396cb239abba2df83a8a97d7cd1d4741731a71</id><msg>Change Person.asAgent to use only guid to avoid the actor id changing when username is first set.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_005_add_school_self_registration_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>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/002_browse_lessons_test.yaml</affectedPath><commitId>be8ae34e1ba674171ddbc23e495c3e42d664a27f</commitId><timestamp>1779507391000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro E2E test flows and move several tests from pending to active.
</comment><date>2026-05-23 07:36:31 +0400</date><id>be8ae34e1ba674171ddbc23e495c3e42d664a27f</id><msg>Update Maestro E2E test flows and move several tests from pending to active.</msg><path><editType>delete</editType><file>.maestro/pending-flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/002_browse_lessons_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>add</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>0a45c804d95d51f4a45ab63049a742e5b0f1582d</commitId><timestamp>1779513816000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>moved tests to pendifolder to focus on 003
</comment><date>2026-05-23 09:23:36 +0400</date><id>0a45c804d95d51f4a45ab63049a742e5b0f1582d</id><msg>moved tests to pendifolder to focus on 003</msg><path><editType>delete</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/pending-flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</affectedPath><affectedPath>respect-server/well-known/terms.html</affectedPath><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/view/assignment/detail/AssignmentDetailHeaderCell.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</affectedPath><commitId>e63472824064d448523e45a056bbc320787f0aa6</commitId><timestamp>1779532250000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Cleanup of AssignmentDetailScreen Jetpack compose UI
</comment><date>2026-05-23 14:30:50 +0400</date><id>e63472824064d448523e45a056bbc320787f0aa6</id><msg>Cleanup of AssignmentDetailScreen Jetpack compose UI</msg><path><editType>add</editType><file>respect-server/well-known/terms.html</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</affectedPath><commitId>21a7ecd10f29c8c7e38b589e7079ff8b6407a865</commitId><timestamp>1779533738000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Correct name on XapiAssignmentProgress and ResultRow from rawScore to scoreScaled.
</comment><date>2026-05-23 14:55:38 +0400</date><id>21a7ecd10f29c8c7e38b589e7079ff8b6407a865</id><msg>Correct name on XapiAssignmentProgress and ResultRow from rawScore to scoreScaled.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.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-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</affectedPath><commitId>baab71ea8ac8c785c886e7bdc6cb7e9e0b6bd107</commitId><timestamp>1779539985000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Cleanup of AssignmentDetailScreen work in progress.
</comment><date>2026-05-23 16:39:45 +0400</date><id>baab71ea8ac8c785c886e7bdc6cb7e9e0b6bd107</id><msg>Cleanup of AssignmentDetailScreen work in progress.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.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/xapi/XapiAssignmentExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt</affectedPath><commitId>e421ec069755c66a87ea6927da234d7c74adf3e5</commitId><timestamp>1779545756000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Cleanup of AssignmentDetailScreen work in progress.
</comment><date>2026-05-23 18:15:56 +0400</date><id>e421ec069755c66a87ea6927da234d7c74adf3e5</id><msg>Cleanup of AssignmentDetailScreen work in progress.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.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-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</affectedPath><commitId>f4b44e4f713fc508e145f38fc84eb52d3e711812</commitId><timestamp>1779554046000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Cleanup AssignmentDetailScreen when viewed as student.
</comment><date>2026-05-23 20:34:06 +0400</date><id>f4b44e4f713fc508e145f38fc84eb52d3e711812</id><msg>Cleanup AssignmentDetailScreen when viewed as student.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningUnitRef.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/langMapString.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</affectedPath><commitId>1673297bb71599976da03c33374af415ae425fc5</commitId><timestamp>1779611178000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>AssignmentEdit UI tidyup in progress.
</comment><date>2026-05-24 12:26:18 +0400</date><id>1673297bb71599976da03c33374af415ae425fc5</id><msg>AssignmentEdit UI tidyup in progress.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningUnitRef.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/langMapString.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</affectedPath><commitId>c31cb7706fb96b925df52eeea3b6b0bf7cae05b8</commitId><timestamp>1779630642000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>AssignmentEdit tidyup: use ListItme not our own mix of columns/rows.
</comment><date>2026-05-24 17:50:42 +0400</date><id>c31cb7706fb96b925df52eeea3b6b0bf7cae05b8</id><msg>AssignmentEdit tidyup: use ListItme not our own mix of columns/rows.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>3ab4aa40863a01e4c8dbb74a23f4986dec7c4f5d</commitId><timestamp>1779634442000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix mistake in XapiStatementsResourceDb that would set the wrong activity id on an empty result.
</comment><date>2026-05-24 18:54:02 +0400</date><id>3ab4aa40863a01e4c8dbb74a23f4986dec7c4f5d</id><msg>Fix mistake in XapiStatementsResourceDb that would set the wrong activity id on an empty result.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>f65d6c83bd8907026f22148b415ae07b885fcc56</commitId><timestamp>1779635116000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Merge fix to set xapi activity id correctly for empty assignment result.
</comment><date>2026-05-24 19:05:16 +0400</date><id>f65d6c83bd8907026f22148b415ae07b885fcc56</id><msg>Merge fix to set xapi activity id correctly for empty assignment result.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.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>60fb477a35d8e3a3677aa0bd43d21434d841ec7a</commitId><timestamp>1779635163000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Temporary test relaxation.
</comment><date>2026-05-24 19:06:03 +0400</date><id>60fb477a35d8e3a3677aa0bd43d21434d841ec7a</id><msg>Temporary test relaxation.</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/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>74e819ac94fda405fe6cd605c23024ce34158da3</commitId><timestamp>1779678544000</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
</comment><date>2026-05-25 08:39:04 +0530</date><id>74e819ac94fda405fe6cd605c23024ce34158da3</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><commitId>f9ee19b5a2e22edd57850400017e70242ac0ad1f</commitId><timestamp>1779679761000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiStatementResourceDb to check if statement object is missing a required objectType value and throw exception if needed.

Update XapiStatement serializer to use XapiStatementTransformingSerializer by default.

Update XapiStatementRef to set objectType by default and ensure it is serialized.
</comment><date>2026-05-25 07:29:21 +0400</date><id>f9ee19b5a2e22edd57850400017e70242ac0ad1f</id><msg>Update XapiStatementResourceDb to check if statement object is missing a required objectType value and throw exception if needed.</msg><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-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>fefd84413a90acd4da0844ce39ee4559d4bfa2a6</commitId><timestamp>1779685294000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update getAssignmentProgress to handle order of activities and avoid potential to lose web pub manifest url if activity were to be updated.
</comment><date>2026-05-25 09:01:34 +0400</date><id>fefd84413a90acd4da0844ce39ee4559d4bfa2a6</id><msg>Update getAssignmentProgress to handle order of activities and avoid potential to lose web pub manifest url if activity were to be updated.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.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>53c67d32ba22b9d476c53ddd77e15bfd6c76d1a5</commitId><timestamp>1779687654000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Temporary test relaxations on filter chips and list screen.
</comment><date>2026-05-25 09:40:54 +0400</date><id>53c67d32ba22b9d476c53ddd77e15bfd6c76d1a5</id><msg>Temporary test relaxations on filter chips and list screen.</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-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/icon.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</affectedPath><commitId>2be6a86bf4572c04068c1bb2148a4b93dee9700d</commitId><timestamp>1779694403000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add improved assignment demo result learning unit.
</comment><date>2026-05-25 11:33:23 +0400</date><id>2be6a86bf4572c04068c1bb2148a4b93dee9700d</id><msg>Add improved assignment demo result learning unit.</msg><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json</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-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/assignable-unit-1/icon.png</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><affectedPath>.maestro/flows/subflows/create_account_for_class_member.yaml</affectedPath><commitId>4f091a702ee03f310ee29616984750867285a551</commitId><timestamp>1779698784000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro E2E test flows for assignment management and class member creation.
</comment><date>2026-05-25 12:46:24 +0400</date><id>4f091a702ee03f310ee29616984750867285a551</id><msg>Update Maestro E2E test flows for assignment management and class member creation.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class_with_members.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/create_account_for_class_member.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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>9bfff4188451c9a77c2c54ed67faf036bc81ec27</commitId><timestamp>1779699047000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove redundant assertions and taps from the admin assignment flow.
</comment><date>2026-05-25 12:50:47 +0400</date><id>9bfff4188451c9a77c2c54ed67faf036bc81ec27</id><msg>Remove redundant assertions and taps from the admin assignment flow.</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-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</affectedPath><commitId>356092c9b2a23e02199be90b21b1a30601f9dff7</commitId><timestamp>1779700652000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add fields to assignable unit completion.
</comment><date>2026-05-25 13:17:32 +0400</date><id>356092c9b2a23e02199be90b21b1a30601f9dff7</id><msg>Add fields to assignable unit completion.</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><commitId>c01cb418a27995f94628d86616e926983ee90c78</commitId><timestamp>1779701250000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix AssignmentEditViewModel bug: timestamp was not being updated when saving, which led to undefined results when editing/updating.
</comment><date>2026-05-25 13:27:30 +0400</date><id>c01cb418a27995f94628d86616e926983ee90c78</id><msg>Fix AssignmentEditViewModel bug: timestamp was not being updated when saving, which led to undefined results when editing/updating.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.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>9189c7b548339d3a1c1702d77d5af5cfbf670a31</commitId><timestamp>1779702080000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Clean up `003_admin_user_assigns_assignment_to_a_class_test.yaml` Maestro flow.
</comment><date>2026-05-25 13:41:20 +0400</date><id>9189c7b548339d3a1c1702d77d5af5cfbf670a31</id><msg>Clean up `003_admin_user_assigns_assignment_to_a_class_test.yaml` Maestro flow.</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><commitId>995e33ef198e7bcef60a304b3a77c2b545ebc92a</commitId><timestamp>1779702414000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flow for assignment management.
</comment><date>2026-05-25 13:46:54 +0400</date><id>995e33ef198e7bcef60a304b3a77c2b545ebc92a</id><msg>Update Maestro test flow for assignment management.</msg><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/subflows/admin_add_class_with_members.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>bd884aa90fe07bd12ee8587e7129798025a05fa8</commitId><timestamp>1779702738000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix total counts in filter chips on Assignment Detail in student mode.
</comment><date>2026-05-25 13:52:18 +0400</date><id>bd884aa90fe07bd12ee8587e7129798025a05fa8</id><msg>Fix total counts in filter chips on Assignment Detail in student mode.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><commitId>9909a4904ad7702fa2837fd88b20eb14ebc8f9a4</commitId><timestamp>1779702904000</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 screen
</comment><date>2026-05-25 15:25:04 +0530</date><id>9909a4904ad7702fa2837fd88b20eb14ebc8f9a4</id><msg>Refactor screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><commitId>fb89527c916f5a01671cbc98447f2724c92565fa</commitId><timestamp>1779709107000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix filtering of assignment result rows for a particular student.
</comment><date>2026-05-25 15:38:27 +0400</date><id>fb89527c916f5a01671cbc98447f2724c92565fa</id><msg>Fix filtering of assignment result rows for a particular student.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.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>8dd5e594c4e034a1d1f89a54b756a4c5261788b3</commitId><timestamp>1779711283000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro assignment flow test data and assertions.
</comment><date>2026-05-25 16:14:43 +0400</date><id>8dd5e594c4e034a1d1f89a54b756a4c5261788b3</id><msg>Update Maestro assignment flow test data and assertions.</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>a5bf144a8757cb15e94c5fcb71435ec3c69e3a2c</commitId><timestamp>1779712547000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow for admin assignment to improve navigation and verification.
</comment><date>2026-05-25 16:35:47 +0400</date><id>a5bf144a8757cb15e94c5fcb71435ec3c69e3a2c</id><msg>Update Maestro flow for admin assignment to improve navigation and verification.</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-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</affectedPath><commitId>e7e3029891c752d0e60a2734bdd615b8715086b7</commitId><timestamp>1779714941000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update statement maker demos to show text after statement submitted successfully.
</comment><date>2026-05-25 17:15:41 +0400</date><id>e7e3029891c752d0e60a2734bdd615b8715086b7</id><msg>Update statement maker demos to show text after statement submitted successfully.</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>1fac63bcbe3fbab55e86ecd049c0735fd62f90bf</commitId><timestamp>1779715117000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add assertions for statement delivery confirmation in Maestro assignment flow.
</comment><date>2026-05-25 17:18:37 +0400</date><id>1fac63bcbe3fbab55e86ecd049c0735fd62f90bf</id><msg>Add assertions for statement delivery confirmation in Maestro assignment flow.</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/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</affectedPath><commitId>1428bb511b85d5ea2d8ffa16e43d664c662e18cd</commitId><timestamp>1779717759000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update WebViewActivity to allow http/https mixed content for localhost.
Update xapi scripts to add extra log.
</comment><date>2026-05-25 18:02:39 +0400</date><id>1428bb511b85d5ea2d8ffa16e43d664c662e18cd</id><msg>Update WebViewActivity to allow http/https mixed content for localhost.</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</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-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>f3cd6c68518ea5a7dbd2f61787a09f3eeb5d448a</commitId><timestamp>1779720208000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix NanoHttpd handling of CORS headers.

When https origin page made a call to non-https origin, the referer header was removed.
</comment><date>2026-05-25 18:43:28 +0400</date><id>f3cd6c68518ea5a7dbd2f61787a09f3eeb5d448a</id><msg>Fix NanoHttpd handling of CORS headers.</msg><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>b9ea50d3e20266337617914abac0864e65889712</commitId><timestamp>1779721263000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro E2E test flows from pending to active status.
</comment><date>2026-05-25 19:01:03 +0400</date><id>b9ea50d3e20266337617914abac0864e65889712</id><msg>Move Maestro E2E test flows from pending to active status.</msg><path><editType>add</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/pending-flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</affectedPath><commitId>9b6cdde1c411a629b955612be06d742405b18cbd</commitId><timestamp>1779737854000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress fixes for AssignmentList screen.

Implement initial queries to get info direct from DB.
Add index on XapiStatementContextActivityJoin
Update statement result query to include only statements which are linked to the given assignment using context join.
</comment><date>2026-05-25 23:37:34 +0400</date><id>9b6cdde1c411a629b955612be06d742405b18cbd</id><msg>Work in progress fixes for AssignmentList screen.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.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-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>23cdaaabd4457f82553c77f044238627080152e6</commitId><timestamp>1779775581000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Look for both resultContext.completion and completed verb to check for assignment completion.

Update assignment list repository function to use channelFlow.
</comment><date>2026-05-26 10:06:21 +0400</date><id>23cdaaabd4457f82553c77f044238627080152e6</id><msg>Look for both resultContext.completion and completed verb to check for assignment completion.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.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-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>7ac9ba006bbd1102ddaf5c2c46a3deff9a3e5175</commitId><timestamp>1779789738000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes/improvements for assignment listing/summaries:

1) Fix XapiActivityLangMapEntry canonical definition updates: this was not handling update scenarios where different entries were updated in different batches. Switch it to using a key hash.

2) Update channel flow on repository getAssignmentListAsFlow to fetch the assignee XapiGroup saved statement as required.
</comment><date>2026-05-26 14:02:18 +0400</date><id>7ac9ba006bbd1102ddaf5c2c46a3deff9a3e5175</id><msg>Fixes/improvements for assignment listing/summaries:</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.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-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.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/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>e80ab0a2de41de32c54f8c68bc6ece28212fb923</commitId><timestamp>1779803140000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes/improvements for assignments listing:

1) Fix inconsistent assign verb id: was using both the adlnet and activitystreams verb resulting in a failing unit test.
2) Implement query for assignment list to count number of students who completed all tasks in assignment (eg teacher view).
3) Update xapi statement resource unit testing to check list query.
</comment><date>2026-05-26 17:45:40 +0400</date><id>e80ab0a2de41de32c54f8c68bc6ece28212fb923</id><msg>Fixes/improvements for assignments listing:</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><commitId>fee233988fd787e9c795e311ffc5b92850c3ea28</commitId><timestamp>1779815825000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix query checking number of students who completed assignment for list summary screen. Update XapiStatementsResourceRepository to load all completed and assign verb statements are loaded.
</comment><date>2026-05-26 21:17:05 +0400</date><id>fee233988fd787e9c795e311ffc5b92850c3ea28</id><msg>Fix query checking number of students who completed assignment for list summary screen. Update XapiStatementsResourceRepository to load all completed and assign verb statements are loaded.</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</affectedPath><commitId>81f0203f813740162b53652c6bafada243e7727d</commitId><timestamp>1779816466000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tighten up assignment list query to check for use of the assignment recipe.
</comment><date>2026-05-26 21:27:46 +0400</date><id>81f0203f813740162b53652c6bafada243e7727d</id><msg>Tighten up assignment list query to check for use of the assignment recipe.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.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>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</affectedPath><commitId>7a876b4bdfae2da4b42f58d3579f014e65ebacb2</commitId><timestamp>1779820157000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add average score to student assignment list results.
</comment><date>2026-05-26 22:29:17 +0400</date><id>7a876b4bdfae2da4b42f58d3579f014e65ebacb2</id><msg>Add average score to student assignment list results.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.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-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml</affectedPath><commitId>7c0488b4aa583bec1837b6b7bdd43e0d3fc38897</commitId><timestamp>1779862909000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move add school maestro test to pending flows: this is being disabled anyhow
</comment><date>2026-05-27 10:21:49 +0400</date><id>7c0488b4aa583bec1837b6b7bdd43e0d3fc38897</id><msg>Move add school maestro test to pending flows: this is being disabled anyhow</msg><path><editType>delete</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_005_add_school_self_registration_test.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/components/RespectEmptyListComponent.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><commitId>fde89bedc72b3d20acd920d547aaabbb8a04f223</commitId><timestamp>1779867775000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Put in empty state message for assignment and class list screens.
</comment><date>2026-05-27 11:42:55 +0400</date><id>fde89bedc72b3d20acd920d547aaabbb8a04f223</id><msg>Put in empty state message for assignment and class list screens.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt</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-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiConflictException.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</affectedPath><commitId>7ba5492d871721282c05f75991b7cbc889f90628</commitId><timestamp>1779869735000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Block statement submission with the same id.
</comment><date>2026-05-27 12:15:35 +0400</date><id>7ba5492d871721282c05f75991b7cbc889f90628</id><msg>Block statement submission with the same id.</msg><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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiConflictException.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><commitId>dfa5ee0e28b1bc20e03bbae1e95d0efbe1d8766d</commitId><timestamp>1779870660000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add additional xapi statement validations.
</comment><date>2026-05-27 12:31:00 +0400</date><id>dfa5ee0e28b1bc20e03bbae1e95d0efbe1d8766d</id><msg>Add additional xapi statement validations.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.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>4f6adda2dd8f01cfe29de527d20d28a99e52ac03</commitId><timestamp>1779875346000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove visibility assertions for removed filter chips on assignment list screen.
</comment><date>2026-05-27 13:49:06 +0400</date><id>4f6adda2dd8f01cfe29de527d20d28a99e52ac03</id><msg>Remove visibility assertions for removed filter chips on assignment list screen.</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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</affectedPath><commitId>28a45645f6f31e5c237788590d5026763a0e5648</commitId><timestamp>1779877477000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add database migration for Xapi tables.
</comment><date>2026-05-27 14:24:37 +0400</date><id>28a45645f6f31e5c237788590d5026763a0e5648</id><msg>Add database migration for Xapi tables.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><commitId>3f7a01614605e335c435e72d037b0bec12e00088</commitId><timestamp>1779878677000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add initial xapi statement write permission check.
</comment><date>2026-05-27 14:44:37 +0400</date><id>3f7a01614605e335c435e72d037b0bec12e00088</id><msg>Add initial xapi statement write permission check.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><commitId>678990c5e7ea1e400efbabd5acac96f569e3b1fb</commitId><timestamp>1779886413000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add Xapi read permission checks.
</comment><date>2026-05-27 16:53:33 +0400</date><id>678990c5e7ea1e400efbabd5acac96f569e3b1fb</id><msg>Add Xapi read permission checks.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.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-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>3828f18889db89a88748334ed64d31ccd33c343c</commitId><timestamp>1779891771000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement auth user enforcement for Nanohttpd.
</comment><date>2026-05-27 18:22:51 +0400</date><id>3828f18889db89a88748334ed64d31ccd33c343c</id><msg>Implement auth user enforcement for Nanohttpd.</msg><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.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/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.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-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</affectedPath><commitId>8f1101ea6486d52ee87808ad5431297057581938</commitId><timestamp>1779893950000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Hide assignments when logged in as parent.
</comment><date>2026-05-27 18:59:10 +0400</date><id>8f1101ea6486d52ee87808ad5431297057581938</id><msg>Hide assignments when logged in as parent.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><commitId>151bf971aa060028ebb1d8ad15b8a48368d23f57</commitId><timestamp>1779895048000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update handling of Xapi Activity extension updates: use a merge/update approach for canonical definition.
</comment><date>2026-05-27 19:17:28 +0400</date><id>151bf971aa060028ebb1d8ad15b8a48368d23f57</id><msg>Update handling of Xapi Activity extension updates: use a merge/update approach for canonical definition.</msg><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><commitId>389d983e0c03f7aefda585860aea1dd87d63d75b</commitId><timestamp>1779897371000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Handle parsing deadline on assignment list screen.
</comment><date>2026-05-27 19:56:11 +0400</date><id>389d983e0c03f7aefda585860aea1dd87d63d75b</id><msg>Handle parsing deadline on assignment list screen.</msg><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/assignment/list/AssignmentListItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</affectedPath><commitId>ea25cf858db71cb4b9feaba2a6eb4ec82b355ecb</commitId><timestamp>1779899544000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Handle display of task icon(s) on assignment.
</comment><date>2026-05-27 20:32:24 +0400</date><id>ea25cf858db71cb4b9feaba2a6eb4ec82b355ecb</id><msg>Handle display of task icon(s) on assignment.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.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/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</affectedPath><commitId>df8ee4593e0b0a63fad61dcbcf7517dde113ce0c</commitId><timestamp>1779901491000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix learning unit detail screen to show assign button as expected.
</comment><date>2026-05-27 21:04:51 +0400</date><id>df8ee4593e0b0a63fad61dcbcf7517dde113ce0c</id><msg>Fix learning unit detail screen to show assign button as expected.</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-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.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-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><commitId>12fb877fe5e1df6012dc516938da6013decd7687</commitId><timestamp>1779901773000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fetch all CMI5 verbs that might have completion data for assignment list screen summary.
</comment><date>2026-05-27 21:09:33 +0400</date><id>12fb877fe5e1df6012dc516938da6013decd7687</id><msg>Fetch all CMI5 verbs that might have completion data for assignment list screen summary.</msg><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-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/resources/directories/default.properties</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt</affectedPath><commitId>8225490149bf44db6b3d3e74c2f51b8ee17deda3</commitId><timestamp>1779909189000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add country dropdown to get started screen.
</comment><date>2026-05-27 23:13:09 +0400</date><id>8225490149bf44db6b3d3e74c2f51b8ee17deda3</id><msg>Add country dropdown to get started screen.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/resources/directories/default.properties</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>d5fd437afab1fb22fc79fc65e1c3ae2a99f90936</commitId><timestamp>1779909639000</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-05-27 23:20:39 +0400</date><id>d5fd437afab1fb22fc79fc65e1c3ae2a99f90936</id><msg>Bump version.</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-client/proguard-rules.pro</affectedPath><affectedPath>respect-lib-xapi-ipc-server/consumer-rules.pro</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/GetStatementParamsExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/AndroidManifest.xml</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>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/.gitignore</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/consumer-rules.pro</affectedPath><affectedPath>respect-lib-xapi-ipc-client/.gitignore</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/proguard-rules.pro</affectedPath><affectedPath>respect-lib-xapi-ipc-server/proguard-rules.pro</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/.gitignore</affectedPath><affectedPath>respect-lib-xapi-ipc-client/consumer-rules.pro</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</affectedPath><commitId>e4f881ce2918c9a7ea38486638c0494cfb10facd</commitId><timestamp>1780317765000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial design to run xAPI over Android Messenger IPC.
</comment><date>2026-06-01 16:42:45 +0400</date><id>e4f881ce2918c9a7ea38486638c0494cfb10facd</id><msg>Initial design to run xAPI over Android Messenger IPC.</msg><path><editType>add</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/.gitignore</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/consumer-rules.pro</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-client/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/GetStatementParamsExt.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-client/consumer-rules.pro</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/.gitignore</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-client/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/consumer-rules.pro</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-client/.gitignore</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/proguard-rules.pro</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-client/proguard-rules.pro</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/proguard-rules.pro</file></path><path><editType>add</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>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.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/ManagerServerCLI.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><commitId>093196e45299f8214fc8ecc2c05939d0e39b3a76</commitId><timestamp>1780382702000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update server side to support virtual host based directories.
</comment><date>2026-06-02 10:45:02 +0400</date><id>093196e45299f8214fc8ecc2c05939d0e39b3a76</id><msg>Update server side to support virtual host based directories.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.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-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.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/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.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/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><commitId>66d3ca8590bba0da34a10c29919d5a042d0bdd81</commitId><timestamp>1780389045000</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 support for registering schools using a web form and server config set PIN.
</comment><date>2026-06-02 12:30:45 +0400</date><id>66d3ca8590bba0da34a10c29919d5a042d0bdd81</id><msg>Initial implementation of support for registering schools using a web form and server config set PIN.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.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/resources/application.conf</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-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><commitId>ce96fad7bd59d2437f6b90c83268706a8ee6a384</commitId><timestamp>1780396495000</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-06-02 14:34:55 +0400</date><id>ce96fad7bd59d2437f6b90c83268706a8ee6a384</id><msg>Bump version</msg><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><commitId>10d6b02479fe46ae569e56fd0515d59acf5a67e5</commitId><timestamp>1780473858000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update Maestro README with instructions on how to run a test controlled by a CI server on a local physical device.
</comment><date>2026-06-03 12:04:18 +0400</date><id>10d6b02479fe46ae569e56fd0515d59acf5a67e5</id><msg>Update Maestro README with instructions on how to run a test controlled by a CI server on a local physical device.</msg><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><commitId>4bd1105d9f95440e89e1dc47477581f162d4b715</commitId><timestamp>1780474302000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add tips on running Maestro tests on a physical local device from CI server.
</comment><date>2026-06-03 12:11:42 +0400</date><id>4bd1105d9f95440e89e1dc47477581f162d4b715</id><msg>Add tips on running Maestro tests on a physical local device from CI server.</msg><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><commitId>5ece121244123e440321bd58939829f7e217790b</commitId><timestamp>1780477568000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix example ssh command
</comment><date>2026-06-03 13:06:08 +0400</date><id>5ece121244123e440321bd58939829f7e217790b</id><msg>Fix example ssh command</msg><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_APPLISTING_RECIPE.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>1455009f3aed495c38bf809c6e1ef1b8d6927afe</commitId><timestamp>1780478007000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xapi recipe for launchable app listing.
</comment><date>2026-06-03 13:13:27 +0400</date><id>1455009f3aed495c38bf809c6e1ef1b8d6927afe</id><msg>Add xapi recipe for launchable app listing.</msg><path><editType>add</editType><file>respect-lib-xapi-core/README_APPLISTING_RECIPE.md</file></path><path><editType>add</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_APPLISTING_RECIPE.md</affectedPath><commitId>796a2bb18a6e2fe91c13bdb8975f8eee3fbdb460</commitId><timestamp>1780478375000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xapi recipe for launchable app listing.
</comment><date>2026-06-03 13:19:35 +0400</date><id>796a2bb18a6e2fe91c13bdb8975f8eee3fbdb460</id><msg>Add xapi recipe for launchable app listing.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/README_APPLISTING_RECIPE.md</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/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</affectedPath><commitId>f11d2017d71ebedbf6a1c62dffb1a18a6c478b68</commitId><timestamp>1780480420000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Resolve conflicts
</comment><date>2026-06-03 15:23:40 +0530</date><id>f11d2017d71ebedbf6a1c62dffb1a18a6c478b68</id><msg>Resolve conflicts</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/playlists/mapping/edit/PlaylistEditViewModel.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/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>4be8fd60360e695c9792f78ac117fe26247f5e83</commitId><timestamp>1780485429000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove echo of dir admin.
</comment><date>2026-06-03 15:17:09 +0400</date><id>4be8fd60360e695c9792f78ac117fe26247f5e83</id><msg>Remove echo of dir admin.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CODING_GUIDELINES.md</affectedPath><commitId>e0a2c314d31e83dad64c25ac4e38185d31455cee</commitId><timestamp>1780487152000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update CODING_GUIDELINES.md

Add to very important section: requirement to ensure all commits comply with the coding guidelines and requirement to commit each working day.
</comment><date>2026-06-03 15:45:52 +0400</date><id>e0a2c314d31e83dad64c25ac4e38185d31455cee</id><msg>Update CODING_GUIDELINES.md</msg><path><editType>edit</editType><file>CODING_GUIDELINES.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_CLASS_RECIPE.md</affectedPath><affectedPath>respect-lib-xapi-core/README_APPLISTING_RECIPE.md</affectedPath><commitId>5aa1d38fd6580a5a07d66d26e15efc6c949338d0</commitId><timestamp>1780490318000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add recipe for classes management on xAPI.
</comment><date>2026-06-03 16:38:38 +0400</date><id>5aa1d38fd6580a5a07d66d26e15efc6c949338d0</id><msg>Add recipe for classes management on xAPI.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/README_APPLISTING_RECIPE.md</file></path><path><editType>add</editType><file>respect-lib-xapi-core/README_CLASS_RECIPE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><commitId>d620b07b1b2a7d0c10fd46bd3080a92098b5c25a</commitId><timestamp>1780557973000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md

Delete section on using adb over an SSH tunnel: was found to be not practical due to performance issues.
</comment><date>2026-06-04 11:26:13 +0400</date><id>d620b07b1b2a7d0c10fd46bd3080a92098b5c25a</id><msg>Update README.md</msg><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><commitId>d41f5c89b07f513c393b589959ab167e1f89ec58</commitId><timestamp>1780558011000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update README.md

Fix ordering of maestro readme.
</comment><date>2026-06-04 11:26:51 +0400</date><id>d41f5c89b07f513c393b589959ab167e1f89ec58</id><msg>Update README.md</msg><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AppListingSummary.kt</affectedPath><commitId>9f5154efbec4041b6ea5fa7626fbd4927ce257d1</commitId><timestamp>1780574429000</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 AppListingSummary model for xAPI app listing recipe
</comment><date>2026-06-04 17:30:29 +0530</date><id>9f5154efbec4041b6ea5fa7626fbd4927ce257d1</id><msg>Add AppListingSummary model for xAPI app listing recipe</msg><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AppListingSummary.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AppListingSummary.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><commitId>8c989ff0ab934017b08fa4b7597b7ab0d2d4965c</commitId><timestamp>1780652865000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Implement xAPI app listing recipe and replace AppListingSummary with XapiStatement extension properties.
</comment><date>2026-06-05 15:17:45 +0530</date><id>8c989ff0ab934017b08fa4b7597b7ab0d2d4965c</id><msg>Implement xAPI app listing recipe and replace AppListingSummary with XapiStatement extension properties.</msg><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AppListingSummary.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.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>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><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/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-05-04.0.log</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/AssignmentResultExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt</affectedPath><commitId>4a012c9f2b6a57776b401ab7c6f133372c2dfbf4</commitId><timestamp>1780665131000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xAPI extension functions required for common use cases.

Remove some unnecessary functions that were introduced with the assignment merge.
</comment><date>2026-06-05 17:12:11 +0400</date><id>4a012c9f2b6a57776b401ab7c6f133372c2dfbf4</id><msg>Add xAPI extension functions required for common use cases.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/AssignmentResultExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/log/respect-server.2026-05-04.0.log</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.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/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</affectedPath><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/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/main.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LangMapExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/App.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt</affectedPath><commitId>6d34bd4995ceae080606ea1aceedf1776b507845</commitId><timestamp>1780824941000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improvements for Xapi based data handling : work in progress.

Add UiText support for LangMaps. Put OpenEel constants into one logical place.
</comment><date>2026-06-07 13:35:41 +0400</date><id>6d34bd4995ceae080606ea1aceedf1776b507845</id><msg>Improvements for Xapi based data handling : work in progress.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/App.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LangMapExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/main.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</affectedPath><commitId>08c4e0547093dec30b8044be15fb991a4c0113e1</commitId><timestamp>1780897132000</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 `getAppListAsFlow` and associated XAPI application listing extensions.
</comment><date>2026-06-08 11:08:52 +0530</date><id>08c4e0547093dec30b8044be15fb991a4c0113e1</id><msg>Remove `getAppListAsFlow` and associated XAPI application listing extensions.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/scripts/school_init.js</affectedPath><commitId>e61e79f9c612ce33185054572d051ce7a535064d</commitId><timestamp>1780904962000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add environment variables that can be used to set the url of the test app manifest for maestro testing.
</comment><date>2026-06-08 11:49:22 +0400</date><id>e61e79f9c612ce33185054572d051ce7a535064d</id><msg>Add environment variables that can be used to set the url of the test app manifest for maestro testing.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/school_init.js</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>9f4649e59071d435537f5286804cc34b168cd2a9</commitId><timestamp>1780905193000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update ci-run-maestro to pass TEST_APP_URL argument through.
</comment><date>2026-06-08 11:53:13 +0400</date><id>9f4649e59071d435537f5286804cc34b168cd2a9</id><msg>Update ci-run-maestro to pass TEST_APP_URL argument through.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><commitId>841735b6a24802b3f31c2cbd7e0f557bfab65776</commitId><timestamp>1780910010000</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 app listing and management to use xAPI statements instead of SchoolApp data sources.
</comment><date>2026-06-08 14:43:30 +0530</date><id>841735b6a24802b3f31c2cbd7e0f557bfab65776</id><msg>Refactor app listing and management to use xAPI statements instead of SchoolApp data sources.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html</affectedPath><commitId>05956799f0039e384a597b85aa08aeead0457ec9</commitId><timestamp>1780923340000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve error message logging in xapi_assignable_unit.js .
</comment><date>2026-06-08 16:55:40 +0400</date><id>05956799f0039e384a597b85aa08aeead0457ec9</id><msg>Improve error message logging in xapi_assignable_unit.js .</msg><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapEditField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</affectedPath><commitId>2ceac40ca0250dba23285062068335e4eb361f88</commitId><timestamp>1780946445000</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 lang map edit field.
</comment><date>2026-06-08 23:20:45 +0400</date><id>2ceac40ca0250dba23285062068335e4eb361f88</id><msg>Initial implementation of lang map edit field.</msg><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapEditField.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/list/AppListViewModel.kt</affectedPath><commitId>a236788e3e2da8167c77b1c40cef2ff880ef4e78</commitId><timestamp>1780983347000</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 unused errorMessage from AppLauncherViewModel and add logging to AppListViewModel's app click handler.
</comment><date>2026-06-09 11:05:47 +0530</date><id>a236788e3e2da8167c77b1c40cef2ff880ef4e78</id><msg>Remove unused errorMessage from AppLauncherViewModel and add logging to AppListViewModel's app click handler.</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapEditField.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.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/assignment/edit/AssignmentEditTaskListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LangMapExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/langMapString.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt</affectedPath><commitId>14511ab072f6ff511891a5dce7cf0f3328df1321</commitId><timestamp>1780991418000</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 lang map edit field.
</comment><date>2026-06-09 11:50:18 +0400</date><id>14511ab072f6ff511891a5dce7cf0f3328df1321</id><msg>Initial implementation of lang map edit field.</msg><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/langMapString.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LangMapExt.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/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapEditField.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><commitId>42d1b44dd3461a813e42ce0274c2357c2c3c8e54</commitId><timestamp>1780993139000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix AssignmentEditScreen

Changing description would change title.
</comment><date>2026-06-09 12:18:59 +0400</date><id>42d1b44dd3461a813e42ce0274c2357c2c3c8e54</id><msg>Fix AssignmentEditScreen</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>32e23ea3f3c2f57ee59b641b15d4144a0f1f3bf5</commitId><timestamp>1781002709000</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 `XapiAppListingConstants` to use constants from `XapiVerb` and `OpenEelXapiConstants` directly.
</comment><date>2026-06-09 16:28:29 +0530</date><id>32e23ea3f3c2f57ee59b641b15d4144a0f1f3bf5</id><msg>Refactor `XapiAppListingConstants` to use constants from `XapiVerb` and `OpenEelXapiConstants` directly.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.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/viewmodel/app/appstate/DisplayString.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</affectedPath><commitId>55b6ec900e8ea5d71463605307b0dc52ae736648</commitId><timestamp>1781012777000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove use of old langmap getTitle function.

Fix composable langmapstring function.
</comment><date>2026-06-09 17:46:17 +0400</date><id>55b6ec900e8ea5d71463605307b0dc52ae736648</id><msg>Remove use of old langmap getTitle function.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/DisplayString.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>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-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><commitId>88daa32d1fc8173832eb00493ef6844e7bb1b0be</commitId><timestamp>1781064527000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Update app title and description to use language maps in xAPI statements and AppListScreen.
</comment><date>2026-06-10 09:38:47 +0530</date><id>88daa32d1fc8173832eb00493ef6844e7bb1b0be</id><msg>Update app title and description to use language maps in xAPI statements and AppListScreen.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.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/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</affectedPath><commitId>b6eb42af2542c6e57ac3af95013ed11a4f36d7b6</commitId><timestamp>1781066181000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add navigation from score cell to statment list screen
</comment><date>2026-06-10 10:06:21 +0530</date><id>b6eb42af2542c6e57ac3af95013ed11a4f36d7b6</id><msg>add navigation from score cell to statment list screen</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/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.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/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</affectedPath><commitId>f7b19da726b44b82bd171534a89380e5ebecb49b</commitId><timestamp>1781085288000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>load statment from xapiStatementsResource
</comment><date>2026-06-10 15:24:48 +0530</date><id>f7b19da726b44b82bd171534a89380e5ebecb49b</id><msg>load statment from xapiStatementsResource</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.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/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</affectedPath><commitId>200e41fc3d4a6fe2d9661437790dc7f1b4617f8a</commitId><timestamp>1781085861000</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-06-10 15:34:21 +0530</date><id>200e41fc3d4a6fe2d9661437790dc7f1b4617f8a</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt</affectedPath><commitId>3337ee0c1aa1ee41734850f16643509a96c93b35</commitId><timestamp>1781167838000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Migrate legacy school apps to xAPI stream during account scope creation.
</comment><date>2026-06-11 14:20:38 +0530</date><id>3337ee0c1aa1ee41734850f16643509a96c93b35</id><msg>Migrate legacy school apps to xAPI stream during account scope creation.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</affectedPath><commitId>6906478ee150761a008094cb8c30cce0c98a1438</commitId><timestamp>1781174471000</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 `migrateSchoolAppsToXapi` utility and clean up `ServerAccountScopeManager` logic.
</comment><date>2026-06-11 16:11:11 +0530</date><id>6906478ee150761a008094cb8c30cce0c98a1438</id><msg>Remove `migrateSchoolAppsToXapi` utility and clean up `ServerAccountScopeManager` logic.</msg><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</affectedPath><commitId>6e4fc4f1660ca4816a8040339bd2dd6ad7c5b651</commitId><timestamp>1781174922000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Revert "Remove `migrateSchoolAppsToXapi` utility and clean up `ServerAccountScopeManager` logic."

This reverts commit 6906478ee150761a008094cb8c30cce0c98a1438.
</comment><date>2026-06-11 16:18:42 +0530</date><id>6e4fc4f1660ca4816a8040339bd2dd6ad7c5b651</id><msg>Revert "Remove `migrateSchoolAppsToXapi` utility and clean up `ServerAccountScopeManager` logic."</msg><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</affectedPath><commitId>554b0f85891a8c41be585805443b71b95f692731</commitId><timestamp>1781174962000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Revert "Migrate legacy school apps to xAPI stream during account scope creation."

This reverts commit 3337ee0c1aa1ee41734850f16643509a96c93b35.
</comment><date>2026-06-11 16:19:22 +0530</date><id>554b0f85891a8c41be585805443b71b95f692731</id><msg>Revert "Migrate legacy school apps to xAPI stream during account scope creation."</msg><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.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/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</affectedPath><commitId>753deaba2dc23e4ea38c1dac6196c7374812cefc</commitId><timestamp>1781176920000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update filter parameter and add definition fallback
</comment><date>2026-06-11 16:52:00 +0530</date><id>753deaba2dc23e4ea38c1dac6196c7374812cefc</id><msg>update filter parameter and add definition fallback</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.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/assignment/detail/AssignmentDetailStudentProgressCell.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</affectedPath><commitId>ad42060e6ea8ba9e66058b874d21c93943147791</commitId><timestamp>1781256610000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: update IpcTestApplication to provide create a school database.
</comment><date>2026-06-12 13:30:10 +0400</date><id>ad42060e6ea8ba9e66058b874d21c93943147791</id><msg>Work in progress: update IpcTestApplication to provide create a school database.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</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/XapiMessengerService.kt</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>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.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/statement/list/StatementListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.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/statement/detail/RawStatementScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.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/statement/list/StatementListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt</affectedPath><commitId>2256cfeb5575310f0ac325a073b0bd1859409c1d</commitId><timestamp>1781257874000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add statement detail and raw statement screen
</comment><date>2026-06-12 15:21:14 +0530</date><id>2256cfeb5575310f0ac325a073b0bd1859409c1d</id><msg>add statement detail and raw statement screen</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.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/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/log/respect-server.2026-05-12.0.log</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</affectedPath><commitId>979673a326f2aa341d2104d4b3d4790280eaaf41</commitId><timestamp>1781264841000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor: Put all xapi related resources under the XapiResource interface.
</comment><date>2026-06-12 15:47:21 +0400</date><id>979673a326f2aa341d2104d4b3d4790280eaaf41</id><msg>Refactor: Put all xapi related resources under the XapiResource interface.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/log/respect-server.2026-05-12.0.log</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.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-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/README.md</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.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/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</affectedPath><commitId>e9bd6e106636089f25547569939a0bcde00e7637</commitId><timestamp>1781272504000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial structure for reply/response IPC messenger.
</comment><date>2026-06-12 17:55:04 +0400</date><id>e9bd6e106636089f25547569939a0bcde00e7637</id><msg>Initial structure for reply/response IPC messenger.</msg><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt</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>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/README.md</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.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>edit</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>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageReply.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.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/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</affectedPath><commitId>d81c7d99004714ca25db4b34989704f43aa5c061</commitId><timestamp>1781274459000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial working send/receive between IPC client and service.
</comment><date>2026-06-12 18:27:39 +0400</date><id>d81c7d99004714ca25db4b34989704f43aa5c061</id><msg>Initial working send/receive between IPC client and service.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.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>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.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>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageReply.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageReply.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/appendix-a-long-statement.json</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/sequencing-response-statement.json</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/matching-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/XapiStatementNameConstants.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/true-false-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/simple-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/performance-response-statement.json</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/MessageExt.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-substatement.json</affectedPath><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-actor.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/Readme.txt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/group-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/likert-response-statement.json</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/SampleXapiStatement.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-statementref.json</affectedPath><commitId>7f72ba782d052d3cbafead86db4c1515cd90c3fa</commitId><timestamp>1781424710000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Integration test improvements: send actual xAPI statements.
</comment><date>2026-06-14 12:11:50 +0400</date><id>7f72ba782d052d3cbafead86db4c1515cd90c3fa</id><msg>Integration test improvements: send actual xAPI statements.</msg><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/simple-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/SampleXapiStatement.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-actor.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/group-statement.json</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageReply.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/matching-response-statement.json</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/Readme.txt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/appendix-a-long-statement.json</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/true-false-response-statement.json</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>respect-lib-test-resources/src/androidMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/likert-response-statement.json</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>add</editType><file>respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/XapiStatementNameConstants.kt</file></path><path><editType>add</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>respect-lib-test-resources/src/androidMain/assets/xapistatements/performance-response-statement.json</file></path><path><editType>add</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>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json</file></path><path><editType>edit</editType><file>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-statementref.json</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt</file></path><path><editType>add</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/sequencing-response-statement.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/StringValuesExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt</affectedPath><affectedPath>respect-lib-util/README.md</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</affectedPath><commitId>f90dc8610826609b061c27c5ab7873fb007e1847</commitId><timestamp>1781445808000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement send/receive over IPC integration test.
</comment><date>2026-06-14 18:03:28 +0400</date><id>f90dc8610826609b061c27c5ab7873fb007e1847</id><msg>Implement send/receive over IPC integration test.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/StringValuesExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.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>edit</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>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-util/README.md</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/GetStatementParamsExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</affectedPath><commitId>a5336e9c85b22ca6a36635b2a8be8129f6fb680d</commitId><timestamp>1781450946000</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 converters from DataLoadState to/from Bundle.
</comment><date>2026-06-14 19:29:06 +0400</date><id>a5336e9c85b22ca6a36635b2a8be8129f6fb680d</id><msg>Initial implementation of converters from DataLoadState to/from Bundle.</msg><path><editType>edit</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/GetStatementParamsExt.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>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt</affectedPath><commitId>97778f354e1522899876e6203591a3ea9ca58920</commitId><timestamp>1781588240000</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-06-16 11:07:20 +0530</date><id>97778f354e1522899876e6203591a3ea9ca58920</id><msg>refactor</msg><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/util/DurationExt.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/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/SendLearningUnitTerminatedStatementUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiLearningUnitExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><commitId>d0ddcb299e2ce1b752cac4b69f807423717329c3</commitId><timestamp>1781590323000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>xapi statment added
</comment><date>2026-06-16 11:42:03 +0530</date><id>d0ddcb299e2ce1b752cac4b69f807423717329c3</id><msg>xapi statment added</msg><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-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/xapi/XapiLearningUnitExt.kt</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/xapi/SendLearningUnitTerminatedStatementUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/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>0d048fce7ad0f17edde4505fc21f932b09f97a94</commitId><timestamp>1781590458000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-16 11:44:18 +0530</date><id>0d048fce7ad0f17edde4505fc21f932b09f97a94</id><msg>commit</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>cb6e981f8125ece2e9de4c2a39651d7d183120cd</commitId><timestamp>1781613500000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to include testing for viewing score details, xAPI statement information, and raw xAPI data.
</comment><date>2026-06-16 16:38:20 +0400</date><id>cb6e981f8125ece2e9de4c2a39651d7d183120cd</id><msg>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to include testing for viewing score details, xAPI statement information, and raw xAPI data.</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/statement/list/StatementListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</affectedPath><commitId>915d35310ce114ebfe0786ab4840c59c18c6dd32</commitId><timestamp>1781674949000</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-06-17 11:12:29 +0530</date><id>915d35310ce114ebfe0786ab4840c59c18c6dd32</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.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>806f0d53822424ecbd920fda3adb92603619cb48</commitId><timestamp>1781676774000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to adjust test assertions and input values for assignment results, including updates to score values and expected student actor names.
</comment><date>2026-06-17 10:12:54 +0400</date><id>806f0d53822424ecbd920fda3adb92603619cb48</id><msg>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to adjust test assertions and input values for assignment results, including updates to score values and expected student actor names.</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/composeResources/values/strings.xml</affectedPath><commitId>3117b1585f3db5afd241fdcda8b8ed4e4d175498</commitId><timestamp>1781677090000</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-06-17 11:48:10 +0530</date><id>3117b1585f3db5afd241fdcda8b8ed4e4d175498</id><msg>refactor</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-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</affectedPath><commitId>c02d4e452c956bfa4a7a6707fbfb6aabb757cc5f</commitId><timestamp>1781679187000</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-06-17 12:23:07 +0530</date><id>c02d4e452c956bfa4a7a6707fbfb6aabb757cc5f</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.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>b107103d4089765d437e75961768cd8229af614c</commitId><timestamp>1781681826000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to remove unused commented-out code and comment out an unstable relative time assertion.
</comment><date>2026-06-17 11:37:06 +0400</date><id>b107103d4089765d437e75961768cd8229af614c</id><msg>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to remove unused commented-out code and comment out an unstable relative time assertion.</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>819af327c5cf1871f248b02f283b3c32e1ecc1aa</commitId><timestamp>1781683649000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to use the correct resource ID for the options menu.
</comment><date>2026-06-17 12:07:29 +0400</date><id>819af327c5cf1871f248b02f283b3c32e1ecc1aa</id><msg>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to use the correct resource ID for the options menu.</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/composeResources/values/strings.xml</affectedPath><commitId>3188bb7da0d2b370fccd3b908e29661930eb0e23</commitId><timestamp>1781685783000</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-06-17 14:13:03 +0530</date><id>3188bb7da0d2b370fccd3b908e29661930eb0e23</id><msg>refactor</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/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>83db53471cf677f945c30b620ec5332930d05cb8</commitId><timestamp>1781687236000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to remove an unnecessary assertion for a specific user on the "Raw statement" screen.
</comment><date>2026-06-17 13:07:16 +0400</date><id>83db53471cf677f945c30b620ec5332930d05cb8</id><msg>Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to remove an unnecessary assertion for a specific user on the "Raw statement" screen.</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/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/SendLearningUnitTerminatedStatementUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>a7f5363b133ac2a5e311298f9b82b3b9e6666dc8</commitId><timestamp>1781765325000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-18 12:18:45 +0530</date><id>a7f5363b133ac2a5e311298f9b82b3b9e6666dc8</id><msg>commit</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/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/SendLearningUnitTerminatedStatementUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiLocalInvalidation.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><commitId>bfc94d0cf30eba1b6d94b0551ef60377570ed024</commitId><timestamp>1781771078000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Improve error handling for Xapi IPC messaging.
</comment><date>2026-06-18 12:24:38 +0400</date><id>bfc94d0cf30eba1b6d94b0551ef60377570ed024</id><msg>Improve error handling for Xapi IPC messaging.</msg><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiLocalInvalidation.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.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>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>add</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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><commitId>3bb49464ae2928a9ce9b09cd67fa61d39ade855d</commitId><timestamp>1781771568000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move XapiMessengerService to using its own thread.
</comment><date>2026-06-18 12:32:48 +0400</date><id>3bb49464ae2928a9ce9b09cd67fa61d39ade855d</id><msg>Move XapiMessengerService to using its own thread.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.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/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiForbiddenException.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiBadRequestException.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiConflictException.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</affectedPath><commitId>c7611e87c3a84f5f716ecc79e3b5f93d32c67524</commitId><timestamp>1781775662000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor to use a single XapiException to avoid issues converting to/from messages, http, etc.
</comment><date>2026-06-18 13:41:02 +0400</date><id>c7611e87c3a84f5f716ecc79e3b5f93d32c67524</id><msg>Refactor to use a single XapiException to avoid issues converting to/from messages, http, etc.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.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>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.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>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiForbiddenException.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiConflictException.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiBadRequestException.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</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-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>addee88ef71d8dea4d1c0ff6f60a5797a26749b5</commitId><timestamp>1781782508000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor XapiResource post function to use DataLoadState
</comment><date>2026-06-18 15:35:08 +0400</date><id>addee88ef71d8dea4d1c0ff6f60a5797a26749b5</id><msg>Refactor XapiResource post function to use DataLoadState</msg><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.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>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-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt</affectedPath><commitId>7ce0568d3e627757eb9db78500d486cb5edc0afa</commitId><timestamp>1781790013000</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 flow support for Xapi over IPC.
</comment><date>2026-06-18 17:40:13 +0400</date><id>7ce0568d3e627757eb9db78500d486cb5edc0afa</id><msg>Initial implementation of flow support for Xapi over IPC.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.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>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>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt</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>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><commitId>c6631a0014b2d21747a9db290cf7db2d21a48bfe</commitId><timestamp>1781793124000</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 flow support for Xapi over IPC.
</comment><date>2026-06-18 18:32:04 +0400</date><id>c6631a0014b2d21747a9db290cf7db2d21a48bfe</id><msg>Initial implementation of flow support for Xapi over IPC.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><commitId>073be31569d6d8176cd3c812cf0cafc0fba56ba1</commitId><timestamp>1781847162000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>removed code
</comment><date>2026-06-19 11:02:42 +0530</date><id>073be31569d6d8176cd3c812cf0cafc0fba56ba1</id><msg>removed code</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.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><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><commitId>03f6d7ad85f531816fcd46abc5cbed6755634505</commitId><timestamp>1781848576000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-19 11:26:16 +0530</date><id>03f6d7ad85f531816fcd46abc5cbed6755634505</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.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>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>524240f1b6322c86bbe5c4588184b53a68f5e9b7</commitId><timestamp>1781864463000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-19 15:51:03 +0530</date><id>524240f1b6322c86bbe5c4588184b53a68f5e9b7</id><msg>commit</msg><path><editType>add</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</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>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_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><commitId>11601a98a6763d5cc0a91cec8ad9b18d300e9a2d</commitId><timestamp>1781866159000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-19 16:19:19 +0530</date><id>11601a98a6763d5cc0a91cec8ad9b18d300e9a2d</id><msg>commit</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-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><commitId>4e7eb0c8b328e0299b47d984b89e076a1ae1dc12</commitId><timestamp>1781867261000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-19 16:37:41 +0530</date><id>4e7eb0c8b328e0299b47d984b89e076a1ae1dc12</id><msg>commit</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.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><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><commitId>0c2249e55dca5bd04c29504510d9f4565bea01c9</commitId><timestamp>1781868378000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-19 16:56:18 +0530</date><id>0c2249e55dca5bd04c29504510d9f4565bea01c9</id><msg>commit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt</affectedPath><affectedPath>respect-lib-ihttp-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-ihttp-iostreams/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/build.gradle.kts</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-client/build.gradle.kts</affectedPath><affectedPath>respect-lib-serializers/build.gradle.kts</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>README.md</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-cli/build.gradle.kts</affectedPath><affectedPath>build.gradle.kts</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt</affectedPath><affectedPath>respect-lib-dataloadstate/build.gradle.kts</affectedPath><commitId>71e70471adc89d9367f6d6778c2a6e81998d7238</commitId><timestamp>1781870402000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Standardize jvm version to 17 and add Xapi IPC Binder message bridge.
</comment><date>2026-06-19 16:00:02 +0400</date><id>71e70471adc89d9367f6d6778c2a6e81998d7238</id><msg>Standardize jvm version to 17 and add Xapi IPC Binder message bridge.</msg><path><editType>edit</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-ihttp-core/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-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-ihttp-iostreams/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/build.gradle.kts</file></path><path><editType>add</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-cli/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>edit</editType><file>build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>edit</editType><file>README.md</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>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_test.yaml</affectedPath><commitId>2aa464be04836701304cdc8aa3a915d99de56a3f</commitId><timestamp>1782114051000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-22 13:10:51 +0530</date><id>2aa464be04836701304cdc8aa3a915d99de56a3f</id><msg>commit</msg><path><editType>delete</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</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-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>add</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</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>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><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>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml</affectedPath><commitId>8729761b3f1c201e5300d855f882bac6a3ceb320</commitId><timestamp>1782120299000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-22 14:54:59 +0530</date><id>8729761b3f1c201e5300d855f882bac6a3ceb320</id><msg>commit</msg><path><editType>delete</editType><file>.maestro/flows/001_005_add_school_self_registration_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</affectedPath><commitId>4c552f64ff5b2915d9f5039af05006e54b15eac9</commitId><timestamp>1782120939000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove XapiNanoHttpdResourceProvider in favor of a single XapiResourceProvider that can work for IPC and NanoHttpd, Ktor server, etc.

Update xapi ipc integration test to using an intent that does not require a class reference e.g. can work from an external app.
</comment><date>2026-06-22 13:35:39 +0400</date><id>4c552f64ff5b2915d9f5039af05006e54b15eac9</id><msg>Remove XapiNanoHttpdResourceProvider in favor of a single XapiResourceProvider that can work for IPC and NanoHttpd, Ktor server, etc.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/index.json</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-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.html</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</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>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt</affectedPath><commitId>ebb90d89c37c5d9813a45b9f9271d8066838cea6</commitId><timestamp>1782154762000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial implementation that receives an xAPI statement over IPC and saves it in the database as expected.
</comment><date>2026-06-22 22:59:22 +0400</date><id>ebb90d89c37c5d9813a45b9f9271d8066838cea6</id><msg>Initial implementation that receives an xAPI statement over IPC and saves it in the database as expected.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt</file></path><path><editType>edit</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-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/build.gradle.kts</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-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.html</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</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>respect-server/src/main/resources/http/respect-ds/native_demo/index.json</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.json</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.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/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>31da95ca267c2b92c8e3d1d73a3528d6dcf5eae6</commitId><timestamp>1782203173000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Xapi over IPC: Send IPC service package name as a parameter.
</comment><date>2026-06-23 12:26:13 +0400</date><id>31da95ca267c2b92c8e3d1d73a3528d6dcf5eae6</id><msg>Xapi over IPC: Send IPC service package name as a parameter.</msg><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</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/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.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-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>1a067af2ed44e6575822ae102f86a9bf42fd989a</commitId><timestamp>1782282673000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add Xapi IPC client builder class.
</comment><date>2026-06-24 10:31:13 +0400</date><id>1a067af2ed44e6575822ae102f86a9bf42fd989a</id><msg>Add Xapi IPC client builder class.</msg><path><editType>add</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-shared/README.md</affectedPath><affectedPath>build.gradle.kts</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>ci-run-test-server.sh</affectedPath><affectedPath>README.md</affectedPath><commitId>3c6ebbcb7867a66037c2978987b540f98a277e29</commitId><timestamp>1782287269000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Introduce version as environment variable for use by test server controller.
</comment><date>2026-06-24 11:47:49 +0400</date><id>3c6ebbcb7867a66037c2978987b540f98a277e29</id><msg>Introduce version as environment variable for use by test server controller.</msg><path><editType>edit</editType><file>build.gradle.kts</file></path><path><editType>edit</editType><file>ci-run-test-server.sh</file></path><path><editType>edit</editType><file>README.md</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>e343ba3eb215bc0689160c907e9368bb92ecc80d</commitId><timestamp>1782288471000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix ci-run-maestro script and make it quieter.
</comment><date>2026-06-24 12:07:51 +0400</date><id>e343ba3eb215bc0689160c907e9368bb92ecc80d</id><msg>Fix ci-run-maestro script and make it quieter.</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>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>928de34329036635d99fc2cdcbd7b5267a4add56</commitId><timestamp>1782299759000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial update to provide openeel assignment_id support on xAPI IPC service.
</comment><date>2026-06-24 15:15:59 +0400</date><id>928de34329036635d99fc2cdcbd7b5267a4add56</id><msg>Initial update to provide openeel assignment_id support on xAPI IPC service.</msg><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.json</affectedPath><commitId>084c96da690fea735f352769272bbaf876c6b026</commitId><timestamp>1782374241000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Handle assignment recipe statement transform for
 XapiMessengerService.

 Improve XapiStatementEntityDao to check that any statement considered as part of progress is both for an assigned unit as per the actual assignment statement AND the progress statement includes the assignment activity id in its context activities.
</comment><date>2026-06-25 15:57:21 +0800</date><id>084c96da690fea735f352769272bbaf876c6b026</id><msg>Handle assignment recipe statement transform for</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.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-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.json</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle.properties</affectedPath><commitId>d94a41cf24faa817b349f05211efc009a70c66b9</commitId><timestamp>1782374569000</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-06-25 16:02:49 +0800</date><id>d94a41cf24faa817b349f05211efc009a70c66b9</id><msg>Bump version.</msg><path><editType>edit</editType><file>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiLocalInvalidation.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><commitId>55e3f0ebb8b9b4146b4f5428af65445845262947</commitId><timestamp>1782473788000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove unused XapiLocalInvalidation.kt and placeholders.
</comment><date>2026-06-26 19:36:28 +0800</date><id>55e3f0ebb8b9b4146b4f5428af65445845262947</id><msg>Remove unused XapiLocalInvalidation.kt and placeholders.</msg><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiLocalInvalidation.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt</affectedPath><commitId>44d0a6b625e824402882870fd28c00d8e43dc301</commitId><timestamp>1782532957000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Logging improvements for XapiIpc.
</comment><date>2026-06-27 12:02:37 +0800</date><id>44d0a6b625e824402882870fd28c00d8e43dc301</id><msg>Logging improvements for XapiIpc.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.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>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt</file></path><path><editType>edit</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-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>35548db75de85c0441a83620284c3f99155699c1</commitId><timestamp>1782533632000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add ipc server package to logging messages.
</comment><date>2026-06-27 12:13:52 +0800</date><id>35548db75de85c0441a83620284c3f99155699c1</id><msg>Add ipc server package to logging messages.</msg><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><commitId>85aa382bc28a2e7071eff28e58c3da5f16a2a478</commitId><timestamp>1782570069000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Minor: Spelling correction and remove unused imports.
</comment><date>2026-06-27 22:21:09 +0800</date><id>85aa382bc28a2e7071eff28e58c3da5f16a2a478</id><msg>Minor: Spelling correction and remove unused imports.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/index.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.json</affectedPath><affectedPath>respect-app-compose/README.md</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/Lesson</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json</affectedPath><commitId>a9bb992f2e3d0c75eedf5405b01909244d2e46df</commitId><timestamp>1782658202000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update native demo case.
</comment><date>2026-06-28 22:50:02 +0800</date><id>a9bb992f2e3d0c75eedf5405b01909244d2e46df</id><msg>Update native demo case.</msg><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/Lesson</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json</file></path><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.html</file></path><path><editType>edit</editType><file>respect-app-compose/README.md</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/index.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/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-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>.maestro/flows/subflows/send_db_to_server.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</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/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><commitId>2f49fe14fedc8dba6d753481114f1ad727d5ffca</commitId><timestamp>1782716042000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>E2E Database Upload Feature
</comment><date>2026-06-29 12:24:02 +0530</date><id>2f49fe14fedc8dba6d753481114f1ad727d5ffca</id><msg>E2E Database Upload Feature</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/send_db_to_server.yaml</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</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/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.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/testing/SendDbToServerScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/GetDbFilesForUploadUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</affectedPath><commitId>1471e92c6535bd0b4273061ea4d4d7e243e10a2a</commitId><timestamp>1782716062000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>E2E Database Upload Feature
</comment><date>2026-06-29 12:24:22 +0530</date><id>1471e92c6535bd0b4273061ea4d4d7e243e10a2a</id><msg>E2E Database Upload Feature</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/GetDbFilesForUploadUseCase.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>115b6162cda3f74a53f7f66b29b1dcd037a96e7c</commitId><timestamp>1782760941000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj</absoluteUrl><fullName>Nikunj Sharma</fullName></author><authorEmail>swaggy.infolabs@gmail.com</authorEmail><comment>pull req comments
</comment><date>2026-06-30 00:52:21 +0530</date><id>115b6162cda3f74a53f7f66b29b1dcd037a96e7c</id><msg>pull req comments</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/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><commitId>fafdb1820085835affb5cc6b91993866afc333ef</commitId><timestamp>1782798948000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj</absoluteUrl><fullName>Nikunj Sharma</fullName></author><authorEmail>swaggy.infolabs@gmail.com</authorEmail><comment>PRAGMA_CHECKPOINT added
</comment><date>2026-06-30 11:25:48 +0530</date><id>fafdb1820085835affb5cc6b91993866afc333ef</id><msg>PRAGMA_CHECKPOINT added</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.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>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>7bcafe50cb20c2d61d28143847a070c9cb3a2654</commitId><timestamp>1782807224000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro browse lessons test flow with offline download and verification steps.
</comment><date>2026-06-30 12:13:44 +0400</date><id>7bcafe50cb20c2d61d28143847a070c9cb3a2654</id><msg>Update Maestro browse lessons test flow with offline download and verification steps.</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>7c7664c4992e0108c95ea2d6ff14a6665bf44388</commitId><timestamp>1782809292000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro browse lessons test to verify offline access after app restart.
</comment><date>2026-06-30 12:48:12 +0400</date><id>7c7664c4992e0108c95ea2d6ff14a6665bf44388</id><msg>Update Maestro browse lessons test to verify offline access after app restart.</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>a46c8a463b5e92d14a4e5c0149d349f6e996dbd6</commitId><timestamp>1782811647000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro browse lessons test to assert on connection error.
</comment><date>2026-06-30 13:27:27 +0400</date><id>a46c8a463b5e92d14a4e5c0149d349f6e996dbd6</id><msg>Update Maestro browse lessons test to assert on connection error.</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>80d82187ece676b1f5abf38fa9451612173b42d4</commitId><timestamp>1782813757000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro browse lessons test to use a more generic error message assertion.
</comment><date>2026-06-30 14:02:37 +0400</date><id>80d82187ece676b1f5abf38fa9451612173b42d4</id><msg>Update Maestro browse lessons test to use a more generic error message assertion.</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml</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>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_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-server/src/main/resources/application.conf</affectedPath><commitId>d002ff9a03771364a4e7dd410e767aa72579bebc</commitId><timestamp>1782817371000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-06-30 16:32:51 +0530</date><id>d002ff9a03771364a4e7dd410e767aa72579bebc</id><msg>commit</msg><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>22bfaf148924806946b861a4734a6e601c811a4d</commitId><timestamp>1782822040000</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-maestro.sh` to save database files from each E2E test flow into a dedicated build folder for analysis.
</comment><date>2026-06-30 16:20:40 +0400</date><id>22bfaf148924806946b861a4734a6e601c811a4d</id><msg>Update `ci-run-maestro.sh` to save database files from each E2E test flow into a dedicated build folder for analysis.</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>649a7ca749845bcc712de29ff59ebd8f15bdf325</commitId><timestamp>1782824073000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro CI script to extract the test server port and use it for database file renaming.
</comment><date>2026-06-30 16:54:33 +0400</date><id>649a7ca749845bcc712de29ff59ebd8f15bdf325</id><msg>Update Maestro CI script to extract the test server port and use it for database file renaming.</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>8dd295330b43e21fa724a00dfbdaf6067a953e09</commitId><timestamp>1782825019000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update directory naming and path handling in `ci-run-maestro.sh`.
</comment><date>2026-06-30 17:10:19 +0400</date><id>8dd295330b43e21fa724a00dfbdaf6067a953e09</id><msg>Update directory naming and path handling in `ci-run-maestro.sh`.</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>a51ce3b899d3f154ae9805d1197fcb9e84a94d31</commitId><timestamp>1782825066000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro CI script to use curly braces for the `TEST_PORT` environment variable.
</comment><date>2026-06-30 17:11:06 +0400</date><id>a51ce3b899d3f154ae9805d1197fcb9e84a94d31</id><msg>Update Maestro CI script to use curly braces for the `TEST_PORT` environment variable.</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>92677cb2530e80c1095a6d750e0889ebb37d912c</commitId><timestamp>1782825545000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Ensure only the first port match is extracted from logs in `ci-run-maestro.sh`.
</comment><date>2026-06-30 17:19:05 +0400</date><id>92677cb2530e80c1095a6d750e0889ebb37d912c</id><msg>Ensure only the first port match is extracted from logs in `ci-run-maestro.sh`.</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>aa9d7537bb1735e2eb9bc4bc38cbeed697347060</commitId><timestamp>1782827074000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update port extraction logic in `ci-run-maestro.sh` to correctly parse port numbers from URLs in log files.
</comment><date>2026-06-30 17:44:34 +0400</date><id>aa9d7537bb1735e2eb9bc4bc38cbeed697347060</id><msg>Update port extraction logic in `ci-run-maestro.sh` to correctly parse port numbers from URLs in log files.</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>a7c3ef90183ae601b4023d465e47a9b1a151de89</commitId><timestamp>1782828278000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Refactor `ci-run-maestro.sh` to retrieve the test port via API call and simplify database path handling.
</comment><date>2026-06-30 18:04:38 +0400</date><id>a7c3ef90183ae601b4023d465e47a9b1a151de89</id><msg>Refactor `ci-run-maestro.sh` to retrieve the test port via API call and simplify database path handling.</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>02d0105f164a9778e1278fa64b5d9392bf37fd95</commitId><timestamp>1782829309000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update CI Maestro script to dynamically resolve database filenames from log output.
</comment><date>2026-06-30 18:21:49 +0400</date><id>02d0105f164a9778e1278fa64b5d9392bf37fd95</id><msg>Update CI Maestro script to dynamically resolve database filenames from log output.</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>61f95f3c838aeb0b74d4d3eaf25f74887aae05e5</commitId><timestamp>1782830038000</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-maestro.sh` to target the specific `respect-server.log` file path for Maestro E2E test logs.
</comment><date>2026-06-30 18:33:58 +0400</date><id>61f95f3c838aeb0b74d4d3eaf25f74887aae05e5</id><msg>Update `ci-run-maestro.sh` to target the specific `respect-server.log` file path for Maestro E2E test logs.</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>3a9acc3f0b1c055edf8de60695aa21d36314b9a1</commitId><timestamp>1782832119000</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-maestro.sh` to extract filenames from the correct log path and add validation for empty filenames.
</comment><date>2026-06-30 19:08:39 +0400</date><id>3a9acc3f0b1c055edf8de60695aa21d36314b9a1</id><msg>Update `ci-run-maestro.sh` to extract filenames from the correct log path and add validation for empty filenames.</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>51ec1a34b0e58a3d43c69c356281e645a2a3c231</commitId><timestamp>1782832712000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro CI script to use `ROOTDIR` instead of `WORKSPACE` for test log and database paths.
</comment><date>2026-06-30 19:18:32 +0400</date><id>51ec1a34b0e58a3d43c69c356281e645a2a3c231</id><msg>Update Maestro CI script to use `ROOTDIR` instead of `WORKSPACE` for test log and database paths.</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>7955dd487c80261f1ee3c78f148651ef3e631992</commitId><timestamp>1782884691000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Refactor Maestro E2E test database extraction in CI script.

Simplify the process of copying database files from test workspaces to the build folder and remove unused log file parsing for filenames.
</comment><date>2026-07-01 09:44:51 +0400</date><id>7955dd487c80261f1ee3c78f148651ef3e631992</id><msg>Refactor Maestro E2E test database extraction in CI script.</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>97fc3f22b5c1d7773e585ee0110c33e203be6762</commitId><timestamp>1782888272000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove database backup logic from the Maestro CI script.
</comment><date>2026-07-01 10:44:32 +0400</date><id>97fc3f22b5c1d7773e585ee0110c33e203be6762</id><msg>Remove database backup logic from the Maestro CI script.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/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><affectedPath>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_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><commitId>d5e944d98c4219c9942e3efe8a48bbacbcd81d08</commitId><timestamp>1782889079000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>addede send_db_to_server command in all test
</comment><date>2026-07-01 12:27:59 +0530</date><id>d5e944d98c4219c9942e3efe8a48bbacbcd81d08</id><msg>addede send_db_to_server command in all test</msg><path><editType>add</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>674ea38cc9b137d54b101bfb2e9470ecfa408abb</commitId><timestamp>1782889087000</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-maestro.sh` to log Cloud run status and define `MAESTRO_LOG_FILE` before extracting the URL.
</comment><date>2026-07-01 10:58:07 +0400</date><id>674ea38cc9b137d54b101bfb2e9470ecfa408abb</id><msg>Update `ci-run-maestro.sh` to log Cloud run status and define `MAESTRO_LOG_FILE` before extracting the 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/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>4d4d8f52690aea2940452047295aacdacb954dae</commitId><timestamp>1782891797000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro CI script to back up test databases and refine flow naming.
</comment><date>2026-07-01 11:43:17 +0400</date><id>4d4d8f52690aea2940452047295aacdacb954dae</id><msg>Update Maestro CI script to back up test databases and refine flow naming.</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>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt</affectedPath><commitId>dc6a6252ee57b91a7457780d1ed6ed67c593f044</commitId><timestamp>1782897886000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix SelectLang.kt to use the code string exactly as found in the availableLocales.
</comment><date>2026-07-01 13:24:46 +0400</date><id>dc6a6252ee57b91a7457780d1ed6ed67c593f044</id><msg>Fix SelectLang.kt to use the code string exactly as found in the availableLocales.</msg><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</affectedPath><commitId>35524229a3fe45ee141b27f715d3eeac7446b651</commitId><timestamp>1782898366000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add use case to get Opds Publication for a given XapiActivity.

Update to use xapiResource.statements.
</comment><date>2026-07-01 13:32:46 +0400</date><id>35524229a3fe45ee141b27f715d3eeac7446b651</id><msg>Add use case to get Opds Publication for a given XapiActivity.</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/apps/launcher/AppLauncherViewModel.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/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><commitId>901f5bc08f6bf5ff44154439f3de95070c01164c</commitId><timestamp>1782900242000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Restore the icon
</comment><date>2026-07-01 15:34:02 +0530</date><id>901f5bc08f6bf5ff44154439f3de95070c01164c</id><msg>Restore the icon</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>6bd94dd160317de2e4620054e3dca8a2beababef</commitId><timestamp>1782903174000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove database file backup logic from Maestro CI script.
</comment><date>2026-07-01 14:52:54 +0400</date><id>6bd94dd160317de2e4620054e3dca8a2beababef</id><msg>Remove database file backup logic from Maestro CI script.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><commitId>bec5695c4a551468d22c9722f80e184bdf525d09</commitId><timestamp>1782904956000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiStatementsResourceDb and DAOs to allow all users read access to list of apps.
</comment><date>2026-07-01 15:22:36 +0400</date><id>bec5695c4a551468d22c9722f80e184bdf525d09</id><msg>Update XapiStatementsResourceDb and DAOs to allow all users read access to list of apps.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><commitId>95aaa6f35fb99dadc698d4f22c482c2a79b1039d</commitId><timestamp>1782907815000</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 app list to use OPDS catalog from school configuration instead of xAPI statements.
</comment><date>2026-07-01 17:40:15 +0530</date><id>95aaa6f35fb99dadc698d4f22c482c2a79b1039d</id><msg>Refactor app list to use OPDS catalog from school configuration instead of xAPI statements.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><commitId>9decb1c0fc63c3cf4ad94685ebc705ca63d9f1d3</commitId><timestamp>1782909386000</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 unused imports in `AppBar.kt`.
</comment><date>2026-07-01 18:06:26 +0530</date><id>9decb1c0fc63c3cf4ad94685ebc705ca63d9f1d3</id><msg>Remove unused imports in `AppBar.kt`.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_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>.maestro/flows-pending/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>60d67fa744f1fd64ad8e4cc893cf4453d1f02d49</commitId><timestamp>1782915540000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move several Maestro E2E test flows to the flows-pending directory.
</comment><date>2026-07-01 18:19:00 +0400</date><id>60d67fa744f1fd64ad8e4cc893cf4453d1f02d49</id><msg>Move several Maestro E2E test flows to the flows-pending directory.</msg><path><editType>add</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_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>.maestro/flows-pending/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>ef54b502a94af8e5bed98a87998ee11f77dcbedf</commitId><timestamp>1782916049000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move user invitation and class assignment Maestro tests from pending to active flows.
</comment><date>2026-07-01 18:27:29 +0400</date><id>ef54b502a94af8e5bed98a87998ee11f77dcbedf</id><msg>Move user invitation and class assignment Maestro tests from pending to active flows.</msg><path><editType>add</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><commitId>8775efa7000ab2f33b1803bcf18eeee846e58377</commitId><timestamp>1782916950000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove unused openeelxapiconstant val.
</comment><date>2026-07-01 18:42:30 +0400</date><id>8775efa7000ab2f33b1803bcf18eeee846e58377</id><msg>Remove unused openeelxapiconstant val.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.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/statement/list/StatementListViewModel.kt</affectedPath><commitId>d97b15307f75298e6bd61d00324311becde4ec88</commitId><timestamp>1782918746000</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 xapiResource.statements.
</comment><date>2026-07-01 19:12:26 +0400</date><id>d97b15307f75298e6bd61d00324311becde4ec88</id><msg>Update to use xapiResource.statements.</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/statement/list/StatementListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt</affectedPath><commitId>0ed8b9305f20bc91f8b73ea2ef82a2fcdf894ef1</commitId><timestamp>1782976551000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>DB_EXTENSION added
</comment><date>2026-07-02 12:45:51 +0530</date><id>0ed8b9305f20bc91f8b73ea2ef82a2fcdf894ef1</id><msg>DB_EXTENSION added</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.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>.maestro/flows/subflows/send_db_to_server.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCase.kt</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/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><commitId>8b8963a57ed44d89e905059a7378a41faa41f354</commitId><timestamp>1782978508000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>added file name
</comment><date>2026-07-02 13:18:28 +0530</date><id>8b8963a57ed44d89e905059a7378a41faa41f354</id><msg>added file name</msg><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/subflows/send_db_to_server.yaml</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.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/domain/testing/SendDbToServerUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</affectedPath><commitId>bc829cf92a92e6817294f49337673a32c3d92779</commitId><timestamp>1782989948000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>add empty state on statemnt list screen and show bottom bar
</comment><date>2026-07-02 16:29:08 +0530</date><id>bc829cf92a92e6817294f49337673a32c3d92779</id><msg>add empty state on statemnt list screen and show bottom bar</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.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>1574ddcfb8fe95d4b4e511cf794477469cc04f6b</commitId><timestamp>1782989982000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro E2E test to replace multiple back navigations with direct tab navigation and verify assignment edit functionality.
</comment><date>2026-07-02 14:59:42 +0400</date><id>1574ddcfb8fe95d4b4e511cf794477469cc04f6b</id><msg>Update Maestro E2E test to replace multiple back navigations with direct tab navigation and verify assignment edit functionality.</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>dcd9e0c4ea861ab41f0f979b615b8dfe7bd5bd3c</commitId><timestamp>1782990589000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro E2E test for admin assignment to verify "Statement Maker" activity details.
</comment><date>2026-07-02 15:09:49 +0400</date><id>dcd9e0c4ea861ab41f0f979b615b8dfe7bd5bd3c</id><msg>Update Maestro E2E test for admin assignment to verify "Statement Maker" activity details.</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>438289ec5134532bc22b6bdc61601c9fd0f8d3c5</commitId><timestamp>1782991431000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro E2E test to verify going to the statement list even when there is no result for the assigned unit yet
</comment><date>2026-07-02 15:23:51 +0400</date><id>438289ec5134532bc22b6bdc61601c9fd0f8d3c5</id><msg>Update Maestro E2E test to verify going to the statement list even when there is no result for the assigned unit yet</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/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt</affectedPath><commitId>f694630cc0143d4c594890a653b168565fc4d384</commitId><timestamp>1782991691000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>update RespectEmptyListComponent for reuse
</comment><date>2026-07-02 16:58:11 +0530</date><id>f694630cc0143d4c594890a653b168565fc4d384</id><msg>update RespectEmptyListComponent for reuse</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/RespectEmptyListComponent.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/teardown.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>2664478d81fb1be3025a7a55c80f84c4a353089e</commitId><timestamp>1782994205000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Refactor Maestro E2E test teardown logic and move several tests to pending.
</comment><date>2026-07-02 16:10:05 +0400</date><id>2664478d81fb1be3025a7a55c80f84c4a353089e</id><msg>Refactor Maestro E2E test teardown logic and move several tests to pending.</msg><path><editType>add</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_003_login_using_school_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>add</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/subflows/teardown.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml</affectedPath><commitId>d6890ee11e5b4784e57078e0de07a9f33f976402</commitId><timestamp>1782994378000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro teardown configuration in pending flows to include environment variables.
</comment><date>2026-07-02 16:12:58 +0400</date><id>d6890ee11e5b4784e57078e0de07a9f33f976402</id><msg>Update Maestro teardown configuration in pending flows to include environment variables.</msg><path><editType>edit</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_student.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>efa92cb847fa04414c8a79971d5da67b14de46d1</commitId><timestamp>1782994784000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>send db to server activity added
</comment><date>2026-07-02 17:49:44 +0530</date><id>efa92cb847fa04414c8a79971d5da67b14de46d1</id><msg>send db to server activity added</msg><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</file></path><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/admin_add_student.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><path><editType>edit</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>73e89ffd754cef9befa01b119c8ae2d7d385cd90</commitId><timestamp>1782997177000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the teardown subflow configuration in the admin assignment E2E test to use `db-final`.
</comment><date>2026-07-02 16:59:37 +0400</date><id>73e89ffd754cef9befa01b119c8ae2d7d385cd90</id><msg>Update the teardown subflow configuration in the admin assignment E2E test to use `db-final`.</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>ci-run-maestro.sh</affectedPath><commitId>00434d7246b4228243ae2cac530173fbffc2768f</commitId><timestamp>1782999026000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add a function to `ci-run-maestro.sh` to archive test artifacts into a zip file.
</comment><date>2026-07-02 17:30:26 +0400</date><id>00434d7246b4228243ae2cac530173fbffc2768f</id><msg>Add a function to `ci-run-maestro.sh` to archive test artifacts into a zip file.</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>811afb2000eea125e551ec1735faa900f92c68c6</commitId><timestamp>1782999099000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Ensure artifact zip creation on exit in `ci-run-maestro.sh` using a trap.
</comment><date>2026-07-02 17:31:39 +0400</date><id>811afb2000eea125e551ec1735faa900f92c68c6</id><msg>Ensure artifact zip creation on exit in `ci-run-maestro.sh` using a trap.</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>31e98994a92525bd31d06f6026d4b7f69f8cd9ee</commitId><timestamp>1782999407000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Exclude `respect-server` directories from the Maestro CI output zip.
</comment><date>2026-07-02 17:36:47 +0400</date><id>31e98994a92525bd31d06f6026d4b7f69f8cd9ee</id><msg>Exclude `respect-server` directories from the Maestro CI output zip.</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>13f9d58bedd12edfaa42af8943bce6d81dead37b</commitId><timestamp>1783002848000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the artifact ZIP output path to the build directory in `ci-run-maestro.sh`.
</comment><date>2026-07-02 18:34:08 +0400</date><id>13f9d58bedd12edfaa42af8943bce6d81dead37b</id><msg>Update the artifact ZIP output path to the build directory in `ci-run-maestro.sh`.</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>2b07dda43e29853ccdfdfa2cb45152a15e015ccc</commitId><timestamp>1783004876000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add cleanup step to remove old test database artifact ZIP files.
</comment><date>2026-07-02 19:07:56 +0400</date><id>2b07dda43e29853ccdfdfa2cb45152a15e015ccc</id><msg>Add cleanup step to remove old test database artifact ZIP files.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/teardown.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><commitId>0fd7db10014d5be7de94e9466bd7f6fddfa3ca0c</commitId><timestamp>1783018926000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-07-03 00:32:06 +0530</date><id>0fd7db10014d5be7de94e9466bd7f6fddfa3ca0c</id><msg>commit</msg><path><editType>delete</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/teardown.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><path><editType>add</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><commitId>d71f668b3b98920c773f9a03983197c20a97c352</commitId><timestamp>1783020840000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-07-03 01:04:00 +0530</date><id>d71f668b3b98920c773f9a03983197c20a97c352</id><msg>commit</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>61d56428b8864d6b5ceb9fafea6b3f3c4b2ed8df</commitId><timestamp>1783048801000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Resolve conflicts
</comment><date>2026-07-03 08:50:01 +0530</date><id>61d56428b8864d6b5ceb9fafea6b3f3c4b2ed8df</id><msg>Resolve conflicts</msg><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-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>83778bf6c9e85702415b3ab2c350c37ab3456cf1</commitId><timestamp>1783055329000</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-03 10:38:49 +0530</date><id>83778bf6c9e85702415b3ab2c350c37ab3456cf1</id><msg>refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</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>ci-run-maestro.sh</affectedPath><commitId>d91b52d5d4212f201db8d451cb6c1d4b9d697d14</commitId><timestamp>1783057042000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the Maestro CI script to refine test artifact archiving.
</comment><date>2026-07-03 09:37:22 +0400</date><id>d91b52d5d4212f201db8d451cb6c1d4b9d697d14</id><msg>Update the Maestro CI script to refine test artifact archiving.</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>ea8f11b15fdd36e7beef117a5eb4810aa247322f</commitId><timestamp>1783059924000</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-maestro.sh` to include all workspace directories in test artifacts and exclude unnecessary log files.
</comment><date>2026-07-03 10:25:24 +0400</date><id>ea8f11b15fdd36e7beef117a5eb4810aa247322f</id><msg>Update `ci-run-maestro.sh` to include all workspace directories in test artifacts and exclude unnecessary log files.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><commitId>9836673cd5c889b381c7d36eaac5154f61ac60da</commitId><timestamp>1783060344000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>clean up and main merged
</comment><date>2026-07-03 12:02:24 +0530</date><id>9836673cd5c889b381c7d36eaac5154f61ac60da</id><msg>clean up and main merged</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</affectedPath><commitId>7f8d1d4d818e08dc1dfa9a69bc91d166c9a04ee6</commitId><timestamp>1783063811000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>clean up
</comment><date>2026-07-03 13:00:11 +0530</date><id>7f8d1d4d818e08dc1dfa9a69bc91d166c9a04ee6</id><msg>clean up</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndLocks.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</affectedPath><commitId>fbe560bad6f4f1a1d447517740a8f37dd93b194e</commitId><timestamp>1783176030000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support for programmatically setting extra response headers on UstadCache.
</comment><date>2026-07-04 18:40:30 +0400</date><id>fbe560bad6f4f1a1d447517740a8f37dd93b194e</id><msg>Add support for programmatically setting extra response headers on UstadCache.</msg><path><editType>add</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndLocks.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</affectedPath><commitId>413587b112d35fb710d6e40bc314a73d9fbdf872</commitId><timestamp>1783176044000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add cache database update.
</comment><date>2026-07-04 18:40:44 +0400</date><id>413587b112d35fb710d6e40bc314a73d9fbdf872</id><msg>Add cache database update.</msg><path><editType>add</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><commitId>643af8cd29701a1cc8baef226a3d0a332d898b64</commitId><timestamp>1783185446000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add support for parsing NoVarySearch header and normalizing URLs based on the NoVarySearch header.
</comment><date>2026-07-04 21:17:26 +0400</date><id>643af8cd29701a1cc8baef226a3d0a332d898b64</id><msg>Add support for parsing NoVarySearch header and normalizing URLs based on the NoVarySearch header.</msg><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.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/UstadCacheTrimmerTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</affectedPath><commitId>ebb77a61b6b5e73324da0f8d1895c2b32d281d97</commitId><timestamp>1783274440000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress refactoring UstadCacheImpl to use Cache4k for in memory cache.
</comment><date>2026-07-05 22:00:40 +0400</date><id>ebb77a61b6b5e73324da0f8d1895c2b32d281d97</id><msg>Work in progress refactoring UstadCacheImpl to use Cache4k for in memory cache.</msg><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</file></path><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>respect-lib-cache/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>93b34bd3995bd2c57c8e7c72a781fa32a3ca5000</commitId><timestamp>1783322826000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update file exclusion patterns in the CI Maestro artifact zip command to correctly target nested log and data files.
</comment><date>2026-07-06 11:27:06 +0400</date><id>93b34bd3995bd2c57c8e7c72a781fa32a3ca5000</id><msg>Update file exclusion patterns in the CI Maestro artifact zip command to correctly target nested log and data files.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</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/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheExtraHeaderProvider.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><commitId>186338ff9bbb658314e4561684d1cbbfd81d83ae</commitId><timestamp>1783324804000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress refactoring UstadCacheImpl to use Cache4k for in memory cache. Now passes UstadCacheJvmTest.
</comment><date>2026-07-06 12:00:04 +0400</date><id>186338ff9bbb658314e4561684d1cbbfd81d83ae</id><msg>Work in progress refactoring UstadCacheImpl to use Cache4k for in memory cache. Now passes UstadCacheJvmTest.</msg><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheExtraHeaderProvider.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.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-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><commitId>f6b879c6d6a478d767c15bf1b3d1138aa6a05d8b</commitId><timestamp>1783325411000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add cache listener onstored call. All cache jvmtests now pass.
</comment><date>2026-07-06 12:10:11 +0400</date><id>f6b879c6d6a478d767c15bf1b3d1138aa6a05d8b</id><msg>Add cache listener onstored call. All cache jvmtests now pass.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><commitId>933a6c842802e195c7eb97cb1ad309bbbee005be</commitId><timestamp>1783325583000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add cache listener onstored call. All cache jvmtests pass and build succeeds.
</comment><date>2026-07-06 12:13:03 +0400</date><id>933a6c842802e195c7eb97cb1ad309bbbee005be</id><msg>Add cache listener onstored call. All cache jvmtests pass and build succeeds.</msg><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</affectedPath><commitId>b7bfe2aaa887740ea43675158c28385f2138414f</commitId><timestamp>1783326323000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update database migrations for UstadCacheDb.
</comment><date>2026-07-06 12:25:23 +0400</date><id>b7bfe2aaa887740ea43675158c28385f2138414f</id><msg>Update database migrations for UstadCacheDb.</msg><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>1086712242bdf8527ca04d291c2f37a313433213</commitId><timestamp>1783326700000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Exclude `server.properties` from Maestro test artifact zip files.
</comment><date>2026-07-06 12:31:40 +0400</date><id>1086712242bdf8527ca04d291c2f37a313433213</id><msg>Exclude `server.properties` from Maestro test artifact zip files.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>ba425463cf1021cedc3984886917dc5390694337</commitId><timestamp>1783331901000</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-06 15:28:21 +0530</date><id>ba425463cf1021cedc3984886917dc5390694337</id><msg>refactor</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-server/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><commitId>e58fa0d84f3da047ecae5c2cfe56c2492915b425</commitId><timestamp>1783336453000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>clean up
</comment><date>2026-07-06 16:44:13 +0530</date><id>e58fa0d84f3da047ecae5c2cfe56c2492915b425</id><msg>clean up</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</affectedPath><commitId>480110f033708125d2aa87ea53d54ffc9e71dd22</commitId><timestamp>1783340732000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>commit
</comment><date>2026-07-06 17:55:32 +0530</date><id>480110f033708125d2aa87ea53d54ffc9e71dd22</id><msg>commit</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>40f4db3d6b7b3a848127be85a800ae1bb60d1cd7</commitId><timestamp>1783341814000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add database integrity check to Maestro CI script.
</comment><date>2026-07-06 16:43:34 +0400</date><id>40f4db3d6b7b3a848127be85a800ae1bb60d1cd7</id><msg>Add database integrity check to Maestro CI script.</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>dc416ecb14e4ba1f55c0d176a553e86325007e1a</commitId><timestamp>1783343115000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add database integrity check to `ci-run-maestro.sh`.
</comment><date>2026-07-06 17:05:15 +0400</date><id>dc416ecb14e4ba1f55c0d176a553e86325007e1a</id><msg>Add database integrity check to `ci-run-maestro.sh`.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/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><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_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><commitId>2007d91d1effd7af13c493b5dcc49aa5e9e2cbc1</commitId><timestamp>1783346768000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update database integrity check logic in `ci-run-maestro.sh` and move several Maestro flows to `flows-pending`.
</comment><date>2026-07-06 18:06:08 +0400</date><id>2007d91d1effd7af13c493b5dcc49aa5e9e2cbc1</id><msg>Update database integrity check logic in `ci-run-maestro.sh` and move several Maestro flows to `flows-pending`.</msg><path><editType>add</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_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>.maestro/flows-pending/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>f5f625f952b75b751417c9100d297fbd9fc9e21e</commitId><timestamp>1783347498000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro invitation and assignment tests from pending to active flows.
</comment><date>2026-07-06 18:18:18 +0400</date><id>f5f625f952b75b751417c9100d297fbd9fc9e21e</id><msg>Move Maestro invitation and assignment tests from pending to active flows.</msg><path><editType>add</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</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-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</affectedPath><commitId>7209afa8e71348459dc8f9e5b3506f7795ba29b8</commitId><timestamp>1783415059000</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 cache support for the No-Vary-Search header with passing unit tests.
</comment><date>2026-07-07 13:04:19 +0400</date><id>7209afa8e71348459dc8f9e5b3506f7795ba29b8</id><msg>Initial implementation of cache support for the No-Vary-Search header with passing unit tests.</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.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/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><commitId>025acce5f5c551dcb3ba10f6ab1247d505253139</commitId><timestamp>1783420690000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Sort student list alphabetically in assignment detail view
</comment><date>2026-07-07 16:08:10 +0530</date><id>025acce5f5c551dcb3ba10f6ab1247d505253139</id><msg>Sort student list alphabetically in assignment detail view</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><commitId>279b45f644572c5bd691f0e71d85d54b7a1d8d7f</commitId><timestamp>1783425671000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>e2e-uploads to e2e-client-db-uploads
</comment><date>2026-07-07 17:31:11 +0530</date><id>279b45f644572c5bd691f0e71d85d54b7a1d8d7f</id><msg>e2e-uploads to e2e-client-db-uploads</msg><path><editType>edit</editType><file>ci-run-maestro.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>ci-run-maestro.sh</affectedPath><commitId>e5141516c852287350734d6528ac37a61e36c096</commitId><timestamp>1783425818000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the naming convention for Maestro test artifact ZIP files.
</comment><date>2026-07-07 16:03:38 +0400</date><id>e5141516c852287350734d6528ac37a61e36c096</id><msg>Update the naming convention for Maestro test artifact ZIP files.</msg><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/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</affectedPath><commitId>702b2a00a18701e8a1952bb51fe1e641b64eb911</commitId><timestamp>1783428690000</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-07-07 18:21:30 +0530</date><id>702b2a00a18701e8a1952bb51fe1e641b64eb911</id><msg>Fix</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</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>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_app.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>d9600a6eaa8e4cfa452c5c1fb1ac1a8d56e6e692</commitId><timestamp>1783428904000</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-07-07 18:25:04 +0530</date><id>d9600a6eaa8e4cfa452c5c1fb1ac1a8d56e6e692</id><msg>Fix</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>e08c9071567b72e5b5f96ba38c8c6d0f0ca783be</commitId><timestamp>1783475573000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the artifact filename format in `ci-run-maestro.sh`.
</comment><date>2026-07-08 05:52:53 +0400</date><id>e08c9071567b72e5b5f96ba38c8c6d0f0ca783be</id><msg>Update the artifact filename format in `ci-run-maestro.sh`.</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>17a174a15ad79c0f1c13d9fdf71e22d3f74e8f48</commitId><timestamp>1783475600000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update the artifact filename format in `ci-run-maestro.sh`.
</comment><date>2026-07-08 05:53:20 +0400</date><id>17a174a15ad79c0f1c13d9fdf71e22d3f74e8f48</id><msg>Update the artifact filename format in `ci-run-maestro.sh`.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/video.mp4</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.html</affectedPath><commitId>edc1d5502f011d19890e85f7b880e088aedbc054</commitId><timestamp>1783495540000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated test 002 with latest app-lessons
</comment><date>2026-07-08 11:25:40 +0400</date><id>edc1d5502f011d19890e85f7b880e088aedbc054</id><msg>Updated test 002 with latest app-lessons</msg><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/video.mp4</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.html</file></path><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheExtraHeaderProvider.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</affectedPath><commitId>18b3be7a5bf0e91f21e4d8f024df9e91199433a0</commitId><timestamp>1783497501000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Restore support for setting extra headers on UstadCache ahead of time.

Using a programmatic extra headers provider that looks for certain parameters to identify an xAPI launch URL doesn't work when a URL is retrieved without those parameters to begin with, so it can't be readily identified.
</comment><date>2026-07-08 11:58:21 +0400</date><id>18b3be7a5bf0e91f21e4d8f024df9e91199433a0</id><msg>Restore support for setting extra headers on UstadCache ahead of time.</msg><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</file></path><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>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheExtraHeaderProvider.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</file></path><path><editType>add</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><commitId>239b7285bca9384e243176242fbfbb864bcccb8d</commitId><timestamp>1783498993000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Automatically add NoVarySearch headers to links that are going to be launched with Xapi Rustici launch method parameters.
</comment><date>2026-07-08 12:23:13 +0400</date><id>239b7285bca9384e243176242fbfbb864bcccb8d</id><msg>Automatically add NoVarySearch headers to links that are going to be launched with Xapi Rustici launch method parameters.</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_app.yaml</affectedPath><commitId>e5e83360514dd24536616c5837793546adf3f35a</commitId><timestamp>1783499332000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro E2E test assertions and improve tap selector reliability.
</comment><date>2026-07-08 12:28:52 +0400</date><id>e5e83360514dd24536616c5837793546adf3f35a</id><msg>Update Maestro E2E test assertions and improve tap selector reliability.</msg><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/subflows/admin_add_app.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>b11c85276f4fde7ec2fc9354676cde01d0d73ce9</commitId><timestamp>1783499541000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro browse lessons test to verify JS Tetris visibility and Tin Can Home assertions.
</comment><date>2026-07-08 12:32:21 +0400</date><id>b11c85276f4fde7ec2fc9354676cde01d0d73ce9</id><msg>Update Maestro browse lessons test to verify JS Tetris visibility and Tin Can Home assertions.</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>3f29566c6ab5ed9521ab2c867321dd07b186fe8e</commitId><timestamp>1783504193000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro browse lessons test to use Assignment Result Statement Demo and verify offline functionality.
</comment><date>2026-07-08 13:49:53 +0400</date><id>3f29566c6ab5ed9521ab2c867321dd07b186fe8e</id><msg>Update Maestro browse lessons test to use Assignment Result Statement Demo and verify offline functionality.</msg><path><editType>edit</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/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><affectedPath>.maestro/flows-pending/001_002_add_user_direct_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><commitId>1d7069d0f63bd18d1a4e609b5eff8b9f0f28eb37</commitId><timestamp>1783504235000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro E2E test flows to test 002
</comment><date>2026-07-08 13:50:35 +0400</date><id>1d7069d0f63bd18d1a4e609b5eff8b9f0f28eb37</id><msg>Move Maestro E2E test flows to test 002</msg><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>b64e5235e954b762e5576b0450ba9d4ce664862f</commitId><timestamp>1783506476000</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-08 15:57:56 +0530</date><id>b64e5235e954b762e5576b0450ba9d4ce664862f</id><msg>refactor</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-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</affectedPath><commitId>244183f3c3b4ecc6d05b676454dba6b9e33f86b7</commitId><timestamp>1783519633000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix ConnectivityMonitorAndroid : set default connectivity to false.

If the device is offline when the app starts, there will be no call to onLost, hence this was the wrong default.
</comment><date>2026-07-08 18:07:13 +0400</date><id>244183f3c3b4ecc6d05b676454dba6b9e33f86b7</id><msg>Fix ConnectivityMonitorAndroid : set default connectivity to false.</msg><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-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</affectedPath><commitId>7c264eb9d7794f3076b1d886108e6e548a68c45a</commitId><timestamp>1783577664000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>excception added
</comment><date>2026-07-09 11:44:24 +0530</date><id>7c264eb9d7794f3076b1d886108e6e548a68c45a</id><msg>excception added</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>f2207160eb09c2dd95d5e5ce745d098c5d31ae9a</commitId><timestamp>1783579619000</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-maestro.sh` to include a configurable device OS version for Maestro Cloud runs, defaulting to `android-35`.
</comment><date>2026-07-09 10:46:59 +0400</date><id>f2207160eb09c2dd95d5e5ce745d098c5d31ae9a</id><msg>Update `ci-run-maestro.sh` to include a configurable device OS version for Maestro Cloud runs, defaulting to `android-35`.</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>0407d02587afa5595bffe0be3774d4f56ade5c8b</commitId><timestamp>1783580223000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Hardcode Maestro Cloud device OS to "android-35" and disable dynamic `DEVICE_OS` assignment in `ci-run-maestro.sh`.
</comment><date>2026-07-09 10:57:03 +0400</date><id>0407d02587afa5595bffe0be3774d4f56ade5c8b</id><msg>Hardcode Maestro Cloud device OS to "android-35" and disable dynamic `DEVICE_OS` assignment in `ci-run-maestro.sh`.</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>be6431bf79cf637e9ebe46440df68db0805b020c</commitId><timestamp>1783580475000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Correct the Maestro cloud CLI parameter from `--device-os` to `--device-locale`.
</comment><date>2026-07-09 11:01:15 +0400</date><id>be6431bf79cf637e9ebe46440df68db0805b020c</id><msg>Correct the Maestro cloud CLI parameter from `--device-os` to `--device-locale`.</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>1036465009537aceb22a067a3b172793e22d6f70</commitId><timestamp>1783580984000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro cloud test configuration to use the `--device-os` argument for Android 35.
</comment><date>2026-07-09 11:09:44 +0400</date><id>1036465009537aceb22a067a3b172793e22d6f70</id><msg>Update Maestro cloud test configuration to use the `--device-os` argument for Android 35.</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>e7cd4e6fbf3730930d5accb38ad2445936783d4f</commitId><timestamp>1783581741000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add `MAESTRO_CLOUD_DEVICEOS` environment variable validation and parameterize the device OS in the Maestro cloud command.
</comment><date>2026-07-09 11:22:21 +0400</date><id>e7cd4e6fbf3730930d5accb38ad2445936783d4f</id><msg>Add `MAESTRO_CLOUD_DEVICEOS` environment variable validation and parameterize the device OS in the Maestro cloud command.</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>553c0121f78075556ec5d03739b339dd4fd00c33</commitId><timestamp>1783581996000</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-maestro.sh` to dynamically handle Maestro Cloud device OS arguments and upgrade the Android API level to 35.
</comment><date>2026-07-09 11:26:36 +0400</date><id>553c0121f78075556ec5d03739b339dd4fd00c33</id><msg>Update `ci-run-maestro.sh` to dynamically handle Maestro Cloud device OS arguments and upgrade the Android API level to 35.</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>9c6e31255579f068660ab3770dda380a491a763e</commitId><timestamp>1783582029000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove the `MAESTRO_CLOUD_DEVICEOS` environment variable requirement from the Maestro CI script.
</comment><date>2026-07-09 11:27:09 +0400</date><id>9c6e31255579f068660ab3770dda380a491a763e</id><msg>Remove the `MAESTRO_CLOUD_DEVICEOS` environment variable requirement from the Maestro CI script.</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>958af4ca3cd851cbe40dc0a3ad520852dcf250ae</commitId><timestamp>1783582406000</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-maestro.sh` to fix a syntax error in the Maestro Cloud command.
</comment><date>2026-07-09 11:33:26 +0400</date><id>958af4ca3cd851cbe40dc0a3ad520852dcf250ae</id><msg>Update `ci-run-maestro.sh` to fix a syntax error in the Maestro Cloud command.</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>e08127f4d7869cdc53e0cf1af0523f5c0c35df2d</commitId><timestamp>1783592956000</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-maestro.sh` to use the `--device-os` argument for Maestro Cloud and simplify version detection logic.
</comment><date>2026-07-09 14:29:16 +0400</date><id>e08127f4d7869cdc53e0cf1af0523f5c0c35df2d</id><msg>Update `ci-run-maestro.sh` to use the `--device-os` argument for Maestro Cloud and simplify version detection logic.</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>02c426e00c15f2ddb2e9988e0ac5d46bfd6abe1f</commitId><timestamp>1783593075000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Reorder maestro cloud command arguments in ci-run-maestro.sh.
</comment><date>2026-07-09 14:31:15 +0400</date><id>02c426e00c15f2ddb2e9988e0ac5d46bfd6abe1f</id><msg>Reorder maestro cloud command arguments in ci-run-maestro.sh.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</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-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><commitId>e5233bbe2b4a06a7396d891bcc123aad7cae6aea</commitId><timestamp>1783608391000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix launching xAPI links offline

PinPublicationPrepareUseCase : remove adding respectLaunchVersion - no longer needed after adding no vary search support.

Improve handling of cache retrieval to handle the paradigm shift that the entry retrieved can have a URL that is different to the request URL when no-vary-search headers are applied.

Previously the getOrLoadFromDb function used the cache with a loader function in a way that the entry would be stored with the wrong key.

Update storeFileAsUrl: add extraheaders first.

Set entry limit on memory cache.
</comment><date>2026-07-09 18:46:31 +0400</date><id>e5233bbe2b4a06a7396d891bcc123aad7cae6aea</id><msg>Fix launching xAPI links offline</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><commitId>48f2a187cb3be0a0e8542a346ade77ff5299765e</commitId><timestamp>1783611921000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Avoid unnecessary new Md5Digest
</comment><date>2026-07-09 19:45:21 +0400</date><id>48f2a187cb3be0a0e8542a346ade77ff5299765e</id><msg>Avoid unnecessary new Md5Digest</msg><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/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><affectedPath>.maestro/flows-pending/001_002_add_user_direct_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><commitId>1eafede80419f3e10eac60f8eff40d0559e62771</commitId><timestamp>1783612975000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move tests back from flows pending to flows.
</comment><date>2026-07-09 20:02:55 +0400</date><id>1eafede80419f3e10eac60f8eff40d0559e62771</id><msg>Move tests back from flows pending to flows.</msg><path><editType>add</editType><file>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><commitId>fc1ffc956c0fde222ba5aef80cb614f97319e737</commitId><timestamp>1783617769000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Set extra headers for lesson launch url at the earliest opportunity.
</comment><date>2026-07-09 21:22:49 +0400</date><id>fc1ffc956c0fde222ba5aef80cb614f97319e737</id><msg>Set extra headers for lesson launch url at the earliest opportunity.</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/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</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-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LruMap.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><commitId>12d1595be3a0eae4af3d497e7d4fd75ed51e345f</commitId><timestamp>1783621962000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update LaunchAppUseCaseAndroid to remove only the Xapi Launch params from a URL.

Update select lang composable function to handle potential empty case without throwing an exception (could happen during loading).
</comment><date>2026-07-09 22:32:42 +0400</date><id>12d1595be3a0eae4af3d497e7d4fd75ed51e345f</id><msg>Update LaunchAppUseCaseAndroid to remove only the Xapi Launch params from a URL.</msg><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-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LruMap.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><commitId>349e3642d47af8044a6adfe12e2b1f9a77ee5087</commitId><timestamp>1783622290000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix cache jvmtest compilation: missed changing a constant.
</comment><date>2026-07-09 22:38:10 +0400</date><id>349e3642d47af8044a6adfe12e2b1f9a77ee5087</id><msg>Fix cache jvmtest compilation: missed changing a constant.</msg><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-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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>2fcbaf179e816baadc448a0759885ee5a3a79adc</commitId><timestamp>1783682952000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove check for empty statement list

The assign statement itself will always appear in the list for an assigned unit because the assigned unit activity id is in the contextActivities of the assign statement: therefor this list will never be empty.
</comment><date>2026-07-10 15:29:12 +0400</date><id>2fcbaf179e816baadc448a0759885ee5a3a79adc</id><msg>Remove check for empty statement list</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/statement/detail/RawStatementScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</affectedPath><commitId>9aad1bbe07f68a81100e8264e4b4d61af8a9faf7</commitId><timestamp>1783684565000</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-10 17:26:05 +0530</date><id>9aad1bbe07f68a81100e8264e4b4d61af8a9faf7</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</affectedPath><commitId>6e4e221962d58b83ccadd981259fd43e306c50e7</commitId><timestamp>1783685295000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName></author><authorEmail>anugraha@sutara.org</authorEmail><comment>Fix: Use Uuid type for statementId in RawStatement navigation
</comment><date>2026-07-10 17:38:15 +0530</date><id>6e4e221962d58b83ccadd981259fd43e306c50e7</id><msg>Fix: Use Uuid type for statementId in RawStatement navigation</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.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/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</affectedPath><affectedPath>ci-run-test-server.sh</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><commitId>f0921b19a0c43bae8caf23c3e425a52661170ab4</commitId><timestamp>1783685765000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName></author><authorEmail>nikunj.sharma@sutara.org</authorEmail><comment>changes related pull request comments
</comment><date>2026-07-10 17:46:05 +0530</date><id>f0921b19a0c43bae8caf23c3e425a52661170ab4</id><msg>changes related pull request comments</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt</file></path><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>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/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</file></path><path><editType>edit</editType><file>ci-run-test-server.sh</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-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/GetDbFilesForUploadUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.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/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</affectedPath><affectedPath>ci-run-test-server.sh</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiLearningUnitExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><commitId>8f0a19910d527643e1b67667c9a82a443f1f5cdc</commitId><timestamp>1783854637000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove check for empty statement list

The assign statement itself will always appear in the list for an assigned unit because the assigned unit activity id is in the contextActivities of the assign statement: therefor this list will never be empty.
</comment><date>2026-07-12 15:10:37 +0400</date><id>8f0a19910d527643e1b67667c9a82a443f1f5cdc</id><msg>Remove check for empty statement list</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/GetDbFilesForUploadUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.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>ci-run-test-server.sh</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiLearningUnitExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.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/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_student.yaml</affectedPath><affectedPath>.maestro/flows/subflows/e2e_artifact_upload.yaml</affectedPath><affectedPath>.maestro/flows/scripts/school_init.js</affectedPath><affectedPath>respect-app-compose/src/androidMain/AndroidManifest.xml</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>.maestro/README.md</affectedPath><affectedPath>.maestro/flows/subflows/send_db_to_server.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt</affectedPath><commitId>a965e05f3dfe4d217bd7f1f03692aa7256d0c099</commitId><timestamp>1783860931000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes and improvements for sending e2e test artifacts to the server.

1) Use consistent naming: E2ETestArtifact . At the moment this is only used to upload the sqlite database, but this could change.
2) Switch to using a custom uri scheme intent that makes it easier to launch the e2e artifact upload activity using openlink from a maestro flow
3) Update README on running test locally to add info on enabling artifact upload : existing flow was not working without verified links.
</comment><date>2026-07-12 16:55:31 +0400</date><id>a965e05f3dfe4d217bd7f1f03692aa7256d0c099</id><msg>Fixes and improvements for sending e2e test artifacts to the server.</msg><path><editType>edit</editType><file>.maestro/flows/subflows/teardown.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_student.yaml</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>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt</file></path><path><editType>edit</editType><file>.maestro/README.md</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/school_init.js</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</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>add</editType><file>.maestro/flows/subflows/e2e_artifact_upload.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/subflows/send_db_to_server.yaml</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>ci-run-maestro.sh</affectedPath><commitId>45dcb4aad7ec6b948cd64f765c226e4f2aa0a93f</commitId><timestamp>1783861091000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update ci-run-maestro.sh to use directory name as per E2ETestArtifactsUseCase.
</comment><date>2026-07-12 16:58:11 +0400</date><id>45dcb4aad7ec6b948cd64f765c226e4f2aa0a93f</id><msg>Update ci-run-maestro.sh to use directory name as per E2ETestArtifactsUseCase.</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>c3ac9d42b55120ca6c40c4ce24b800276976b506</commitId><timestamp>1783918089000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro Cloud command execution order by moving `$DEVICE_OS_ARG`.
</comment><date>2026-07-13 08:48:09 +0400</date><id>c3ac9d42b55120ca6c40c4ce24b800276976b506</id><msg>Update Maestro Cloud command execution order by moving `$DEVICE_OS_ARG`.</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>b965993d704b39e548a97a91a0191b526d25b4eb</commitId><timestamp>1783920134000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update `MAESTRO_CLOUD_URL` extraction in `ci-run-maestro.sh` to support any host with a stable `/upload/` path.
</comment><date>2026-07-13 09:22:14 +0400</date><id>b965993d704b39e548a97a91a0191b526d25b4eb</id><msg>Update `MAESTRO_CLOUD_URL` extraction in `ci-run-maestro.sh` to support any host with a stable `/upload/` path.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>717a75d91e34eee233c557f9997abaac80e8409a</commitId><timestamp>1783922472000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update logic for retrieving `MAESTRO_CLOUD_URL` in `ci-run-cypress.sh`.
</comment><date>2026-07-13 10:01:12 +0400</date><id>717a75d91e34eee233c557f9997abaac80e8409a</id><msg>Update logic for retrieving `MAESTRO_CLOUD_URL` 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/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>eee40220def800ead5daccea1c4718cf3fcf1bed</commitId><timestamp>1783922503000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro E2E test flows to a pending directory.
</comment><date>2026-07-13 10:01:43 +0400</date><id>eee40220def800ead5daccea1c4718cf3fcf1bed</id><msg>Move Maestro E2E test flows to a pending directory.</msg><path><editType>add</editType><file>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.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/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/app/AppNavHost.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/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-lib-shared/src/commonMain/composeResources/values/strings.xml</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/domain/launchers/WebLauncherUseCase.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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.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/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.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/ZammadTicketResponse.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.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>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/feedback/ZammadTicketResponse.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/FeedbackCategory.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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/002_browse_lessons_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_002_add_user_direct_test.yaml</affectedPath><affectedPath>.maestro/flows/001_002_add_user_direct_test.yaml</affectedPath><commitId>196a27f4e06bbba3cfc3a83edef7ab5ce7b0e743</commitId><timestamp>1783923685000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Move Maestro E2E tests from flows-pending to flows.
</comment><date>2026-07-13 10:21:25 +0400</date><id>196a27f4e06bbba3cfc3a83edef7ab5ce7b0e743</id><msg>Move Maestro E2E tests from flows-pending to flows.</msg><path><editType>add</editType><file>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/002_browse_lessons_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml</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/sharefeedback/ShareFeedbackScreen.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>.gitignore</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>15ebb0f2a50421088794db4eecfc61bc7a7c416d</commitId><timestamp>1783924188000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update comment in `ci-run-cypress.sh` for clarity on Maestro Cloud URL retrieval.
</comment><date>2026-07-13 10:29:48 +0400</date><id>15ebb0f2a50421088794db4eecfc61bc7a7c416d</id><msg>Update comment in `ci-run-cypress.sh` for clarity on Maestro Cloud URL retrieval.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md</affectedPath><affectedPath>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.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/007_001_user_signup_using_passkey_test_description.md</file></path><path><editType>delete</editType><file>respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.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/CreateTicketUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>1149035688ab9f5b6552379f3cd29f52b4e1ba0f</commitId><timestamp>1783927239000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Remove log-based Maestro Cloud URL discovery from `ci-run-cypress.sh`.
</comment><date>2026-07-13 11:20:39 +0400</date><id>1149035688ab9f5b6552379f3cd29f52b4e1ba0f</id><msg>Remove log-based Maestro Cloud URL discovery from `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/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><commitId>42a8c4562d244e3807b055281feb2064962f6268</commitId><timestamp>1783928181000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test tags and CI configuration to run work-in-progress flows.
</comment><date>2026-07-13 11:36:21 +0400</date><id>42a8c4562d244e3807b055281feb2064962f6268</id><msg>Update Maestro test tags and CI configuration to run work-in-progress flows.</msg><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/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><commitId>a59fd66687de62090881871b235831b8a37e669b</commitId><timestamp>1783928912000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test configuration to remove the `wip` tag and include the assignment flow in standard CI runs.
</comment><date>2026-07-13 11:48:32 +0400</date><id>a59fd66687de62090881871b235831b8a37e669b</id><msg>Update Maestro test configuration to remove the `wip` tag and include the assignment flow in standard CI runs.</msg><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>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt</affectedPath><commitId>c8b0229d115405ef0ad4729e7b0f31fc6d2fb18d</commitId><timestamp>1783929547000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add suspended UiText getUiTextString for use by view models where required.
</comment><date>2026-07-13 11:59:07 +0400</date><id>c8b0229d115405ef0ad4729e7b0f31fc6d2fb18d</id><msg>Add suspended UiText getUiTextString for use by view models where required.</msg><path><editType>edit</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>73f54875b6cd05bedaff12e2622f469f00fd60d2</commitId><timestamp>1783931069000</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 capture Cypress exit code by disabling immediate exit on error.
</comment><date>2026-07-13 12:24:29 +0400</date><id>73f54875b6cd05bedaff12e2622f469f00fd60d2</id><msg>Update `ci-run-cypress.sh` to capture Cypress exit code by disabling immediate exit on error.</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>c5c1ab65accf27cba09619a3e972141df12bf435</commitId><timestamp>1783931671000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add video presence check to Maestro video URL extraction script.

Skip processing and log a message if no video element is found on the page.
</comment><date>2026-07-13 12:34:31 +0400</date><id>c5c1ab65accf27cba09619a3e972141df12bf435</id><msg>Add video presence check to Maestro video URL extraction script.</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>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>1b043ce5c64926d23111b4517a60e7f98ac70726</commitId><timestamp>1783935293000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Cypress script and video extraction logic.
</comment><date>2026-07-13 13:34:53 +0400</date><id>1b043ce5c64926d23111b4517a60e7f98ac70726</id><msg>Update Cypress script and video 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>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><commitId>ac6eda60c32e07997be5af8a457e4e6065e7b428</commitId><timestamp>1783940397000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Fix indentation and remove redundant closing brace in `extract-maestro-video-urls.cy.js`.
</comment><date>2026-07-13 14:59:57 +0400</date><id>ac6eda60c32e07997be5af8a457e4e6065e7b428</id><msg>Fix indentation and remove redundant closing brace in `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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><commitId>e545de983d2d8693ae61efc701deae69b30bec3b</commitId><timestamp>1783941356000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add `e2e` tags to Maestro flows and update the CI script to filter by these tags.
</comment><date>2026-07-13 15:15:56 +0400</date><id>e545de983d2d8693ae61efc701deae69b30bec3b</id><msg>Add `e2e` tags to Maestro flows and update the CI script to filter by these tags.</msg><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_003_login_using_school_link_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-lock.json</affectedPath><affectedPath>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>e6d6d62def81f3588317a265b22ba4e3df3e9928</commitId><timestamp>1783943851000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update CI script and project metadata for video downloader, and fix indentation in extraction test.
</comment><date>2026-07-13 15:57:31 +0400</date><id>e6d6d62def81f3588317a265b22ba4e3df3e9928</id><msg>Update CI script and project metadata for video downloader, and fix indentation in extraction test.</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><path><editType>edit</editType><file>.maestro/video-downloader/package-lock.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/video-downloader/package-lock.json</affectedPath><commitId>3591ce8ab795eab1f57dafb52df7d6d14110f4f5</commitId><timestamp>1783944131000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Add ISC license to video-downloader package-lock.json.
</comment><date>2026-07-13 16:02:11 +0400</date><id>3591ce8ab795eab1f57dafb52df7d6d14110f4f5</id><msg>Add ISC license to video-downloader package-lock.json.</msg><path><editType>edit</editType><file>.maestro/video-downloader/package-lock.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><commitId>e6acde283a8dd8a900d8cb38b4347832854cda77</commitId><timestamp>1783944221000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Comment out E2E tags in admin user assignment Maestro flow.
</comment><date>2026-07-13 16:03:41 +0400</date><id>e6acde283a8dd8a900d8cb38b4347832854cda77</id><msg>Comment out E2E tags in admin user assignment Maestro flow.</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>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>47c2ba2b5030f12bc22de7e0f9ebeb5c26505ea7</commitId><timestamp>1783944451000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Ignore Cypress test failure exit code in CI script to allow subsequent video download steps.
</comment><date>2026-07-13 16:07:31 +0400</date><id>47c2ba2b5030f12bc22de7e0f9ebeb5c26505ea7</id><msg>Ignore Cypress test failure exit code in CI script to allow subsequent video download steps.</msg><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>.maestro/video-downloader/ci-run-cypress.sh</affectedPath><commitId>dde9b03b436711af01e62a75608c7d5ea0f8773b</commitId><timestamp>1783944813000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro CI scripts and login flow test.
</comment><date>2026-07-13 16:13:33 +0400</date><id>dde9b03b436711af01e62a75608c7d5ea0f8773b</id><msg>Update Maestro CI scripts and login flow test.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>.maestro/video-downloader/ci-run-cypress.sh</file></path><path><editType>edit</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><commitId>634bd44b82cbc1e1c42238ccafe91e6f8996194f</commitId><timestamp>1783945869000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro E2E test flows and CI configuration.
</comment><date>2026-07-13 16:31:09 +0400</date><id>634bd44b82cbc1e1c42238ccafe91e6f8996194f</id><msg>Update Maestro E2E test flows and CI configuration.</msg><path><editType>edit</editType><file>.maestro/flows/001_003_login_using_school_link_test.yaml</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</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>ci-run-maestro.sh</affectedPath><commitId>7212e11952e97f8017cd019175f6a261980dbeaa</commitId><timestamp>1783946125000</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-maestro.sh` to append a unique timestamp to Maestro Cloud run names.
</comment><date>2026-07-13 16:35:25 +0400</date><id>7212e11952e97f8017cd019175f6a261980dbeaa</id><msg>Update `ci-run-maestro.sh` to append a unique timestamp to Maestro Cloud run names.</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>b400e73eebc101e7182ecc0a3d54a1b1b9238123</commitId><timestamp>1783946198000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Refactor `ci-run-maestro.sh` to remove the fallback name argument for Maestro cloud runs.
</comment><date>2026-07-13 16:36:38 +0400</date><id>b400e73eebc101e7182ecc0a3d54a1b1b9238123</id><msg>Refactor `ci-run-maestro.sh` to remove the fallback name argument for Maestro cloud runs.</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>39831c2d77ee812a5cd99b53fce41eedee02a686</commitId><timestamp>1783950980000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Simplify Maestro CI run naming by removing unique timestamp suffixes from the `BUILD_TAG`.
</comment><date>2026-07-13 17:56:20 +0400</date><id>39831c2d77ee812a5cd99b53fce41eedee02a686</id><msg>Simplify Maestro CI run naming by removing unique timestamp suffixes from the `BUILD_TAG`.</msg><path><editType>edit</editType><file>ci-run-maestro.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_XAPI_OPDS.md</affectedPath><affectedPath>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>455cf2f79fc9f39f11443e4bf5a5bb99e221b4ad</commitId><timestamp>1783965714000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add documentation on connections between open standards used.
</comment><date>2026-07-13 22:01:54 +0400</date><id>455cf2f79fc9f39f11443e4bf5a5bb99e221b4ad</id><msg>Add documentation on connections between open standards used.</msg><path><editType>edit</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md</file></path><path><editType>add</editType><file>respect-lib-xapi-core/README_XAPI_OPDS.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_XAPI_OPDS.md</affectedPath><commitId>987068954293a5bcf20450ff5f6262b4a6fc4385</commitId><timestamp>1783965823000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add documentation on connections between open standards used.
</comment><date>2026-07-13 22:03:43 +0400</date><id>987068954293a5bcf20450ff5f6262b4a6fc4385</id><msg>Add documentation on connections between open standards used.</msg><path><editType>edit</editType><file>respect-lib-xapi-core/README_XAPI_OPDS.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><commitId>e0a9b2f13bc12b20d8dea483fb8baa0dfda0ed59</commitId><timestamp>1784010383000</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 playlist list to use `ExpandableFabUiState` for creation options.
</comment><date>2026-07-14 11:56:23 +0530</date><id>e0a9b2f13bc12b20d8dea483fb8baa0dfda0ed59</id><msg>Refactor playlist list to use `ExpandableFabUiState` for creation options.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.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/account/username/GetActiveUsernameUseCase.kt</affectedPath><commitId>c9b1634267ad7f19ab9fec0f4bf8e579e8fdc9ee</commitId><timestamp>1784013818000</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 GetActiveUsernameUseCase
</comment><date>2026-07-14 12:53:38 +0530</date><id>c9b1634267ad7f19ab9fec0f4bf8e579e8fdc9ee</id><msg>Refactor GetActiveUsernameUseCase</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/GetActiveUsernameUseCase.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/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/CreatePlaylistShareLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</affectedPath><commitId>d2a44049e3eb0ab3c48e0c5be34476e82761f734</commitId><timestamp>1784016927000</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 EnterLinkViewModel and removed the constants.
</comment><date>2026-07-14 13:45:27 +0530</date><id>d2a44049e3eb0ab3c48e0c5be34476e82761f734</id><msg>Fix EnterLinkViewModel and removed the constants.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/CreatePlaylistShareLinkUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.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>delete</editType><file>.maestro/flows/006_002_user_send_feedback_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/006_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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><commitId>5773c5329499bc873dbf0c9668fb7861615ee2de</commitId><timestamp>1784022437000</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-07-14 15:17:17 +0530</date><id>5773c5329499bc873dbf0c9668fb7861615ee2de</id><msg>fix</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</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/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/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>.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>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.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>ci-run-maestro.sh</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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.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/account/username/GetActiveUsernameUseCase.kt</affectedPath><commitId>bf1507fc675170289b54f71e41eb3c8d768cf79d</commitId><timestamp>1784033150000</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 GetActiveUsernameUseCase
</comment><date>2026-07-14 18:15:50 +0530</date><id>bf1507fc675170289b54f71e41eb3c8d768cf79d</id><msg>Remove GetActiveUsernameUseCase</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/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/GetActiveUsernameUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>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>ci-run-maestro.sh</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_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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_XAPI.md</affectedPath><affectedPath>README_ADD_YOUR_APP.md</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><commitId>be57e9042d93ae9a8af36103fccffddd1ce5a107</commitId><timestamp>1784053610000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add documentation on adding a new app.
</comment><date>2026-07-14 22:26:50 +0400</date><id>be57e9042d93ae9a8af36103fccffddd1ce5a107</id><msg>Add documentation on adding a new app.</msg><path><editType>delete</editType><file>README_XAPI.md</file></path><path><editType>add</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><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><commitId>211c8704c35624871ed0bd8f255075e39387dfb9</commitId><timestamp>1784099849000</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 learning-unit selection handling in `PlaylistEditViewModel` and add documentation for result types.
</comment><date>2026-07-15 12:47:29 +0530</date><id>211c8704c35624871ed0bd8f255075e39387dfb9</id><msg>Refactor learning-unit selection handling in `PlaylistEditViewModel` and add documentation for result types.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</commitId><timestamp>1784101656000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Clarify terms used in the add your app readme and make terminology consistent.
</comment><date>2026-07-15 11:47:36 +0400</date><id>ea0af78aa264bcb7e9850726fbaec3ca4c39aefc</id><msg>Clarify terms used in the add your app readme and make terminology consistent.</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</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/package.json</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/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-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/share/PlaylistShareViewModel.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/playlists/mapping/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/externallink/ExternalLinkEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/externallink/ExternalLinkEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>6c6a36cd18a6c6825126e9c9e2205e5e4729791c</commitId><timestamp>1784288128000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>rename from mapping to collections
</comment><date>2026-07-17 17:05:28 +0530</date><id>6c6a36cd18a6c6825126e9c9e2205e5e4729791c</id><msg>rename from mapping to collections</msg><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/externallink/ExternalLinkEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.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/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/externallink/ExternalLinkEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/share/PlaylistShareViewModel.kt</file></path></item><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><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>respect-lib-opds-model/build.gradle.kts</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/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/teardown.js</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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>.maestro/flows/scripts/school_init.js</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/README.md</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/teardown.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</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-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.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/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.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_browse_lessons_test.yaml</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>ci-run-maestro.sh</file></path><path><editType>edit</editType><file>respect-lib-xapi-nanohttpd/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_browse_lessons_test.yaml</affectedPath><commitId>7d2c75f8a9b9fdc6c359ba251e266d23daa35e91</commitId><timestamp>1784617697000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Update Maestro browse lessons test to tap on "Home" instead of "Apps".
</comment><date>2026-07-21 12:38:17 +0530</date><id>7d2c75f8a9b9fdc6c359ba251e266d23daa35e91</id><msg>Update Maestro browse lessons test to tap on "Home" instead of "Apps".</msg><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-lib-shared/src/commonMain/composeResources/values/strings.xml</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>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/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.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-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.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-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.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-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.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-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><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</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/Application.kt</file></path><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></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>ci-run-maestro.sh</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><affectedPath>ci-run-test-server.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>add</editType><file>ci-run-e2e-tests.sh</file></path><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>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>.maestro/flows/subflows/e2e_artifact_upload.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</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-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.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/util/exception/ExceptionWithUiText.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-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.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/composeResources/values/strings.xml</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/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/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.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/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/jvmTest/resources/lesson001.json</file></path><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/OpdsPublicationDataSourceDb.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/OpdsFeedDataSourceDb.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>edit</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.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-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/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><path><editType>add</editType><file>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.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-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</file></path></item><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-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.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-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.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>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/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.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/DemoConstants.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/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.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>add</editType><file>respect-server/src/main/resources/demoapp/app_icon.png</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</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-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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.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-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-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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</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/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.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>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.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>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</file></path><path><editType>add</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/examples/lesson001/lesson001.json</file></path><path><editType>add</editType><file>respect-app-compose/src/androidMain/res/raw/license_label_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>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</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-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-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>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><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/grade.jpg</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/books.png</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/navigation/AppRoutes.kt</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/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-server/src/main/resources/http/respect-ds/case_valid/examples/index.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><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/icon.png</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-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/composeResources/values/strings.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>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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.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-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><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/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-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</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/composeResources/values/strings.xml</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-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-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/learningunit/detail/LearningUnitDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-test-resources/build.gradle.kts</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-primarykeygen/build.gradle.kts</affectedPath><affectedPath>app-android/build.gradle.kts</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-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.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-lib-xapi-core/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-ipc-shared/build.gradle.kts</affectedPath><affectedPath>respect-credentials/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>gradle/wrapper/gradle-wrapper.properties</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</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/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppActivity.kt</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/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</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/wrapper/gradle-wrapper.properties</file></path><path><editType>edit</editType><file>respect-lib-ihttp-okhttp/build.gradle.kts</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-datalayer-db/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-lib-xapi-core/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/build.gradle.kts</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/AbstractAppActivity.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.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>edit</editType><file>settings.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-lib-test/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle.properties</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>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-util/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-lib-dataloadstate/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xxhash/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/RespectImageSelectButton.android.kt</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-datalayer-repository/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</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-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.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/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/AndroidManifest.xml</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-primarykeygen/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-test-resources/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</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-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/build.gradle.kts</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-lib-ihttp-nanohttpd/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/proguard-rules.pro</file></path><path><editType>add</editType><file>app-android/src/main/AndroidManifest.xml</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-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</file></path><path><editType>add</editType><file>app-android/proguard-rules.pro</file></path><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</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-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.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-opds-model/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-ihttp-iostreams/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared-se/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-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-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/default-catalog.json</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-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.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_002_browse_demo_app_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_001_browse_lessons_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>.maestro/README.md</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>ci-run-e2e-tests.sh</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>.maestro/flows/002_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>gradle.properties</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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</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>.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/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-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.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/apps/detail/AppsDetailViewModel.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/openexternallink/OpenExternalLinkUseCase.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/OpenExternalLinkUseCaseAndroid.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/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>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.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>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/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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.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>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/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</file></path><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/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.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><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><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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</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/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-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.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/util/CommonSortOptions.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</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/bookmark/AddBookmarkUseCase.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-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</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>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/statementmaker/index.html</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</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-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.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>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/domain/license/GetLicenseLabelUseCase.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-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</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/detail/LearningUnitDetailScreen.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/viewmodel/app/appstate/Snack.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.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>.maestro/flows/002_002_browse_demo_app_test.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.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/androidMain/kotlin/world/respect/WebViewActivity.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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.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>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/home/HomeScreen.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>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</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>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/add_person_create_account.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_student.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_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/subflows/admin_add_new_teacher_to_class.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/001_001_invite_users_using_qr_code_or_link_test.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/002_001_browse_lessons_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_student.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt</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/model/TinCanXmlDocument.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXml.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><commitId>e4042afc191b6ed7220d1d18d661a9a6354175f2</commitId><timestamp>1785484704000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add XmlUtil and TinCanXmlDocument for deserialization.
</comment><date>2026-07-31 11:58:24 +0400</date><id>e4042afc191b6ed7220d1d18d661a9a6354175f2</id><msg>Add XmlUtil and TinCanXmlDocument for deserialization.</msg><path><editType>delete</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/model/TinCanXmlDocument.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXml.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</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/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path><path><editType>edit</editType><file>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/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/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.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/UstadCacheJvmTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path><path><editType>add</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-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-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-ihttp-iostreams/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>gradle/libs.versions.toml</file></path><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>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>respect-lib-ihttp-core/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-lib-ihttp-iostreams/build.gradle.kts</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/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/ServerAppMain.kt</affectedPath><affectedPath>.fleet/receipt.json</affectedPath><commitId>d7157c9c817fac9e8bcb805ebf15fc52fe49ca20</commitId><timestamp>1785658867000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Start adding support to output the demo launchable app to static files.
</comment><date>2026-08-02 12:21:07 +0400</date><id>d7157c9c817fac9e8bcb805ebf15fc52fe49ca20</id><msg>Start adding support to output the demo launchable app to static files.</msg><path><editType>delete</editType><file>.fleet/receipt.json</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt</file></path><path><editType>add</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/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>add</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/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.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/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><commitId>8718980f1acc18880a8f5860b17f1f38b650a2d4</commitId><timestamp>1785677631000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial usage of TinCan.xml in GetXapiLaunchUrlUseCaseAndroid.kt
</comment><date>2026-08-02 17:33:51 +0400</date><id>8718980f1acc18880a8f5860b17f1f38b650a2d4</id><msg>Initial usage of TinCan.xml in GetXapiLaunchUrlUseCaseAndroid.kt</msg><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/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.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/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/ServerKoinModule.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/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>e368404e6e10845cf46fd83f74fa1bd09f85d5f2</commitId><timestamp>1785761011000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: add support to write demo app as static files.
</comment><date>2026-08-03 16:43:31 +0400</date><id>e368404e6e10845cf46fd83f74fa1bd09f85d5f2</id><msg>Work in progress: add support to write demo app as static files.</msg><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>add</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/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>add</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/SaveDemoAppToStaticFilesUseCase.kt</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/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><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/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>cecbcf5e3f9a94c4ac4ef8b7e30e384650174d53</commitId><timestamp>1785763491000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Write demo app lesson manifest as file or use in Ktor route.
</comment><date>2026-08-03 17:24:51 +0400</date><id>cecbcf5e3f9a94c4ac4ef8b7e30e384650174d53</id><msg>Write demo app lesson manifest as file or use in Ktor route.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.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/MakeDemoAppLessonManifestUseCase.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/ServerKoinModule.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</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/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/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt</affectedPath><commitId>8059b6c0a51b479add3cbbb459a152cecc25c9ef</commitId><timestamp>1785764487000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add tincan.xml to demo app output on Ktor server route and static files output.
</comment><date>2026-08-03 17:41:27 +0400</date><id>8059b6c0a51b479add3cbbb459a152cecc25c9ef</id><msg>Add tincan.xml to demo app output on Ktor server route and static files output.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.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/ManagerServerCLI.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/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt</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/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/lesson_xapi.js</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/xapi_module.js</affectedPath><commitId>d8f6a6e312a91f79baa03a8bd84a4bb2863aa1a8</commitId><timestamp>1785768904000</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 demo app lesson html to send an xAPI statement
</comment><date>2026-08-03 18:55:04 +0400</date><id>d8f6a6e312a91f79baa03a8bd84a4bb2863aa1a8</id><msg>Initial implementation of demo app lesson html to send an xAPI statement</msg><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/lesson_xapi.js</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/xapi_module.js</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/lesson_xapi.js</affectedPath><commitId>572d15fa891059c81f165a06c4e5ae43ac642d94</commitId><timestamp>1785825117000</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 HTML/JS version to mirror the native Android version.
</comment><date>2026-08-04 10:31:57 +0400</date><id>572d15fa891059c81f165a06c4e5ae43ac642d94</id><msg>Update demo app HTML/JS version to mirror the native Android version.</msg><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/lesson_xapi.js</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.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/MakeDemoAppLessonHtmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><commitId>9e1b3205dbce484e928b772e5eac1bed84ee8cfd</commitId><timestamp>1785830138000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update save demo app to files to include lesson HTML and Javascript.
</comment><date>2026-08-04 11:55:38 +0400</date><id>9e1b3205dbce484e928b772e5eac1bed84ee8cfd</id><msg>Update save demo app to files to include lesson HTML and Javascript.</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/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.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/domain/school/demoapp/MakeDemoAppLessonManifestUseCase.kt</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/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/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/lesson_xapi.js</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonManifestUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/learning_unit_xapi.js</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/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><commitId>f4d67923b38730e4a50ab4a0927ee683dd13fa67</commitId><timestamp>1785832822000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update demo naming to follow terminology.
</comment><date>2026-08-04 12:40:22 +0400</date><id>f4d67923b38730e4a50ab4a0927ee683dd13fa67</id><msg>Update demo naming to follow terminology.</msg><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonManifestUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.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/ServerKoinModule.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/learning_unit_xapi.js</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/lesson_xapi.js</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>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>a6c16515f9f9a61aeaa1dff61e0ed840d5cc7973</commitId><timestamp>1785846944000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix demo app links. Bump version.
</comment><date>2026-08-04 16:35:44 +0400</date><id>a6c16515f9f9a61aeaa1dff61e0ed840d5cc7973</id><msg>Fix demo app links. Bump version.</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-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</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/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><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><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><commitId>6ecd77ce786b44bfc313964f961c30aed8dfbbd4</commitId><timestamp>1785849404000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix potential for flakiness in UstadCacheJvmTest where update had not yet been committed to the database.
</comment><date>2026-08-04 17:16:44 +0400</date><id>6ecd77ce786b44bfc313964f961c30aed8dfbbd4</id><msg>Fix potential for flakiness in UstadCacheJvmTest where update had not yet been committed to the database.</msg><path><editType>edit</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/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.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-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml</affectedPath><commitId>bf36064888e0aa724bf76c980a9f07eefd487016</commitId><timestamp>1785850366000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add tincan.xml for exampels/lesson 001
</comment><date>2026-08-04 17:32:46 +0400</date><id>bf36064888e0aa724bf76c980a9f07eefd487016</id><msg>Add tincan.xml for exampels/lesson 001</msg><path><editType>add</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml</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/util/CountryDetection.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</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/GetCountryForUrlUseCaseImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><commitId>7ebdf88d54478a92f00d1bcb30538849be59a10f</commitId><timestamp>1785913257000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add index.html for demo app.
</comment><date>2026-08-05 11:00:57 +0400</date><id>7ebdf88d54478a92f00d1bcb30538849be59a10f</id><msg>Add index.html for demo app.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>add</editType><file>respect-server/src/main/resources/demoapp/index.html</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>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><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/daos/WriteQueueItemEntityDao.kt</file></path><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></item><item _class='hudson.plugins.git.GitChangeSet'><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><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.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/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><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/teardown.yaml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</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>.maestro/flows/subflows/teardown.yaml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</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/util/UstadCacheExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</file></path><path><editType>edit</editType><file>respect-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/teardown.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/e2e_artifact_upload.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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.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/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>gradle.properties</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/util/ChannelExt.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.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-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/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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.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/geolookup/GetCountryForUrlUseCase.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/util/CountryCodeToFlagEmoji.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><affectedPath>app-android/build.gradle.kts</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>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.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/geolookup/GetCountryForUrlUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.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/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt</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-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.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-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/domain/country/GetCountryForUrlUseCase.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.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/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/detail/PlaylistDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/detail/PlaylistDetailViewModel.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/playlists/collections/externallink/ExternalLinkEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>9bb4fdd6df56433d3dc3ede102808c882d3a5858</commitId><timestamp>1786349056000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Resolved the comments and move PlaylistDetail into its own files
</comment><date>2026-08-10 13:34:16 +0530</date><id>9bb4fdd6df56433d3dc3ede102808c882d3a5858</id><msg>Resolved the comments and move PlaylistDetail into its own files</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/detail/PlaylistDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/externallink/ExternalLinkEditScreen.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/playlists/collections/edit/PlaylistEditScreen.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/viewmodel/playlists/collections/edit/PlaylistEditViewModel.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>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/detail/PlaylistDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>1db81c02e16fc959287402d3587e47686aa410d2</commitId><timestamp>1786349137000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Resolved the comments and move PlaylistDetail into its own files
</comment><date>2026-08-10 13:35:37 +0530</date><id>1db81c02e16fc959287402d3587e47686aa410d2</id><msg>Resolved the comments and move PlaylistDetail into its own files</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/detail/PlaylistDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/detail/PlaylistDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>282524cdee6e128ac397fa66725a05177c8e7ef7</commitId><timestamp>1786354535000</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-10 15:05:35 +0530</date><id>282524cdee6e128ac397fa66725a05177c8e7ef7</id><msg>fix</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.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/playlists/collections/list/PlaylistListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/detail/PlaylistDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>edit</editType><file>respect-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/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/detail/PlaylistDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><affectedPath>respect-lib-xapi-core/README_XAPI_SQL_QUERY.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>edit</editType><file>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path><path><editType>add</editType><file>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md</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/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</affectedPath><commitId>53d0b05c7d345080fd10305f08963104643a1057</commitId><timestamp>1786438461000</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: extract web page metadata from Open Graph tags instead of using a WebView
</comment><date>2026-08-11 14:24:21 +0530</date><id>53d0b05c7d345080fd10305f08963104643a1057</id><msg>refactor: extract web page metadata from Open Graph tags instead of using a WebView</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.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_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><affectedPath>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><commitId>efe0b96031ea0c8519ccf84a071fb2d57f48377c</commitId><timestamp>1786439047000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Added bookmark and playlist to one test
</comment><date>2026-08-11 13:04:07 +0400</date><id>efe0b96031ea0c8519ccf84a071fb2d57f48377c</id><msg>Added bookmark and playlist to one test</msg><path><editType>delete</editType><file>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path><path><editType>delete</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><commitId>8554b076a2fbae5861ad5018c419f054db722374</commitId><timestamp>1786439278000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Added tags to test only the failed tests
</comment><date>2026-08-11 13:07:58 +0400</date><id>8554b076a2fbae5861ad5018c419f054db722374</id><msg>Added tags to test only the failed tests</msg><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/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path><path><editType>edit</editType><file>ci-run-e2e-tests.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_student.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>b3d157189eaa64e06aa86c7a8ce22c02f6c3d93e</commitId><timestamp>1786441536000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated the Classes locator to its  id: "nav_classes"
</comment><date>2026-08-11 13:45:36 +0400</date><id>b3d157189eaa64e06aa86c7a8ce22c02f6c3d93e</id><msg>Updated the Classes locator to its  id: "nav_classes"</msg><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/admin_add_student.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class_with_members.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_new_teacher_to_class.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><commitId>76a48f3ff7fc548e411d80078f4ab062375ffb1c</commitId><timestamp>1786443287000</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-11 15:44:47 +0530</date><id>76a48f3ff7fc548e411d80078f4ab062375ffb1c</id><msg>Fix</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>a4a7358ca631ebfa44f42a2f3e793aa9e118b2b4</commitId><timestamp>1786446364000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added tag
</comment><date>2026-08-11 15:06:04 +0400</date><id>a4a7358ca631ebfa44f42a2f3e793aa9e118b2b4</id><msg>added tag</msg><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/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml</affectedPath><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><commitId>47c5d2f2bee27bebdbee47a6ec9a7482397ebac5</commitId><timestamp>1786447730000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test
</comment><date>2026-08-11 15:28:50 +0400</date><id>47c5d2f2bee27bebdbee47a6ec9a7482397ebac5</id><msg>updated test</msg><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/002_001_user_add_apps_playlists_and_bookmarks_to_school_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/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>b70b8deaf6198a02f8a50c983885f29a27bab894</commitId><timestamp>1786448855000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated test id
</comment><date>2026-08-11 15:47:35 +0400</date><id>b70b8deaf6198a02f8a50c983885f29a27bab894</id><msg>updated test id</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>797da502dfc983239976ada3149916f5123e24e2</commitId><timestamp>1786448897000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated title comments
</comment><date>2026-08-11 15:48:17 +0400</date><id>797da502dfc983239976ada3149916f5123e24e2</id><msg>updated title comments</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>1b38a1dd5b500233e5525b12fe6113f9722dbc4b</commitId><timestamp>1786518391000</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 id from test file
</comment><date>2026-08-12 12:36:31 +0530</date><id>1b38a1dd5b500233e5525b12fe6113f9722dbc4b</id><msg>remove the id from test file</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>2cdaea0bccefe15841bf42b97d4179e26b41d94d</commitId><timestamp>1786523588000</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 002_001 test file
</comment><date>2026-08-12 14:03:08 +0530</date><id>2cdaea0bccefe15841bf42b97d4179e26b41d94d</id><msg>Fix 002_001 test file</msg><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-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>a7858bb528ce213fb6893681ed412795cab39f03</commitId><timestamp>1786525536000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>Revert
</comment><date>2026-08-12 14:35:36 +0530</date><id>a7858bb528ce213fb6893681ed412795cab39f03</id><msg>Revert</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/list/LearningUnitListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>4ae16061b309e76da716dd8def68a406d9ce8ec7</commitId><timestamp>1786529535000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Updated app name
</comment><date>2026-08-12 14:12:15 +0400</date><id>4ae16061b309e76da716dd8def68a406d9ce8ec7</id><msg>Updated app name</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><commitId>8f47f26a5766fdb86b52ac9081ea29e9ff055363</commitId><timestamp>1786532233000</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 the flow
</comment><date>2026-08-12 16:27:13 +0530</date><id>8f47f26a5766fdb86b52ac9081ea29e9ff055363</id><msg>Fix the flow</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</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>gradle.properties</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>4907cb57c8c52ffbde0d356b82be038bd77d0efd</commitId><timestamp>1786536624000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>added hidekeyboard when Task is hidden by keyboard
</comment><date>2026-08-12 16:10:24 +0400</date><id>4907cb57c8c52ffbde0d356b82be038bd77d0efd</id><msg>added hidekeyboard when Task is hidden by keyboard</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>5f6208ea44e2a8ed155d3522d97fef332989c82d</commitId><timestamp>1786537993000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>updated home
</comment><date>2026-08-12 16:33:13 +0400</date><id>5f6208ea44e2a8ed155d3522d97fef332989c82d</id><msg>updated home</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><affectedPath>ci-run-e2e-tests.sh</affectedPath><commitId>4326530d3b1064edd0cad451cd2b058bcca94f32</commitId><timestamp>1786538916000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Clean up
</comment><date>2026-08-12 16:48:36 +0400</date><id>4326530d3b1064edd0cad451cd2b058bcca94f32</id><msg>Clean up</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path><path><editType>edit</editType><file>ci-run-e2e-tests.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>5acf713cef89b616204c6cebc327e45261da58d7</commitId><timestamp>1786610529000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Share flow updated
</comment><date>2026-08-13 12:42:09 +0400</date><id>5acf713cef89b616204c6cebc327e45261da58d7</id><msg>Share flow updated</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><commitId>58b19a1f5548e8d43a8a882763f47abaa76b8f24</commitId><timestamp>1786628834000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove unnecessary FeedActionButton that was really just a duplicate of RespectQuickActionButton (went against DRY principle).
</comment><date>2026-08-13 17:47:14 +0400</date><id>58b19a1f5548e8d43a8a882763f47abaa76b8f24</id><msg>Remove unnecessary FeedActionButton that was really just a duplicate of RespectQuickActionButton (went against DRY principle).</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-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/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.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/viewmodel/learningunit/LearningUnitSelection.kt</affectedPath><commitId>4467cb4ff388f1daa46631a38a307a673d375ba1</commitId><timestamp>1786644397000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidyup work in progress:

Refactor LearningUnitSelection to allow for multi selection.
Avoid crash on assigning long lists.
Handle getting xapi activity info for selecting learning units.
</comment><date>2026-08-13 19:06:37 +0100</date><id>4467cb4ff388f1daa46631a38a307a673d375ba1</id><msg>Tidyup work in progress:</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.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/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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-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-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt</affectedPath><commitId>b3b5ff1a73b252975705b52dd37ee53240c3af71</commitId><timestamp>1786647137000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>More tidy up of learning unit list : fix selection if icons, and fix display of header icon and description.
</comment><date>2026-08-13 19:52:17 +0100</date><id>b3b5ff1a73b252975705b52dd37ee53240c3af71</id><msg>More tidy up of learning unit list : fix selection if icons, and fix display of header icon and description.</msg><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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.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>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.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-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path><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>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</affectedPath><commitId>dfe364f81be88d0cfb19e81b22cc6e2a32a83e51</commitId><timestamp>1786648104000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Hide assign button when there are no assignable publications. Padding fixes.
</comment><date>2026-08-13 20:08:24 +0100</date><id>dfe364f81be88d0cfb19e81b22cc6e2a32a83e51</id><msg>Hide assign button when there are no assignable publications. Padding fixes.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>edit</editType><file>respect-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>d5e3093ba8b07d22877711cc1696fa9218b4538f</commitId><timestamp>1786676075000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName></author><authorEmail>lipsa.behera@sutara.org</authorEmail><comment>build fix
</comment><date>2026-08-14 08:24:35 +0530</date><id>d5e3093ba8b07d22877711cc1696fa9218b4538f</id><msg>build fix</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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPublicationsSelection.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.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/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.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/playlists/collections/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/opdscatalog/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedHeader.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</affectedPath><commitId>e610feb08fe2e577932009177ab9e15c0748640a</commitId><timestamp>1786733411000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Name learning unit list as per opds terminology
</comment><date>2026-08-14 19:50:11 +0100</date><id>e610feb08fe2e577932009177ab9e15c0748640a</id><msg>Name learning unit list as per opds terminology</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/PlaylistEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedHeader.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.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/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.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/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>delete</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-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPublicationsSelection.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/opdscatalog/detail/LearningUnitDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/PlaylistEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><commitId>58f0e2413459c6e374e4bded76d6942b04f702f1</commitId><timestamp>1786888680000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Tidying up opds feed detail and edit screens. Tidyup reordering logic.
</comment><date>2026-08-16 14:58:00 +0100</date><id>58f0e2413459c6e374e4bded76d6942b04f702f1</id><msg>Tidying up opds feed detail and edit screens. Tidyup reordering logic.</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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt</file></path><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/viewmodel/learningunit/editfeed/PlaylistEditViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditGroupMenuItemButton.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditMoveToGroupDialog.kt</affectedPath><commitId>e50a0e5e301d03afff35387110a952a26ce5e07e</commitId><timestamp>1786891292000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Finish splitting up OpdsFeedEdit screen into files by component. Remove passing modifier as drag handle modifier.
</comment><date>2026-08-16 15:41:32 +0100</date><id>e50a0e5e301d03afff35387110a952a26ce5e07e</id><msg>Finish splitting up OpdsFeedEdit screen into files by component. Remove passing modifier as drag handle modifier.</msg><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditGroupMenuItemButton.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditMoveToGroupDialog.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.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/learningunit/editfeed/OpdsFeedEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt</affectedPath><commitId>6d26c550c69f6151d7f5f6006a6485e3a2ad412f</commitId><timestamp>1786897318000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update OpdsFeedEdit user interface to use list items instead of buttons for add section, collection link, learning item link.
</comment><date>2026-08-16 17:21:58 +0100</date><id>6d26c550c69f6151d7f5f6006a6485e3a2ad412f</id><msg>Update OpdsFeedEdit user interface to use list items instead of buttons for add section, collection link, learning item link.</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/learningunit/editfeed/OpdsFeedGroupEditItem.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.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/list/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedItemIndex.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/SetExt.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/util/ext/OpdsPublicationExt.kt</affectedPath><commitId>3e7914c436ac81358bb1d409f0243b793b43e12f</commitId><timestamp>1786914595000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Change selection handling on OpdsFeedDetail to use indexes because the Opds spec provides no promise of providing identifiers, or that thosse identifiers will be unique.

Hide bottom navigation when in picker mode for opdsfeed. Hide fab buttons when in picker mode.
</comment><date>2026-08-16 22:09:55 +0100</date><id>3e7914c436ac81358bb1d409f0243b793b43e12f</id><msg>Change selection handling on OpdsFeedDetail to use indexes because the Opds spec provides no promise of providing identifiers, or that thosse identifiers will be unique.</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedItemIndex.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/SetExt.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.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/util/ext/OpdsPublicationExt.kt</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-lib-shared/src/commonMain/composeResources/values/strings.xml</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/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.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/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPickType.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsFeedSelection.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsDocument.kt</affectedPath><commitId>bb23065b90ecfb762580fe39960f1976477d1580</commitId><timestamp>1786991141000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes for selecting navigation feeds from OpdsFeedEdit

Implement similar logic for checkbox display/handling for selecting a catalog.

Delete failing PlaylistRepositoryIntegrationTest: data will be stored using xAPI, so this is obsolete anyway.
</comment><date>2026-08-17 22:25:41 +0400</date><id>bb23065b90ecfb762580fe39960f1976477d1580</id><msg>Fixes for selecting navigation feeds from OpdsFeedEdit</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedListItem.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPickType.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsFeedSelection.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsDocument.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</affectedPath><commitId>7f131744491ddc0efd6abd008ed9a076919f13ca</commitId><timestamp>1786992077000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement support for selecting multiple feeds in OpdsFeedEdit.
</comment><date>2026-08-17 22:41:17 +0400</date><id>7f131744491ddc0efd6abd008ed9a076919f13ca</id><msg>Implement support for selecting multiple feeds in OpdsFeedEdit.</msg><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPickTypeExt.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/learningunit/list/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedHeader.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/bookmark/BookmarkListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>0cae67de9a6e7aa51f44f3bbb51b1910c547c23c</commitId><timestamp>1787124069000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix making opds selections via bookmarks and collections list.
</comment><date>2026-08-19 11:21:09 +0400</date><id>0cae67de9a6e7aa51f44f3bbb51b1910c547c23c</id><msg>Fix making opds selections via bookmarks and collections list.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.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-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPickTypeExt.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/learningunit/list/OpdsFeedHeader.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/OpdsPickType.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditNavigationItemRow.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedGroupEditItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/opdscatalog/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditGroupMenuItemButton.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/publicationdetail/PublicationDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PublicationExt.kt</affectedPath><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-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/OpdsFeedSelection.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateLinkUseCaseImpl.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditMoveToGroupDialog.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsFeedValidator.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPublicationsSelection.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/PublicationListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPickTypeExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddGroupSelectTypeBottomSheet.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/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsPublicationValidator.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditPublicationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPickType.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.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/catalog/feededit/OpdsFeedEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditMoveToGroupDialog.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/catalog/feededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddItemBottomSheet.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.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/viewmodel/catalog/feededit/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feeddetail/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/PublicationsSelection.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailHeader.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/Publication.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsFeedSelection.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedHeader.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditGroupMenuItemButton.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><commitId>599566d5f6e120812dc17e2a961fe97c0b6fa161</commitId><timestamp>1787129115000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor to make catalog related naming more consistent.
</comment><date>2026-08-19 12:45:15 +0400</date><id>599566d5f6e120812dc17e2a961fe97c0b6fa161</id><msg>Refactor to make catalog related naming more consistent.</msg><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditMoveToGroupDialog.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/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/opdscatalog/detail/LearningUnitDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/publicationdetail/PublicationDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feededit/OpdsFeedEditViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/LearningUnitDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedListItem.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditGroupMenuItemButton.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.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-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/Publication.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedHeader.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditNavigationItemRow.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPickType.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt</file></path><path><editType>edit</editType><file>respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddItemBottomSheet.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PublicationExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.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>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/PublicationsSelection.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.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/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/OpdsPickType.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.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>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPublicationsSelection.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateLinkUseCaseImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditPublicationItemRow.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditScreen.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestPublicationEntityAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsFeedSelection.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-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsPublicationValidator.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedListItem.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailHeader.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedGroupEditItem.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/PublicationListItem.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.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>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditMoveToGroupDialog.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPickTypeExt.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feeddetail/OpdsFeedDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditGroupMenuItemButton.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/OpdsFeedSelection.kt</file></path><path><editType>edit</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsFeedValidator.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddItemBottomSheet.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/PublicationListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededitaddlink/OpdsFeedEditAddLinkScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditNavigationItemRow.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededitaddlink/OpdsFeedEditAddLinkViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/bookmark/BookmarkListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedGroupEditItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditGroupMenuItemButton.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/externallink/ExternalLinkEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/bookmark/BookmarkListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailHeader.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedshare/OpdsFeedShareScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/PlaylistListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/share/PlaylistShareViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditNavigationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/PublicationDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/PublicationListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeeddetail/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditMoveToGroupDialog.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditPublicationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.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/catalog/feededit/OpdsFeedEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditMoveToGroupDialog.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddItemBottomSheet.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feededit/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feeddetail/OpdsFeedDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedGroupEditItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditPublicationItemRow.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailHeader.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditGroupMenuItemButton.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedshare/OpdsFeedShareViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</affectedPath><commitId>292abb05550957a6b329fd125719e69e035def73</commitId><timestamp>1787131047000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor to make catalog related naming more consistent. Part 2
</comment><date>2026-08-19 13:17:27 +0400</date><id>292abb05550957a6b329fd125719e69e035def73</id><msg>Refactor to make catalog related naming more consistent. Part 2</msg><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditGroupMenuItemButton.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditMoveToGroupDialog.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/share/PlaylistShareViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedGroupEditItem.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeeddetail/OpdsFeedDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/LearningUnitDetailScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditPublicationItemRow.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedGroupEditItem.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedshare/OpdsFeedShareViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/externallink/ExternalLinkEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/bookmark/BookmarkListViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailScreen.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/view/home/HomeScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedListItem.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditNavigationItemRow.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/PlaylistListScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailHeader.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddItemBottomSheet.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feededit/OpdsFeedEditViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddItemBottomSheet.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feeddetail/OpdsFeedDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditPublicationItemRow.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditGroupMenuItemButton.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/PublicationListItem.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedshare/OpdsFeedShareScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededitaddlink/OpdsFeedEditAddLinkViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedListItem.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditNavigationItemRow.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededitaddlink/OpdsFeedEditAddLinkScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/bookmark/BookmarkListScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/PublicationListItem.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailHeader.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditMoveToGroupDialog.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/PublicationDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/OpdsFeedListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/PlaylistListScreen.kt</affectedPath><commitId>75c74bbcdb51f3ad02544de3ecc5f5bd717ea701</commitId><timestamp>1787131078000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename PlaylistListScreen to OpdsFeedListScreen.kt
</comment><date>2026-08-19 13:17:58 +0400</date><id>75c74bbcdb51f3ad02544de3ecc5f5bd717ea701</id><msg>Rename PlaylistListScreen to OpdsFeedListScreen.kt</msg><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/PlaylistListScreen.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/OpdsFeedListScreen.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/catalog/opdsfeedlist/OpdsFeedListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailHeader.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/OpdsFeedListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedshare/OpdsFeedShareViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><commitId>639e9f3d4fad6071d3cfe1f9fc1dd16ee5372e8d</commitId><timestamp>1787132084000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Change terminology from "playlists" to "collections".
</comment><date>2026-08-19 13:34:44 +0400</date><id>639e9f3d4fad6071d3cfe1f9fc1dd16ee5372e8d</id><msg>Change terminology from "playlists" to "collections".</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/OpdsFeedListScreen.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/catalog/opdsfeeddetail/OpdsFeedDetailHeader.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedshare/OpdsFeedShareViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportOptions.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.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-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md</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/ext/ReportExtensions.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/StatementReportRow.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportSeries.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.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/RespectSchoolDatabase.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.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/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/queryresponse/XapiSqlQueryResponse.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.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/formatter/DateGraphFormatter.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>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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.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/report/ReportOptions.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/ReportPeriod.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/ReportTemplateListScreen.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>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/StatementReportRow.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>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.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-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>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.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>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/Indicator.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-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt</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-lib-xapi-core/README_XAPI_SQL_QUERY.md</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportSeries.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.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>add</editType><file>app-android/README.md</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/indictor/list/IndicatorListViewmodel.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>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.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>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>lib-ipc-messagebridge/consumer-rules.keep</affectedPath><affectedPath>lib-cache-ipc-core/src/main/AndroidManifest.xml</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>lib-cache-ipc-core/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.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-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt</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-cache-ipc-core/src/main/keepRules/rules.keep</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-ipc-messagebridge/src/test/java/org/openeel/lib/ipc/messagebridge/ExampleUnitTest.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/keepRules/rules.keep</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridgeMessengerImpl.kt</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>add</editType><file>lib-ipc-messagebridge/build.gradle.kts</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeWhatFlags.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-core/build.gradle.kts</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>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</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/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.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-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/androidTest/java/org/openeel/lib/ipc/messagebridge/ExampleInstrumentedTest.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/IpcMessageBridgeServiceConnectionImpl.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/.gitignore</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/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridge.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</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/consumer-rules.keep</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>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/MessageData.kt</file></path><path><editType>edit</editType><file>respect-lib-test-resources/build.gradle.kts</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-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/XapiIpcWhatFlags.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-core/.gitignore</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeTags.kt</file></path><path><editType>add</editType><file>lib-ipc-messagebridge/README.md</file></path><path><editType>add</editType><file>lib-cache-ipc-core/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>1a12113da3450281ee572d9db700f65f3c6120c3</commitId><timestamp>1787229886000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Rename playlists to collections in Maestro test flows
</comment><date>2026-08-20 16:44:46 +0400</date><id>1a12113da3450281ee572d9db700f65f3c6120c3</id><msg>Rename playlists to collections in Maestro test flows</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</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/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-core/consumer-rules.keep</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>lib-cache-ipc-core/.gitignore</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</affectedPath><affectedPath>lib-cache-ipc-core/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt</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/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt</affectedPath><affectedPath>lib-cache-ipc-core/src/test/java/org/openeel/libcache/ipc/core/ExampleUnitTest.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/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>add</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</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/keepRules/rules.keep</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/.gitignore</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/build.gradle.kts</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/consumer-rules.keep</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/AndroidManifest.xml</file></path><path><editType>delete</editType><file>lib-cache-ipc-core/src/main/AndroidManifest.xml</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/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>delete</editType><file>lib-cache-ipc-core/consumer-rules.keep</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.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-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>add</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/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.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-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt</file></path><path><editType>edit</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>ba2dfb7424848af4936b81a003a4d5f014748f98</commitId><timestamp>1787301439000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flow to reflect collection copy-to-remix terminology changes
</comment><date>2026-08-21 12:37:19 +0400</date><id>ba2dfb7424848af4936b81a003a4d5f014748f98</id><msg>Update Maestro test flow to reflect collection copy-to-remix terminology changes</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</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-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-shared/build.gradle.kts</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-client/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-cache-ipc-server/.gitignore</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>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/IpcHttpCall.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-cache-ipc-client/src/main/keepRules/rules.keep</file></path><path><editType>delete</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridge.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-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/MessengerProvider.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>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-server/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeServiceConnectionImpl.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</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/consumer-rules.keep</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/main/keepRules/rules.keep</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-client/src/main/AndroidManifest.xml</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><path><editType>add</editType><file>lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.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>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</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/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.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>add</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeMessengerImpl.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-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-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.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-client/consumer-rules.keep</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/IpcHttpClientImpl.kt</file></path><path><editType>add</editType><file>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.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>lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/RespectApp.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>gradle.properties</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</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>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</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>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.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>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.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-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/RespectApp.kt</file></path><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>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>eb12348981b30281cf941954cb3930f8845c5a2a</commitId><timestamp>1787549779000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update empty state message in collections flow to "No collections yet" in Maestro test
</comment><date>2026-08-24 09:36:19 +0400</date><id>eb12348981b30281cf941954cb3930f8845c5a2a</id><msg>Update empty state message in collections flow to "No collections yet" in Maestro test</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>bf39cab5ecd969e47fd006021c9b3bf93ea68e29</commitId><timestamp>1787556754000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro test flow to reflect UI text changes for sections and items
</comment><date>2026-08-24 11:32:34 +0400</date><id>bf39cab5ecd969e47fd006021c9b3bf93ea68e29</id><msg>Update Maestro test flow to reflect UI text changes for sections and items</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>2bc3b058abd54dcb32f58dd67d8e376f7201c46e</commitId><timestamp>1787559604000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update Maestro user test flow (`002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml`) to fix navigation steps and screen assertions.
</comment><date>2026-08-24 12:20:04 +0400</date><id>2bc3b058abd54dcb32f58dd67d8e376f7201c46e</id><msg>Update Maestro user test flow (`002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml`) to fix navigation steps and screen assertions.</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</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>gradle.properties</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt</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-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.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></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-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.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-server/.gitignore</affectedPath><affectedPath>lib-cache-ipc-client/src/main/keepRules/rules.keep</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-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt</affectedPath><affectedPath>lib-cache-ipc-client/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-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/HttpIpcIntegrationTest.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>lib-http-ipc-server/consumer-rules.keep</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-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt</affectedPath><affectedPath>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt</affectedPath><affectedPath>lib-cache-ipc-shared/.gitignore</affectedPath><affectedPath>lib-http-ipc-shared/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-shared/src/main/keepRules/rules.keep</affectedPath><affectedPath>lib-cache-ipc-server/build.gradle.kts</affectedPath><affectedPath>lib-cache-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>lib-cache-ipc-shared/build.gradle.kts</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-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</affectedPath><affectedPath>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.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>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/AndroidManifest.xml</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/main/AndroidManifest.xml</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/.gitignore</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/consumer-rules.keep</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/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/src/main/keepRules/rules.keep</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>delete</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/main/keepRules/rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/build.gradle.kts</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-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt</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/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-http-ipc-shared/.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-client/src/main/keepRules/rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/build.gradle.kts</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-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/consumer-rules.keep</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-client/src/main/AndroidManifest.xml</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>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-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/IpcHttpKeys.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/HttpIpcTags.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/.gitignore</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/build.gradle.kts</file></path><path><editType>delete</editType><file>lib-cache-ipc-client/.gitignore</file></path><path><editType>add</editType><file>lib-http-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>lib-http-ipc-shared/build.gradle.kts</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>add</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt</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>delete</editType><file>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</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>edit</editType><file>app-android/build.gradle.kts</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>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/HeadersAdapter.kt</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/.gitignore</file></path><path><editType>add</editType><file>lib-http-ipc-shared/consumer-rules.keep</file></path><path><editType>delete</editType><file>lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt</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>add</editType><file>lib-http-ipc-client/.gitignore</file></path><path><editType>delete</editType><file>lib-cache-ipc-server/src/main/keepRules/rules.keep</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>delete</editType><file>lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.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>add</editType><file>lib-http-ipc-client/build.gradle.kts</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>add</editType><file>lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.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>add</editType><file>lib-http-ipc-client/consumer-rules.keep</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/consumer-rules.keep</file></path><path><editType>add</editType><file>lib-http-ipc-server/src/main/keepRules/rules.keep</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-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.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-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/IpcHttpClientImpl.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/IpcHttpCall.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>edit</editType><file>lib-http-ipc-server/build.gradle.kts</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>add</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/ext/ResponseBuilderExt.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>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>1dfff6a649700f53936df5761288c8ffe7cd35d9</commitId><timestamp>1787638103000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update UI test expectations in `002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml` to match "Edit collection" text
</comment><date>2026-08-25 10:08:23 +0400</date><id>1dfff6a649700f53936df5761288c8ffe7cd35d9</id><msg>Update UI test expectations in `002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml` to match "Edit collection" text</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</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/RequestAdapter.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-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/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/IpcHttpClientImpl.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/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-server/build.gradle.kts</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/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><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/build.gradle.kts</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-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt</affectedPath><affectedPath>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.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>delete</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/ext/MockResponseBuilderExt.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>delete</editType><file>lib-http-ipc-shared/src/test/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/HttpIpcWhat.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/IpcTestApplication.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-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.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>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>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/ResponseAdapter.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>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-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.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-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.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>add</editType><file>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcKeys.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/IpcHttpCall.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/HttpIpcClientImpl.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClient.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/HttpIpcCall.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/IpcHttpClient.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-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/HttpIpcClient.kt</file></path><path><editType>delete</editType><file>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.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>add</editType><file>lib-http-ipc-client/README.md</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>edit</editType><file>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</file></path><path><editType>add</editType><file>lib-http-ipc-shared/README.md</file></path><path><editType>edit</editType><file>gradle.properties</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-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt</affectedPath><affectedPath>lib-http-ipc-client/README.md</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>app-android/src/main/AndroidManifest.xml</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/main/kotlin/org/openeel/libcache/ipc/server/HttpIpcService.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.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>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>lib-http-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>delete</editType><file>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.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>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientImpl.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/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>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><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.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>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>e5afba98a323628471ef4eb2c414ad215be6210f</commitId><timestamp>1787813603000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Clean up and streamline collection-related Maestro tests

- Remove outdated and commented-out collection sharing and editing test steps.
- Simplify collection remix flow assertions in the test script.
- Remove commented assertion for Lesson 002.
</comment><date>2026-08-27 10:53:23 +0400</date><id>e5afba98a323628471ef4eb2c414ad215be6210f</id><msg>Clean up and streamline collection-related Maestro tests</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</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><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/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.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-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.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/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.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/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.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>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/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.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>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></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>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><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>app-android/src/main/kotlin/world/respect/AppKoinModule.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/util/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.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>edit</editType><file>app-android/src/main/kotlin/world/respect/MainActivity.kt</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>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/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.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/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/util/ext/ReadiumLinkExt.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>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.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-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/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.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-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>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/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><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.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/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/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/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>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/LaunchAppUseCase.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>app-android/src/main/kotlin/world/respect/MainActivity.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.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>edit</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.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>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/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt</file></path><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/launchapp/installapp/ShowInstallAppPromptUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.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/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><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/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/demoapp/DemoConstants.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/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.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></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/demoapp/DemoConstants.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/JsonObjectExt.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><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/demoapp/DemoLaunchableAppCollectionsRoute.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/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</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/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.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>add</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</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></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/MakeDemoAppLearningUnitManifestUseCase.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/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.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/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.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><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.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/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><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/MakeDemoAppGradeCollectionsUseCase.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/MakeDemoAppLearningUnitManifestUseCase.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/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</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/resources/demoapp/locales/fr-FR.json</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/domain/school/demoapp/DemoStringMaps.kt</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>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/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.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>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><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</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>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>contrib/language-names.ods</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.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>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.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>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</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>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><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-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.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/apps/detail/AppsDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</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><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README_ADD_YOUR_APP.md</affectedPath><commitId>8a60987a5b388511521bf52cb9fbf3ed29bd89fa</commitId><timestamp>1788338743000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix README_ADD_YOUR_APP.md link to README_LAUNCHABLE_APP.md
</comment><date>2026-09-02 12:45:43 +0400</date><id>8a60987a5b388511521bf52cb9fbf3ed29bd89fa</id><msg>Fix README_ADD_YOUR_APP.md link to README_LAUNCHABLE_APP.md</msg><path><editType>edit</editType><file>README_ADD_YOUR_APP.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/AGENTS.md</affectedPath><affectedPath>AGENTS.md</affectedPath><commitId>abb85e6dbd78321176aca3bf9c5249d16722d1a8</commitId><timestamp>1788547140000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AGENTS.md for main project and respect-lib-shared.
</comment><date>2026-09-04 22:39:00 +0400</date><id>abb85e6dbd78321176aca3bf9c5249d16722d1a8</id><msg>Update AGENTS.md for main project and respect-lib-shared.</msg><path><editType>add</editType><file>respect-lib-shared/AGENTS.md</file></path><path><editType>edit</editType><file>AGENTS.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/AGENTS.md</affectedPath><affectedPath>respect-datalayer/AGENTS.md</affectedPath><commitId>a0a4dd3ac37833343d14aa0112dd5e3e971d5b07</commitId><timestamp>1788601024000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AGENTS.md for respect-datalayer and respect-datalayer-db.
</comment><date>2026-09-05 13:37:04 +0400</date><id>a0a4dd3ac37833343d14aa0112dd5e3e971d5b07</id><msg>Update AGENTS.md for respect-datalayer and respect-datalayer-db.</msg><path><editType>edit</editType><file>respect-datalayer/AGENTS.md</file></path><path><editType>edit</editType><file>respect-datalayer-db/AGENTS.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</affectedPath><affectedPath>respect-datalayer-db/AGENTS.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.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/shared/SharedConverters.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</affectedPath><affectedPath>AGENTS.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</affectedPath><commitId>dc559585e29f8e13215111b3b25763535378dcb9</commitId><timestamp>1788625143000</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 Activity Profile document storage using local database.
</comment><date>2026-09-05 20:19:03 +0400</date><id>dc559585e29f8e13215111b3b25763535378dcb9</id><msg>Initial implementation of Activity Profile document storage using local database.</msg><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.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>AGENTS.md</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</file></path><path><editType>add</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</file></path><path><editType>add</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/AGENTS.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</affectedPath><commitId>4205e63579b8bbee151c447a65f486c1661e0dd7</commitId><timestamp>1788625374000</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 Activity Profile document storage using local database.
</comment><date>2026-09-05 20:22:54 +0400</date><id>4205e63579b8bbee151c447a65f486c1661e0dd7</id><msg>Initial implementation of Activity Profile document storage using local database.</msg><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</affectedPath><commitId>577aee82bf7fedf9f84be8febb5b9d163a125af4</commitId><timestamp>1788626077000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Rename DocumentParams and MultiDocParams.
</comment><date>2026-09-05 20:34:37 +0400</date><id>577aee82bf7fedf9f84be8febb5b9d163a125af4</id><msg>Rename DocumentParams and MultiDocParams.</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</file></path><path><editType>add</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</affectedPath><commitId>45573cfef56405f2586ad4835917c3ff87571c4d</commitId><timestamp>1788627046000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor XapiActivityProfileResource.kt to be a descendant of generic XapiDocumentResource.kt
</comment><date>2026-09-05 20:50:46 +0400</date><id>45573cfef56405f2586ad4835917c3ff87571c4d</id><msg>Refactor XapiActivityProfileResource.kt to be a descendant of generic XapiDocumentResource.kt</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</affectedPath><commitId>251e4f854a3f454a080e2d8fbcf181948b981229</commitId><timestamp>1788685088000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xAPI Activity Profile route
</comment><date>2026-09-06 12:58:08 +0400</date><id>251e4f854a3f454a080e2d8fbcf181948b981229</id><msg>Add xAPI Activity Profile route</msg><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>add</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/AGENTS.md</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/AGENTS.md</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt</affectedPath><commitId>87e5948c6a605bf31d88772a68c3605305888583</commitId><timestamp>1788687103000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AGENTS.md guidance for datalayer-db and datalayer-http.

Rename http resource client suffix to HttpClient for clarity.
</comment><date>2026-09-06 13:31:43 +0400</date><id>87e5948c6a605bf31d88772a68c3605305888583</id><msg>Update AGENTS.md guidance for datalayer-db and datalayer-http.</msg><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.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-datalayer-db/AGENTS.md</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/AGENTS.md</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</affectedPath><commitId>6cfea1d7f26a34ba1984f5d39149bf196666e9c2</commitId><timestamp>1788714465000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add XapiActivityProfileResourceHttpClient implementation.
</comment><date>2026-09-06 21:07:45 +0400</date><id>6cfea1d7f26a34ba1984f5d39149bf196666e9c2</id><msg>Add XapiActivityProfileResourceHttpClient implementation.</msg><path><editType>edit</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>add</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><commitId>1e82740368b233000871a26f36af06dc49a6aa83</commitId><timestamp>1788780599000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Enable assertions for "Assignment Result Statement Demo" app title in Maestro test flow
</comment><date>2026-09-07 15:29:59 +0400</date><id>1e82740368b233000871a26f36af06dc49a6aa83</id><msg>Enable assertions for "Assignment Result Statement Demo" app title in Maestro test flow</msg><path><editType>edit</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-repository/AGENTS.md</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><commitId>43a6e66b210e450437282cd6e416f17d7cb1ad73</commitId><timestamp>1788853155000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Work in progress: add guidance on document APIs synchronizing deletions.
</comment><date>2026-09-08 11:39:15 +0400</date><id>43a6e66b210e450437282cd6e416f17d7cb1ad73</id><msg>Work in progress: add guidance on document APIs synchronizing deletions.</msg><path><editType>edit</editType><file>respect-datalayer-repository/AGENTS.md</file></path><path><editType>add</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/.gitignore</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</affectedPath><affectedPath>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/model/TinCanXmlDocument.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/.gitignore</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/build.gradle.kts</affectedPath><affectedPath>lib-xapi-core/README.md</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt</affectedPath><affectedPath>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>lib-xapi-core/README_CLASS_RECIPE.md</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</affectedPath><affectedPath>lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><affectedPath>lib-xapi-ipc-server/proguard-rules.pro</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt</affectedPath><affectedPath>lib-xapi-ipc-server/.gitignore</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_PERMISSION_RECIPE.md</affectedPath><affectedPath>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/build.gradle.kts</affectedPath><affectedPath>lib-xapi-ipc-client/consumer-rules.pro</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/consumer-rules.pro</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.kt</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/README_XAPI_OPDS.md</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt</affectedPath><affectedPath>lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.kt</affectedPath><affectedPath>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/consumer-rules.pro</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_APPLISTING_RECIPE.md</affectedPath><affectedPath>lib-xapi-ipc-client/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</affectedPath><affectedPath>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/README.md</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-xapi-ipc-client/proguard-rules.pro</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/.gitignore</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/model/TinCanXmlDocument.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/proguard-rules.pro</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</affectedPath><affectedPath>lib-xapi-core/README_CLASSGROUPS_RECIPE.md</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/README.md</affectedPath><affectedPath>lib-xapi-core/README_XAPI_OPDS.md</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>lib-xapi-core/README_PERMISSION_RECIPE.md</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</affectedPath><affectedPath>lib-xapi-core/README_XAPI_SQL_QUERY.md</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/proguard-rules.pro</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt</affectedPath><affectedPath>lib-xapi-ipc-client/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-xapi-ipc-shared/build.gradle.kts</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-xapi-core/README_CLASS_RECIPE.md</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt</affectedPath><affectedPath>respect-lib-xapi-core/.gitignore</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/consumer-rules.pro</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml</affectedPath><affectedPath>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/XapiRequestHeaders.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/build.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/README.md</affectedPath><affectedPath>lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-server/.gitignore</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/consumer-rules.pro</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/proguard-rules.pro</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>lib-xapi-core/README_EXTENSION_PUBLICATION.md</affectedPath><affectedPath>lib-xapi-core/README_APPLISTING_RECIPE.md</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</affectedPath><affectedPath>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_CLASSGROUPS_RECIPE.md</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/.gitignore</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-xapi-ipc-server/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>lib-xapi-ipc-client/.gitignore</affectedPath><affectedPath>lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</affectedPath><affectedPath>lib-xapi-core/.gitignore</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/.gitignore</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</affectedPath><affectedPath>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md</affectedPath><affectedPath>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</affectedPath><affectedPath>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-lib-xapi-ipc-shared/proguard-rules.pro</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</affectedPath><affectedPath>lib-xapi-ipc-server/consumer-rules.pro</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/model/AssignmentResult.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</affectedPath><affectedPath>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</affectedPath><commitId>c36bb3577bad1ef977ec836354220b2ba9d22dfc</commitId><timestamp>1788853793000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update xapi module package names to follow new convention - just lib.
</comment><date>2026-09-08 11:49:53 +0400</date><id>c36bb3577bad1ef977ec836354220b2ba9d22dfc</id><msg>Update xapi module package names to follow new convention - just lib.</msg><path><editType>add</editType><file>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README_CLASSGROUPS_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/README_PERMISSION_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/proguard-rules.pro</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/model/TinCanXmlDocument.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportSeries.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt</file></path><path><editType>edit</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-xapi-nanohttpd/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-nanohttpd/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt</file></path><path><editType>add</editType><file>lib-xapi-core/README_EXTENSION_PUBLICATION.md</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/.gitignore</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/consumer-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/proguard-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/proguard-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt</file></path><path><editType>delete</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-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/proguard-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportSeries.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/.gitignore</file></path><path><editType>add</editType><file>lib-xapi-core/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/src/main/AndroidManifest.xml</file></path><path><editType>delete</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-xapi-nanohttpd/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/model/TinCanXmlDocument.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/consumer-rules.pro</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/consumer-rules.pro</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/.gitignore</file></path><path><editType>add</editType><file>lib-xapi-core/README_ASSIGNMENT_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README_CLASS_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/README.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/consumer-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README_APPLISTING_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/README.md</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/proguard-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README_XAPI_OPDS.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/consumer-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-xapi-core/README.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/.gitignore</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/README_APPLISTING_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-server/consumer-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>delete</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-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/README_XAPI_SQL_QUERY.md</file></path><path><editType>add</editType><file>lib-xapi-core/README_XAPI_OPDS.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-client/proguard-rules.pro</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt</file></path><path><editType>add</editType><file>lib-xapi-core/README_CLASS_RECIPE.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt</file></path><path><editType>add</editType><file>lib-xapi-ipc-client/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-xapi-core/README_CLASSGROUPS_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-core/.gitignore</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/README_PERMISSION_RECIPE.md</file></path><path><editType>delete</editType><file>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>lib-xapi-test/AGENTS.md</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>lib-xapi-test/README.md</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</affectedPath><affectedPath>lib-xapi-core/README.md</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>lib-xapi-test/.gitignore</affectedPath><affectedPath>lib-xapi-test/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>build.gradle.kts</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiAssertions.kt</affectedPath><affectedPath>lib-xapi-test/build.gradle.kts</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStatementResourceAssertions.kt</affectedPath><commitId>4b8356ac8edccff843d686ad757ccf47029c9b53</commitId><timestamp>1788859439000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor xapi statement resource tests into lib-xapi-test
</comment><date>2026-09-08 13:23:59 +0400</date><id>4b8356ac8edccff843d686ad757ccf47029c9b53</id><msg>Refactor xapi statement resource tests into lib-xapi-test</msg><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiAssertions.kt</file></path><path><editType>add</editType><file>lib-xapi-test/README.md</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>edit</editType><file>build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path><path><editType>add</editType><file>lib-xapi-test/AGENTS.md</file></path><path><editType>edit</editType><file>lib-xapi-core/README.md</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-xapi-test/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStatementResourceAssertions.kt</file></path><path><editType>add</editType><file>lib-xapi-test/.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>8f13aef35fa76a8a389d47f7aae91e610e324e6e</commitId><timestamp>1788962068000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix AndroidManifest.xml query section for launchable apps to handle when query includes host and pathPrefix.

Fix PinPublicationPrepareUseCase to avoid attempting to download an intent url.
</comment><date>2026-09-09 17:54:28 +0400</date><id>8f13aef35fa76a8a389d47f7aae91e610e324e6e</id><msg>Fix AndroidManifest.xml query section for launchable apps to handle when query includes host and pathPrefix.</msg><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/resources/directories/default.properties</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/resources/directories/default.properties</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>56e0677bd714bc6e10e3dede68d664ca17970d21</commitId><timestamp>1788972022000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update AndroidManifest.xml to include new testing server url.
Move directories/default.properties data into commonMain
Update Login screen to show server url and location.
Bump version.
</comment><date>2026-09-09 20:40:22 +0400</date><id>56e0677bd714bc6e10e3dede68d664ca17970d21</id><msg>Update AndroidManifest.xml to include new testing server url.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.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/resources/directories/default.properties</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><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-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/resources/directories/default.properties</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/build.gradle.kts</affectedPath><commitId>15024741e858b809e2c0f00024094886c11e4bb7</commitId><timestamp>1788975563000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Bump version number
</comment><date>2026-09-09 21:39:23 +0400</date><id>15024741e858b809e2c0f00024094886c11e4bb7</id><msg>Bump version number</msg><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-test-resources/build.gradle.kts</affectedPath><affectedPath>respect-lib-test/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</affectedPath><affectedPath>respect-datalayer-http/build.gradle.kts</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/images/RespectImage.desktop.kt</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-lib-dataloadstate/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/main.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</affectedPath><affectedPath>respect-lib-serializers/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/app/AppIcon.desktop.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</affectedPath><affectedPath>respect-server/src/main/resources/openapi/openapi.yaml</affectedPath><affectedPath>respect-app-compose/src/jvmMain/resources/sample-feed.json</affectedPath><affectedPath>respect-app-compose/src/desktopMain/resources/sample-feed.json</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/main.kt</affectedPath><commitId>82241844fac122cf490228c6cdd1b4c4f8c8d97b</commitId><timestamp>1789027836000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove gradle properties put there by previous AGP plugin upgrade assistants that are not needed.

Remove most usage of deprecated by getting.
</comment><date>2026-09-10 12:10:36 +0400</date><id>82241844fac122cf490228c6cdd1b4c4f8c8d97b</id><msg>Remove gradle properties put there by previous AGP plugin upgrade assistants that are not needed.</msg><path><editType>add</editType><file>respect-app-compose/src/jvmMain/resources/sample-feed.json</file></path><path><editType>edit</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/main.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/resources/sample-feed.json</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/main.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/images/RespectImage.desktop.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>add</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.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-app-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/app/AppIcon.desktop.kt</file></path><path><editType>edit</editType><file>respect-lib-test/build.gradle.kts</file></path><path><editType>add</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-http/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/openapi/openapi.yaml</file></path><path><editType>delete</editType><file>respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-test-resources/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-lib-opds-model/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json</affectedPath><commitId>13d5b5d8793a8b8513c3c73f7ab206c23964f6cf</commitId><timestamp>1789027852000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add 9.json database schema.
</comment><date>2026-09-10 12:10:52 +0400</date><id>13d5b5d8793a8b8513c3c73f7ab206c23964f6cf</id><msg>Add 9.json database schema.</msg><path><editType>add</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>settings.gradle.kts</affectedPath><commitId>243a1fbac1da00f207bb1cd12bbb24101f206311</commitId><timestamp>1789028840000</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.4
</comment><date>2026-09-10 12:27:20 +0400</date><id>243a1fbac1da00f207bb1cd12bbb24101f206311</id><msg>Update to AGP9.4</msg><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>3e13e3586a326fede7494c10f15d257af2d99d74</commitId><timestamp>1789039879000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix display of assignments list to ensure icon is shown even after other statements for activityid are received.
</comment><date>2026-09-10 15:31:19 +0400</date><id>3e13e3586a326fede7494c10f15d257af2d99d74</id><msg>Fix display of assignments list to ensure icon is shown even after other statements for activityid are received.</msg><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>gradle.properties</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-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt</affectedPath><commitId>a0cda72277aa552c22f36d36d56fc8d6f512b377</commitId><timestamp>1789041071000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix display of duration for StatementDetail.
</comment><date>2026-09-10 15:51:11 +0400</date><id>a0cda72277aa552c22f36d36d56fc8d6f512b377</id><msg>Fix display of duration for StatementDetail.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>bac981ed8f6a77591d1587b958844d48efc761cf</commitId><timestamp>1789041138000</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-09-10 15:52:18 +0400</date><id>bac981ed8f6a77591d1587b958844d48efc761cf</id><msg>Bump version.</msg><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>gradle.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>app-android/proguard-rules.pro</affectedPath><affectedPath>gradle.properties</affectedPath><commitId>79deada44cd8d64b20be58b99fec2fb09bb003e2</commitId><timestamp>1789044795000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix crash on QR code scanning screen caused by lack of proguard rules from MLKit transitive dependency.

See See https://github.com/googlesamples/mlkit/issues/1018
</comment><date>2026-09-10 16:53:15 +0400</date><id>79deada44cd8d64b20be58b99fec2fb09bb003e2</id><msg>Fix crash on QR code scanning screen caused by lack of proguard rules from MLKit transitive dependency.</msg><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>edit</editType><file>app-android/proguard-rules.pro</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>ade6c5b9d2cf985a1d7a5a30db21f7b1c789b4b6</commitId><timestamp>1789050579000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update issue template label for app catalog request
</comment><date>2026-09-10 18:29:39 +0400</date><id>ade6c5b9d2cf985a1d7a5a30db21f7b1c789b4b6</id><msg>Update issue template label for app catalog request</msg><path><editType>edit</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-core/AGENTS.md</affectedPath><affectedPath>lib-xapi-test/AGENTS.md</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonExt.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</affectedPath><commitId>e9d7fc0cad3d4ad8c180d9f17572c57c35ae4f52</commitId><timestamp>1789125475000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor xapi activity profile resource tests into lib-xapi-test
</comment><date>2026-09-11 15:17:55 +0400</date><id>e9d7fc0cad3d4ad8c180d9f17572c57c35ae4f52</id><msg>Refactor xapi activity profile resource tests into lib-xapi-test</msg><path><editType>edit</editType><file>lib-xapi-test/AGENTS.md</file></path><path><editType>edit</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</file></path><path><editType>add</editType><file>lib-xapi-core/AGENTS.md</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/WriteQueueItemEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRoleEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>respect-datalayer-repository/AGENTS.md</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainRemoteWriteQueueUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/EnrollmentAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/AGENTS.md</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/XXHashUidNumberMapper.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</affectedPath><affectedPath>respect-datalayer-http/README.md</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource2.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt</affectedPath><affectedPath>lib-dataloadstate-ktor-server/.gitignore</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/ext/SchoolDirectoryEntryExt.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/headers/directives/DirectivesToMap.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LogPrefixFunction.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryLangMapEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RemoteMediator2.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-http/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/GetAuthenticatedPersonUseCase.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueRunPullSyncUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/EnqueueRunPullSyncUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</affectedPath><affectedPath>respect-lib-dataloadstate/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</affectedPath><affectedPath>lib-dataloadstate-ktor-server/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PullSyncStatusEntityDao.kt</affectedPath><affectedPath>lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt</affectedPath><affectedPath>lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentLearningResourceRefEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>respect-lib-test/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetPermissionLastModifiedUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/pullsync/PullSyncTracker.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer-http-server/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassPermissionEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPasskey.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonPasskeyAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/DataLayerTags.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimesExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolConfigSetting.kt</affectedPath><affectedPath>respect-lib-dataloadstate/.gitignore</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassPermission.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/3.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/DataBuilderExt.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/README.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasswordAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPermissionGrantEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/DeviceInfo.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/IndicatorEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DatalayerPagingUtil.kt</affectedPath><affectedPath>lib-datalayer-http-server/.gitignore</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>respect-lib-shared-se/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthTokenProvider.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolConfigEntityDao.kt</affectedPath><affectedPath>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiStatementsResourceRoute.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/LangMapEntityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/daos/NetworkValidationInfoEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ListExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCase.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncWorker.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AuthTokenEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/index.json</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/LangMapAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRefTypeEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/5.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonStatusEnum.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</affectedPath><affectedPath>lib-xapi-core/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonGenderEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt</affectedPath><affectedPath>settings.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LoadParamsExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/StatusEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectRedeemInviteState.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/2.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRelatedPersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/lesson001.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryLangMapEntityDao.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/entities/PersonEntityWithRoles.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentRoleEnumExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/WorkerExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthenticatedUserPrincipalId.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/IPagingSourceFactory.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/model/RespectAppManifest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolPermissionGrantAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ReportQueryResult.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/OrderOption.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ILangMapEntity.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasswordEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ILangMapEntityExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSourceFactory.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRole.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/LangMapEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/JsonObjectBuilderExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/6.json</affectedPath><affectedPath>respect-datalayer/.gitignore</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassInvteModeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueDrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ILangMapEntityAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/GetPermissionLastModifiedUseCaseDbImpl.kt</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/PagingSourceExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimes.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AuthTokenAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasskeyAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskeyEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRoleEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/RepoWorkerConstants.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/LastModifiedAndETagDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/RepositoryModelDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AuthTokenEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRoleEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagingSourceFactoryHolder.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</affectedPath><affectedPath>respect-datalayer-http/AGENTS.md</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/SchoolPermissionGrantExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntityWithPermissions.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/build.gradle.kts</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/WriteQueueItemAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</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/xapi/daos/XapiStateDeleteCommandDao.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/WritableDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryPagingSourceFactory.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt</affectedPath><affectedPath>respect-datalayer/README.md</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AuthToken.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeBadgeDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/NewLocalDataSource.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ValidationInfoAdapter.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt</affectedPath><affectedPath>respect-datalayer/AGENTS.md</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</affectedPath><affectedPath>respect-datalayer-repository/src/jvmTest/resources/logback.xml</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</affectedPath><affectedPath>respect-datalayer-repository/README.md</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentLearningResourceRefEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueWorker.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/InviteStatusEnum.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/4.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</affectedPath><commitId>220452c3694c46f98aa1ba4efcbeadb3db84ebbd</commitId><timestamp>1789138166000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor module names. Work in progress creation of dedicated httpclient test for xapi statement resource.
</comment><date>2026-09-11 18:49:26 +0400</date><id>220452c3694c46f98aa1ba4efcbeadb3db84ebbd</id><msg>Refactor module names. Work in progress creation of dedicated httpclient test for xapi statement resource.</msg><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/RepositoryModelDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt</file></path><path><editType>edit</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt</file></path><path><editType>delete</editType><file>respect-lib-dataloadstate/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueWorker.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/index.json</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/model/RespectAppManifest.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentRoleEnumExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/JsonObjectBuilderExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolPermissionGrantAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/README.md</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/pullsync/PullSyncTracker.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ILangMapEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ListExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/StatusEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/AGENTS.md</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasswordEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer/README.md</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntityWithPermissions.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/ext/SchoolDirectoryEntryExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ILangMapEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/IPagingSourceFactory.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/PagingSourceExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/LastModifiedAndETagDb.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/RepoWorkerConstants.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LoadParamsExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPasskey.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/OrderOption.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-db/README.md</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ILangMapEntityExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolConfigEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/EnrollmentAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/AGENTS.md</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/2.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueDrainRemoteWriteQueueUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt</file></path><path><editType>edit</editType><file>lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonPasskeyAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncWorker.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/WorkerExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/resources/logback.xml</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/daos/NetworkValidationInfoEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/InviteStatusEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskeyEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><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/school/model/SchoolConfigSetting.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimes.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/DataBuilderExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeBadgeDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AuthTokenEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RemoteMediator2.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassPermissionEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagingSourceFactoryHolder.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonStatusEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/GetPermissionLastModifiedUseCaseDbImpl.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/GetAuthenticatedPersonUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ReportQueryResult.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/androidMain/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>add</editType><file>lib-dataloadstate-ktor-server/.gitignore</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassPermission.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryPagingSourceFactory.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt</file></path><path><editType>delete</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonGenderEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/AGENTS.md</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PullSyncStatusEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/5.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentLearningResourceRefEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt</file></path><path><editType>edit</editType><file>settings.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRoleEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/README.md</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/LangMapAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasswordAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AuthTokenAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthenticatedUserPrincipalId.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-server/.gitignore</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSourceFactory.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRelatedPersonEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt</file></path><path><editType>delete</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/LangMapEntityExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRoleEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectRedeemInviteState.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRefTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/AGENTS.md</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ValidationInfoAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/LangMapEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainRemoteWriteQueueUseCaseAndroidImpl.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt</file></path><path><editType>delete</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/oneroster/model/OneRosterOrgGUIDRef.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassInvteModeEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthTokenProvider.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/DeviceInfo.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetPermissionLastModifiedUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LogPrefixFunction.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentLearningResourceRefEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/WritableDataSource.kt</file></path><path><editType>add</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/NewLocalDataSource.kt</file></path><path><editType>add</editType><file>lib-dataloadstate-ktor-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPermissionGrantEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/WriteQueueItemEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/headers/directives/DirectivesToMap.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryLangMapEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/EnqueueRunPullSyncUseCaseAndroidImpl.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DatalayerPagingUtil.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasskeyAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/IndicatorEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path><path><editType>edit</editType><file>respect-lib-shared-se/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/XXHashUidNumberMapper.kt</file></path><path><editType>delete</editType><file>respect-datalayer/.gitignore</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/SchoolPermissionGrantExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource2.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryLangMapEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimesExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt</file></path><path><editType>delete</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt</file></path><path><editType>delete</editType><file>respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSource.kt</file></path><path><editType>delete</editType><file>respect-lib-dataloadstate/.gitignore</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AuthToken.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/6.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AuthTokenEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiStatementsResourceRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/4.json</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRole.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/3.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/WriteQueueItemAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt</file></path><path><editType>delete</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueRunPullSyncUseCase.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRoleEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/lesson001.json</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/DataLayerTags.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt</file></path><path><editType>delete</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</file></path><path><editType>delete</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>delete</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>respect-lib-test/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/LangMapEntityExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/DeviceInfo.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</affectedPath><affectedPath>lib-datalayer-repository/log/respect-server.log</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.kt</affectedPath><affectedPath>lib-xapi-test/build.gradle.kts</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DatalayerPagingUtil.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt</affectedPath><affectedPath>lib-datalayer-repository/README.md</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/IndicatorEntity.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</affectedPath><affectedPath>lib-datalayer/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ILangMapEntityAdapter.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><affectedPath>lib-datalayer-http-client/README.md</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/ext/SchoolDirectoryEntryExt.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PullSyncStatusEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/StatusEnum.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/InviteStatusEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueDrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LogPrefixFunction.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/WriteQueueItemAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonStatusEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentRoleEnumExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagingSourceFactoryHolder.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/2.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</affectedPath><affectedPath>lib-datalayer-http-client/log/respect-server.log</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/WriteQueueItemEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AuthToken.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/RepositoryModelDataSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/OrderOption.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ILangMapEntityExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ListExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RemoteMediator2.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/res/SampleXapiStatement.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/headers/directives/DirectivesToMap.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AuthTokenEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/pullsync/PullSyncTracker.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt</affectedPath><affectedPath>lib-xapi-test/src/androidMain/kotlin/org/openeel/libxapi/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/6.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRoleEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueWorker.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonPasskeyAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt</affectedPath><affectedPath>lib-datalayer-http-client/AGENTS.md</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimesExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/WorkerExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/PagingSourceExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassPermissionEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRelatedPersonEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonGenderEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/IPagingSourceFactory.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/LangMapEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt</affectedPath><affectedPath>lib-dataloadstate/build.gradle.kts</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimes.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/SampleXapiStatement.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/4.json</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/AGENTS.md</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStatementResourceAssertions.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasswordAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt</affectedPath><affectedPath>lib-datalayer-repository/build.gradle.kts</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/kotlin/org/openeel/libxapi/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRoleEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainRemoteWriteQueueUseCaseAndroidImpl.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRole.kt</affectedPath><affectedPath>lib-datalayer-db/README.md</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/index.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasswordEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassInvteModeEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/DataBuilderExt.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncWorker.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/lesson001.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetPermissionLastModifiedUseCase.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRefTypeEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectRedeemInviteState.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/3.json</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt</affectedPath><affectedPath>lib-dataloadstate/.gitignore</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/RepoWorkerConstants.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ILangMapEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPasskey.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/resources/logback.xml</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/XXHashUidNumberMapper.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntityWithPermissions.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasskeyAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/GetPermissionLastModifiedUseCaseDbImpl.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/res/XapiStatementNameConstants.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AuthTokenAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentLearningResourceRefEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueRunPullSyncUseCase.kt</affectedPath><affectedPath>lib-datalayer-http-client/build.gradle.kts</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</affectedPath><affectedPath>lib-datalayer-db/build.gradle.kts</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassPermission.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskeyEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSourceFactory.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/model/RespectAppManifest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LoadParamsExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryLangMapEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt</affectedPath><affectedPath>lib-datalayer/build.gradle.kts</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ReportQueryResult.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/GetAuthenticatedPersonUseCase.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolConfigEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</affectedPath><affectedPath>lib-datalayer/README.md</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ValidationInfoAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/SchoolPermissionGrantExt.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryPagingSourceFactory.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/daos/NetworkValidationInfoEntityDao.kt</affectedPath><affectedPath>lib-datalayer/.gitignore</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/EnrollmentAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>lib-datalayer-repository/AGENTS.md</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSourceLocal.kt</affectedPath><affectedPath>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/JsonObjectBuilderExt.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryLangMapEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/DataLayerTags.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthTokenProvider.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt</affectedPath><affectedPath>lib-datalayer/AGENTS.md</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolConfigSetting.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</affectedPath><affectedPath>respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/XapiStatementNameConstants.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/LastModifiedAndETagDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolPermissionGrantAdapter.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthenticatedUserPrincipalId.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeBadgeDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPermissionGrantEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/EnqueueRunPullSyncUseCaseAndroidImpl.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource2.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSource.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/WritableDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/LangMapAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/5.json</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</affectedPath><affectedPath>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentLearningResourceRefEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AuthTokenEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRoleEntityDao.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</affectedPath><commitId>1fdee8fd227baf98d3e35e3ba67052039ade1c06</commitId><timestamp>1789231861000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor module names. Work in progress creation of dedicated httpclient test for xapi statement resource.
</comment><date>2026-09-12 20:51:01 +0400</date><id>1fdee8fd227baf98d3e35e3ba67052039ade1c06</id><msg>Refactor module names. Work in progress creation of dedicated httpclient test for xapi statement resource.</msg><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer/AGENTS.md</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/5.json</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/IndicatorEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonPasskeyAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntityWithPermissions.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/kotlin/org/openeel/libxapi/test/res/XapiSampleStatements.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/InviteStatusEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonStatusEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/EnqueueRunPullSyncUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRole.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagingSourceFactoryHolder.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRelatedPersonEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/LangMapEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LoadParamsExt.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/build.gradle.kts</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/res/XapiStatementNameConstants.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DatalayerPagingUtil.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetPermissionLastModifiedUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/ext/SchoolDirectoryEntryExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeBadgeDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/SchoolPermissionGrantExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/2.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AuthToken.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/README.md</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasswordAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryPagingSourceFactory.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/lesson001.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentRoleEnumExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentLearningResourceRefEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/kotlin/org/openeel/libxapi/test/res/XapiSampleStatements.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasswordEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRoleEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ILangMapEntityExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AuthTokenAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/SampleXapiStatement.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSourceFactory.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryLangMapEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/XapiStatementNameConstants.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/build.gradle.kts</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthenticatedUserPrincipalId.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/GetPermissionLastModifiedUseCaseDbImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>add</editType><file>lib-dataloadstate/build.gradle.kts</file></path><path><editType>add</editType><file>lib-datalayer-repository/README.md</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/pullsync/PullSyncTracker.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/RepoWorkerConstants.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/res/SampleXapiStatement.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/StatusEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRoleEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/README.md</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource2.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncWorker.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/LastModifiedAndETagDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ReportQueryResult.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/resources/logback.xml</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/build.gradle.kts</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/6.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonGenderEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryLangMapEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PullSyncStatusEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/index.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimesExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/daos/NetworkValidationInfoEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/WorkerExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LogPrefixFunction.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/AGENTS.md</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/model/RespectAppManifest.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/headers/directives/DirectivesToMap.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/PagingSourceExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ListExt.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/DeviceInfo.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueRunPullSyncUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainRemoteWriteQueueUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer/.gitignore</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassPermissionEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/EnrollmentAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRoleEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ValidationInfoAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasskeyAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/IPagingSourceFactory.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueWorker.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectRedeemInviteState.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AuthTokenEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ILangMapEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/LangMapEntityExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/AGENTS.md</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/androidMain/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/log/respect-server.log</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ILangMapEntityAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassInvteModeEnum.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolConfigEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolConfigSetting.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/JsonObjectBuilderExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/AGENTS.md</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentLearningResourceRefEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueDrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStatementResourceAssertions.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/GetAuthenticatedPersonUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassPermission.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/build.gradle.kts</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRefTypeEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AuthTokenEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/README.md</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/WriteQueueItemAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RemoteMediator2.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPasskey.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/DataBuilderExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/DataLayerTags.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskeyEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/build.gradle.kts</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/XXHashUidNumberMapper.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSourceLocal.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolPermissionGrantAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/OrderOption.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/WriteQueueItemEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/WritableDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportEntity.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/.gitignore</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthTokenProvider.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/LangMapAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/RepositoryModelDataSource.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/3.json</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json</file></path><path><editType>add</editType><file>lib-datalayer-repository/log/respect-server.log</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPermissionGrantEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimes.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/4.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/passkey/VerifySignInWithPasskeyUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/ExceptionWithHttpStatusCode.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/HttpErrorResponseException.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.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>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ForbiddenException.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/ForbiddenException.kt</affectedPath><affectedPath>lib-dataloadstate-ktor-server/build.gradle.kts</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</affectedPath><affectedPath>lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><commitId>a3f4579af9bd67e6a157b1002b3e0b7790f6fb81</commitId><timestamp>1789234052000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor XapiStatementResourceTest to use a single abstract test for multiple implementations.
</comment><date>2026-09-12 21:27:32 +0400</date><id>a3f4579af9bd67e6a157b1002b3e0b7790f6fb81</id><msg>Refactor XapiStatementResourceTest to use a single abstract test for multiple implementations.</msg><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/HttpErrorResponseException.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.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>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/passkey/VerifySignInWithPasskeyUseCase.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/ForbiddenException.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate-ktor-server/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.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>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/ExceptionWithHttpStatusCode.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.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-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt</file></path><path><editType>delete</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ForbiddenException.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt</file></path><path><editType>edit</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</file></path><path><editType>edit</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt</file></path><path><editType>delete</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-http-client/log/respect-server.log</affectedPath><commitId>a4be79ea8447a78e29d16546cda7a1005fa910da</commitId><timestamp>1789234392000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove test server log.
</comment><date>2026-09-12 21:33:12 +0400</date><id>a4be79ea8447a78e29d16546cda7a1005fa910da</id><msg>Remove test server log.</msg><path><editType>delete</editType><file>lib-datalayer-http-client/log/respect-server.log</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-substatement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/appendix-a-long-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>lib-datalayer-repository/build.gradle.kts</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/sequencing-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-actor.json</affectedPath><affectedPath>lib-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/Readme.txt</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/matching-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/group-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/likert-response-statement.json</affectedPath><affectedPath>lib-xapi-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/true-false-response-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/simple-statement.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-statementref.json</affectedPath><affectedPath>respect-lib-test-resources/src/androidMain/assets/xapistatements/performance-response-statement.json</affectedPath><commitId>32f939cfb5f2d87aa51b99430ae7022ac672402f</commitId><timestamp>1789235528000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix compilation/build
</comment><date>2026-09-12 21:52:08 +0400</date><id>32f939cfb5f2d87aa51b99430ae7022ac672402f</id><msg>Fix compilation/build</msg><path><editType>edit</editType><file>lib-xapi-ipc-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/group-statement.json</file></path><path><editType>edit</editType><file>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-statementref.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-actor.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/sequencing-response-statement.json</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/true-false-response-statement.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/simple-statement.json</file></path><path><editType>edit</editType><file>lib-datalayer/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/Readme.txt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement.json</file></path><path><editType>edit</editType><file>lib-datalayer-repository/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/performance-response-statement.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-substatement.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/matching-response-statement.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/appendix-a-long-statement.json</file></path><path><editType>delete</editType><file>respect-lib-test-resources/src/androidMain/assets/xapistatements/likert-response-statement.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-statementref.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/true-false-response-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/simple-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/matching-response-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/appendix-a-long-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/sequencing-response-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/Readme.txt</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-substatement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/group-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/likert-response-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/performance-response-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement.json</affectedPath><affectedPath>lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-actor.json</affectedPath><commitId>d562f7340895f9011ec5a6583f99ef71189ba4ce</commitId><timestamp>1789235780000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix compilation/build
</comment><date>2026-09-12 21:56:20 +0400</date><id>d562f7340895f9011ec5a6583f99ef71189ba4ce</id><msg>Fix compilation/build</msg><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-actor.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/appendix-a-long-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/matching-response-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/true-false-response-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-substatement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/Readme.txt</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-statementref.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/simple-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/likert-response-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/performance-response-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/sequencing-response-statement.json</file></path><path><editType>add</editType><file>lib-xapi-test/src/androidMain/assets/xapistatements/group-statement.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonExt.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/datetime/GMTDateExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/ext/HttpResponseExt.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt</affectedPath><affectedPath>lib-datalayer/README.md</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/datetime/InstantExt.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/ext/HttpRequestBuilderExt.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonTest/kotlin/world/respect/lib/dataloadstate/datetime/NowInEpochSecondsTest.kt</affectedPath><affectedPath>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.kt</affectedPath><affectedPath>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/ext/ApplicationCallExt.kt</affectedPath><affectedPath>lib-datalayer-http-client/AGENTS.md</affectedPath><commitId>0dcf23d2e6eacfaaa14a4952afd985449f3dbcc2</commitId><timestamp>1789303701000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Use GMTDate for xAPI document timestamps and refactor activity profile HTTP routes

Refactor to using a shared AbstractXapiActivityProfileTest that tests both the database and http client/server implementation.
</comment><date>2026-09-13 16:48:21 +0400</date><id>0dcf23d2e6eacfaaa14a4952afd985449f3dbcc2</id><msg>Use GMTDate for xAPI document timestamps and refactor activity profile HTTP routes</msg><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/ext/HttpRequestBuilderExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/AGENTS.md</file></path><path><editType>add</editType><file>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.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>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/ext/HttpResponseExt.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/datetime/InstantExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer/README.md</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/datetime/GMTDateExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/ext/ApplicationCallExt.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonTest/kotlin/world/respect/lib/dataloadstate/datetime/NowInEpochSecondsTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.gitignore</affectedPath><commitId>fa76edcd0b7c47438331555e261a2542817047a5</commitId><timestamp>1789303752000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update gitignore to ignore logs generated by unit tests running in modules.
</comment><date>2026-09-13 16:49:12 +0400</date><id>fa76edcd0b7c47438331555e261a2542817047a5</id><msg>Update gitignore to ignore logs generated by unit tests running in modules.</msg><path><editType>edit</editType><file>.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/NewLocalDataSource.kt</affectedPath><commitId>d454d5fe47aad4d78094d63af5e0f11e4d5ebb62</commitId><timestamp>1789314120000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add embedded data source server helper and refactor xAPI HTTP client tests
</comment><date>2026-09-13 19:42:00 +0400</date><id>d454d5fe47aad4d78094d63af5e0f11e4d5ebb62</id><msg>Add embedded data source server helper and refactor xAPI HTTP client tests</msg><path><editType>edit</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/NewLocalDataSource.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt</affectedPath><commitId>05b241602e4a58a0ccdc1e00ac60e42f58996499</commitId><timestamp>1789314234000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove extra time logging in WithEmbeddedDataSourceServer.kt
</comment><date>2026-09-13 19:43:54 +0400</date><id>05b241602e4a58a0ccdc1e00ac60e42f58996499</id><msg>Remove extra time logging in WithEmbeddedDataSourceServer.kt</msg><path><editType>edit</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</affectedPath><commitId>258efbc61c11e29cd50493ce504f1bf34fe6d55c</commitId><timestamp>1789382805000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Clarify app manifest URL requirements in issue template

Updated the template to clarify the requirement for the launchable app manifest URL and corrected the reference to the integration guide.
</comment><date>2026-09-14 14:46:45 +0400</date><id>258efbc61c11e29cd50493ce504f1bf34fe6d55c</id><msg>Clarify app manifest URL requirements in issue template</msg><path><editType>edit</editType><file>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ETagAndLastModifiedAsStrings.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ETagAndLastModified.kt</affectedPath><affectedPath>lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt</affectedPath><affectedPath>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</affectedPath><commitId>e424bad5d6cc8e45475203496f0e3a00e3757134</commitId><timestamp>1789464579000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add conditional if-modified-since GET support for xAPI activity profile resources
</comment><date>2026-09-15 13:29:39 +0400</date><id>e424bad5d6cc8e45475203496f0e3a00e3757134</id><msg>Add conditional if-modified-since GET support for xAPI activity profile resources</msg><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ETagAndLastModified.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ETagAndLastModifiedAsStrings.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</affectedPath><affectedPath>lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentShaEntity.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiActivityProfileDocumentAndShaEntities.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentShaDao.kt</affectedPath><commitId>c1c136ac127a8991dc153daf8689c73e7f199b2a</commitId><timestamp>1789476714000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Support ETag validation and SHA-1 caching for xAPI activity profile documents.
</comment><date>2026-09-15 16:51:54 +0400</date><id>c1c136ac127a8991dc153daf8689c73e7f199b2a</id><msg>Support ETag validation and SHA-1 caching for xAPI activity profile documents.</msg><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiActivityProfileDocumentAndShaEntities.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentShaEntity.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentShaDao.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueue.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/util/FileExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/EnqueueDrainXapiRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/WithEmbeddedDataSourceServer.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiActivityProfileResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiStatementsResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiActivitiesResourceLocal.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiAgentsResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/EnqueueDrainRemoteWriteQueueUseCaseChannel.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueXapiUseCase.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><commitId>afab3fd1f76c527cfce39689a35b0a7e57c91405</commitId><timestamp>1789557692000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add XAPI remote write queue interfaces and move local xAPI resource interfaces to lib-xapi-core
</comment><date>2026-09-16 15:21:32 +0400</date><id>afab3fd1f76c527cfce39689a35b0a7e57c91405</id><msg>Add XAPI remote write queue interfaces and move local xAPI resource interfaces to lib-xapi-core</msg><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/util/FileExt.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiActivityProfileResourceLocal.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt</file></path><path><editType>delete</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiActivitiesResourceLocal.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiAgentsResourceLocal.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueXapiUseCase.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/EnqueueDrainRemoteWriteQueueUseCaseChannel.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</file></path><path><editType>add</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/WithEmbeddedDataSourceServer.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/EnqueueDrainXapiRemoteWriteQueueUseCase.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiStatementsResourceLocal.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueue.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/writequeue/XapiRemoteWriteQueueDbImpl.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/EnqueueDrainXapiRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiRemoteWriteQueueItemEntity.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiRemoteWriteQueueItemEntityDao.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiRemoteWriteQueueItemAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueXapiUseCase.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/ext/DataLoadParamsExt.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</affectedPath><commitId>d013c6b8ed231d55e0cfc53a31ce94cc93ce98c4</commitId><timestamp>1789575164000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement XapiRemoteWriteQueue database storage and repository integration
</comment><date>2026-09-16 20:12:44 +0400</date><id>d013c6b8ed231d55e0cfc53a31ce94cc93ce98c4</id><msg>Implement XapiRemoteWriteQueue database storage and repository integration</msg><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/ext/DataLoadParamsExt.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiRemoteWriteQueueItemAdapter.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/EnqueueDrainXapiRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt</file></path><path><editType>edit</editType><file>respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiRemoteWriteQueueItemEntityDao.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/writequeue/XapiRemoteWriteQueueDbImpl.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiRemoteWriteQueueItemEntity.kt</file></path><path><editType>delete</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueXapiUseCase.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</affectedPath><commitId>2d04d961dc60a83d4dfc89c007f2c065af919f93</commitId><timestamp>1789577713000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update XapiStatementRepositoryIntegrationTest to use embedded server and repo clients
</comment><date>2026-09-16 20:55:13 +0400</date><id>2d04d961dc60a83d4dfc89c007f2c065af919f93</id><msg>Update XapiStatementRepositoryIntegrationTest to use embedded server and repo clients</msg><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</affectedPath><commitId>660d9c447d17a594d894a0ae82299feb2c23cbf7</commitId><timestamp>1789579142000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Initial working implementation of XapiActivityProfileResourceRepository.
</comment><date>2026-09-16 21:19:02 +0400</date><id>660d9c447d17a594d894a0ae82299feb2c23cbf7</id><msg>Initial working implementation of XapiActivityProfileResourceRepository.</msg><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainXapiRemoteWriteQueueWorker.kt</affectedPath><affectedPath>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainXapiRemoteWriteQueueUseCaseAndroidImpl.kt</affectedPath><commitId>0260997a7fbac331cc4f6cc797ecbe6425bee694</commitId><timestamp>1789631928000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add Android worker and Koin bindings for draining xAPI remote write queue
</comment><date>2026-09-17 11:58:48 +0400</date><id>0260997a7fbac331cc4f6cc797ecbe6425bee694</id><msg>Add Android worker and Koin bindings for draining xAPI remote write queue</msg><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainXapiRemoteWriteQueueUseCaseAndroidImpl.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainXapiRemoteWriteQueueWorker.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/README.md</affectedPath><affectedPath>README.md</affectedPath><affectedPath>app-android/README.md</affectedPath><commitId>c139595ee01b99703afe3d056b9330ddd58d35ce</commitId><timestamp>1789634063000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update readme references that used to point to respect-app-compose to point to app-android.
</comment><date>2026-09-17 12:34:23 +0400</date><id>c139595ee01b99703afe3d056b9330ddd58d35ce</id><msg>Update readme references that used to point to respect-app-compose to point to app-android.</msg><path><editType>edit</editType><file>respect-app-compose/README.md</file></path><path><editType>edit</editType><file>README.md</file></path><path><editType>edit</editType><file>app-android/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/doc/run-config-settings.png</affectedPath><affectedPath>app-android/doc/app-config-dropdown.png</affectedPath><affectedPath>respect-app-compose/doc/run-config-settings.png</affectedPath><affectedPath>respect-app-compose/doc/app-config-dropdown.png</affectedPath><commitId>d7108c8ff014fd19318491a409268e87e8f53357</commitId><timestamp>1789634242000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Move Android Studio screenshots to app-android
</comment><date>2026-09-17 12:37:22 +0400</date><id>d7108c8ff014fd19318491a409268e87e8f53357</id><msg>Move Android Studio screenshots to app-android</msg><path><editType>add</editType><file>app-android/doc/app-config-dropdown.png</file></path><path><editType>delete</editType><file>respect-app-compose/doc/app-config-dropdown.png</file></path><path><editType>delete</editType><file>respect-app-compose/doc/run-config-settings.png</file></path><path><editType>add</editType><file>app-android/doc/run-config-settings.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/doc/run-config-settings.png</affectedPath><affectedPath>app-android/doc/app-config-dropdown.png</affectedPath><commitId>ef9c679b3c4763267422ff4acb4c9eb6eca06d25</commitId><timestamp>1789635473000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update screenshots
</comment><date>2026-09-17 12:57:53 +0400</date><id>ef9c679b3c4763267422ff4acb4c9eb6eca06d25</id><msg>Update screenshots</msg><path><editType>edit</editType><file>app-android/doc/app-config-dropdown.png</file></path><path><editType>edit</editType><file>app-android/doc/run-config-settings.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/doc/run-config-settings.png</affectedPath><affectedPath>app-android/doc/app-config-dropdown.png</affectedPath><commitId>a684966bdd27dc61aed963dc8972d3340a2163cb</commitId><timestamp>1789635567000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update screenshots
</comment><date>2026-09-17 12:59:27 +0400</date><id>a684966bdd27dc61aed963dc8972d3340a2163cb</id><msg>Update screenshots</msg><path><editType>edit</editType><file>app-android/doc/app-config-dropdown.png</file></path><path><editType>edit</editType><file>app-android/doc/run-config-settings.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-core/README_OPDS_COLLECTIONS_ACTIVITY_PROFILE.md</affectedPath><affectedPath>lib-xapi-core/README_COLLECTIONS_LISTING_RECIPE.md</affectedPath><commitId>b5cba62c8accf3ddaac5a46d65ddac1acaa25b7c</commitId><timestamp>1789636894000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add profile id doc for storing and retrieving an OPDS collection.
Add recipe for pinning collections.
</comment><date>2026-09-17 13:21:34 +0400</date><id>b5cba62c8accf3ddaac5a46d65ddac1acaa25b7c</id><msg>Add profile id doc for storing and retrieving an OPDS collection.</msg><path><editType>add</editType><file>lib-xapi-core/README_COLLECTIONS_LISTING_RECIPE.md</file></path><path><editType>add</editType><file>lib-xapi-core/README_OPDS_COLLECTIONS_ACTIVITY_PROFILE.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.json</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.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/schooldirectory/list/SchoolDirectoryMode.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/.gitignore</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/values/tags.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectBasicAlertDialog.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/MutableStateExt.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCaseAndroid.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCache.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/RequestExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/logging/LogbackAntilog.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/StringBuilderExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/ext/FileExt.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/IHttpResponse.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePathsProvider.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidateLinkUseCase.kt</affectedPath><affectedPath>respect-lib-cache/.gitignore</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/UstadCacheLogger.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessChecker.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/OfflineStorageOption.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelperExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/NapierLoggingAdapter.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/EncodeUserHandleUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/ReportViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/CacheResponse.kt</affectedPath><affectedPath>respect-credentials/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/digital_library.png</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreProgressListener.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>respect-lib-serializers/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/onboarding/ShouldShowOnboardingUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/partial/ContentRangeTest.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantISO8601Serializer.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/webview/UstadAbstractWebViewClient.kt</affectedPath><affectedPath>respect-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/script.js</affectedPath><affectedPath>lib-opds-model/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ClearNeighborsCallback.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/RespectAccountExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NewCacheEntryDao.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithTextBody.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityChecker.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemCommonExt.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePacket.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/RespectAsyncImage.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><affectedPath>lib-credentials/proguard-rules.pro</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HeaderOverrideHttpResponse.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetAndroidSdCardDirUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/howpasskeywork/HowPasskeyWorksViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/CouponHeader.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/InputStreamExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/ContentRange.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</affectedPath><affectedPath>lib-cache/README.md</affectedPath><affectedPath>respect-lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/ByteArrayExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntries.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</affectedPath><affectedPath>app-server/src/main/resources/demoapp/learning_unit_xapi.js</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/effects/NavControllerLogEffect.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/DeviceInfoExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheEntryDao.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/filterusername/FilterUsernameUseCase.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/DatabaseExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</affectedPath><affectedPath>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/HttpRequestOkHttpAdapter.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/RangeRequestNotSatisfiableException.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasskeySignInFasterCard.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/RunReportResultAndFormatters.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/directives/DirectivesToMap.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkProperties.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNeighborDiscoveryListener.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseAndroidImpl.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/testfile1.png</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDateField.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/FileMimeTypeHelperImpl.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values/asset_statements.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/DefaultCacheCompressionFilter.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalTimeField.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/xapi_module.js</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheConstants.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/OkCallExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpoint.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/childrens-literature.epub</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/data_reporting.png</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RetentionLockDao.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/xml/backup_rules.xml</affectedPath><affectedPath>lib-ihttp-core/README.md</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeader.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDataSourceLocalProvider.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/testfile2.png</affectedPath><affectedPath>lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/icon.png</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/xml/data_extraction_rules.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/LoadingUiState.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheEntryToStore.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/values/lang_names.xml</affectedPath><affectedPath>lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonTest/resources/invalid-catalog.json</affectedPath><affectedPath>respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/PrimaryKeyGenerator.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/AppUiStateExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</affectedPath><affectedPath>README.md</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCaseAndroid.kt</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/LocalDateOrDateTime.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/webview/UstadAbstractWebViewClient.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberAndroid.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RequestedEntryDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorMessage.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImplTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtable.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedTime.android.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>lib-datalayer-repository/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/directory/RespectDirectoryServersConfig.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/SetDevModeEnabledUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicense.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/PinnedPublication.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/RequestExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/video.mp4</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/video.mp4</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/SingleItemToListTransformerSerializer.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/values/themes.xml</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheTrimmer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarSearchUiState.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCaseAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPagingItems.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupCredential.kt</affectedPath><affectedPath>lib-opds-model/src/jvmTest/resources/lesson001.json</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeadersImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt</affectedPath><affectedPath>respect-server/well-known/assetlinks.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ListAndPrintlnValidatorReporter.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CachedResponseStatus.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AccountDepComponent.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><affectedPath>lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/NullOutputStream.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ExceptionExtensions.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt</affectedPath><affectedPath>respect-credentials/proguard-rules.pro</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HeadersBuilderExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonRoleEnumExt.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSession.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDb.kt</affectedPath><affectedPath>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarSearchUiState.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNeighborDiscoveryListener.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/UstadCacheLogger.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/xml/backup_rules.xml</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantAsISO8601Extensions.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/respectappmanifest/model/RespectSite.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/validateusername/ValidateUsernameUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/onboarding/OnboardingScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/RespectSchoolPath.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitor.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCaseClient.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.kt</affectedPath><affectedPath>lib-credentials/build.gradle.kts</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumber.kt</affectedPath><affectedPath>lib-credentials/.gitignore</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/AddNewEntryTriggerCallback.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/ModifierExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpointTest.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/GetDevModeEnabledUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityChecker.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeaderListExt.kt</affectedPath><affectedPath>lib-ihttp-core/build.gradle.kts</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringResourceExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitor.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/index.html</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</affectedPath><affectedPath>lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdResponseAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicenseList.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/CacheResponse.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/theme/Theme.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/DevModeClickable.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/ClientDataJSON.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLink.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/OkHttpRequestAdapter.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatter.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</affectedPath><affectedPath>respect-lib-primarykeygen/src/androidMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.android.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/util/StringExt.android.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/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/DevModeClickable.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCaseAndroid.kt</affectedPath><affectedPath>lib-ihttp-okhttp/src/commonMain/AndroidManifest.xml</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderImpl.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/RedeemInviteRoute.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/publication/lesson001/video.mp4</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImpl.kt</affectedPath><affectedPath>lib-ihttp-nanohttpd/.gitignore</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5Digest.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RequestedEntry.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/integrity/Sha256Integrity.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSession.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.android.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantAsISO8601Extensions.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RequestedEntry.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringOrObjectSerializer.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCase.kt</affectedPath><affectedPath>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/OkHttpRequestAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CachedResponseStatus.kt</affectedPath><affectedPath>app-server/src/dist/systemd/respect-server.service</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectQuickActionButton.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt</affectedPath><affectedPath>respect-lib-ihttp-iostreams/.gitignore</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/drawable/fingerprint.png</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetAndroidSdCardDirUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtable.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelperExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LongExtCommon.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.android.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</affectedPath><affectedPath>respect-lib-ihttp-iostreams/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RequestedEntryDao.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticateQrBadgeUseCase.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.android.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumContributorObject.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/theme/Color.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/fingerprint.png</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.android.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StringExt.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/resources/sample-feed.json</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/IHttpHeadersAsOkHttpHeadersAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheEntryToStore.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CountGraphFormatter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.kt</affectedPath><affectedPath>app-server/well-known/assetlinks.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheConstants.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeadersExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/DecodeUserHandleUseCaseImpl.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/composites/NeighborCacheEntryAndNeighborCache.kt</affectedPath><affectedPath>lib-cache/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</affectedPath><affectedPath>lib-ihttp-nanohttpd/build.gradle.kts</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOptionExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/UriStringSerializer.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_resources_do_not_exist/grade1/lesson001/lesson001.html</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt</affectedPath><affectedPath>app-cli/src/main/java/world/respect/clitools/RespectCLI.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/app.html</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLongVersionInfoItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/AppStateIconExtensions.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsBelongsTo.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</affectedPath><affectedPath>lib-shared/AGENTS.md</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarDispatcher.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/credits.txt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/StringBuilderExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringResourceExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePacket.kt</affectedPath><affectedPath>respect-lib-ihttp-core/README.md</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashCacheEntry.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/spix_logo.webp</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/ByteArrayResponse.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/ic_launcher.xml</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/native_demo/index.json</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/audio.ogg</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppStateIcon.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/InviteExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.html</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithTextBody.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberAppVersionInfo.kt</affectedPath><affectedPath>app-server/well-known/terms.html</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ByteArrayExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/baseline_close_24.xml</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/xml/data_extraction_rules.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/FabUiState.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/SizeClass.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/icon.png</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RememberAppVersionInfo.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedDate.android.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/drawable/empty.png</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/account/validateauth/ValidateAuthorizationUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GraphFormatter.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumContributorObject.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt</affectedPath><affectedPath>app-android/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDateField.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCase.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/acknowledgement/AcknowledgementScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCase.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</affectedPath><affectedPath>respect-cli/build.gradle.kts</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFacet.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AuthResponse.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/proguard-rules.pro</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</affectedPath><affectedPath>lib-dataloadstate-ktor-server/build.gradle.kts</affectedPath><affectedPath>lib-ihttp-core/src/jsMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.js.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/ic_launcher_background.xml</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePong.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/layout/activity_web_view.xml</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDataSourceLocalProvider.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCaseAndroid.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/GetPasskeyProviderInfoUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/LongExtCommon.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/ByteArrayResponse.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/data_reporting.png</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectShortVersionInfoText.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/icon.png</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js</affectedPath><affectedPath>respect-lib-ihttp-okhttp/consumer-rules.pro</affectedPath><affectedPath>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/IHttpHeadersAsOkHttpHeadersAdapter.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectUserHandle.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidChannelHost.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/CustomDeepLinkToUrlUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/filterusername/FilterUsernameUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</affectedPath><affectedPath>lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ClearNeighborsCallback.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/ReportViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/waitingforapproval/WaitingForApprovalScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/manifestlist.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/values/asset_statements.xml</affectedPath><affectedPath>respect-lib-opds-model/src/jvmTest/resources/lesson001.json</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/viewmodel/RespectViewModelFun.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetPasskeyProviderInfoUseCaseImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/copycode.png</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePing.kt</affectedPath><affectedPath>respect-lib-cache/README.md</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCaseClient.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/LifeCycleOwnerDistributedCacheInit.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt</affectedPath><affectedPath>lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdRequestAdapter.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/icon.png</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkProperties.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GraphFormatter.kt</affectedPath><affectedPath>app-cli/.gitignore</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/IHeaderExt.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithByteBody.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validateemail/ValidateEmailUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/ByteArrayResponse.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/theme/CommonColor.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/SetDevModeEnabledUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonTest/resources/opds-io-home.json</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessChecker.kt</affectedPath><affectedPath>lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/AndroidManifest.xml</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/StringResponse.kt</affectedPath><affectedPath>lib-dataloadstate/build.gradle.kts</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ResourcesDispatcher.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/xml/file_paths.xml</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/effects/NavControllerLogEffect.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/qrcode/InviteQrViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorReporter.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCase.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPrice.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntries.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/FabUiState.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/drawable/compose-multiplatform.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectShortVersionInfoText.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntriesTest.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCacheEntry.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroptionsignup/OtherOptionsSignupScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/StringExt.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NavCommandExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/ModifierExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/MapExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt</affectedPath><affectedPath>respect-lib-opds-model/README.md</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturner.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsAcquisition.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/BaseHttpRequest.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/cover.png</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</affectedPath><affectedPath>lib-datalayer-db/README.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.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/routes/RespectSchoolJsonRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/validator/HttpClientExt.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/directory/RespectDirectoryServersConfig.kt</affectedPath><affectedPath>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/OkHttpHeadersAdapter.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt</affectedPath><affectedPath>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/DecodeUserHandleUseCaseImpl.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedTime.android.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt</affectedPath><affectedPath>respect-lib-shared-se/README.md</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</affectedPath><affectedPath>app-server/src/main/resources/application.conf</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</affectedPath><affectedPath>app-server/src/main/resources/demoapp/index.html</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImplTest.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RouteWithResultDest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/Platform.kt</affectedPath><affectedPath>app-server/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseValidityChecker.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringListSerializer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NewCacheEntryDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AuthResponse.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/StringResponse.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif</affectedPath><affectedPath>respect-lib-ihttp-nanohttpd/.gitignore</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-serializers/README.md</affectedPath><affectedPath>respect-lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/NullOutputStream.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeadersImpl.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/OfflineStorageOption.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectBottomSheetOption.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ByteBufferExt.kt</affectedPath><affectedPath>lib-shared-se/build.gradle.kts</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/AppUiStateExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/OutputStreamExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelper.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/IHttpResponse.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/XXStringHasherExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/audio.ogg</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/values/strings.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheStorageCompressionFilter.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroptionsignup/OtherOptionsSignupScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryMode.kt</affectedPath><affectedPath>respect-lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdRequestAdapter.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getfavicons/GetFavIconUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/menu/menu_webview.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AvatarColorForName.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/RespectAccountExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/menu/menu_webview.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/Greeting.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt</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/phonenumber/IPhoneNumberUtilExt.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImplTest.kt</affectedPath><affectedPath>respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt</affectedPath><affectedPath>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/OkHttpResponseAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarColors.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/DistributedCacheInterceptor.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/howpasskeywork/HowPasskeyWorksScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtil.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/CreateAccountSetPasswordScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkPropertiesEncrypted.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppIcon.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NapierLogInit.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/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageSettingUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/PinnedPublication.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLink.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicenseList.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/respect_logo.webp</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</affectedPath><affectedPath>lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/ext/InstantExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/RangeInputStream.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeader.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-app-compose/build.gradle.kts</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/date/ParseHttpDate.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/storage/GetOfflineStorageSettingUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/SingleItemToListTransformerSerializer.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCase.kt</affectedPath><affectedPath>lib-primarykeygen/src/jvmTest/kotlin/world/respect/lib/primarykeygen/DoorPrimaryKeyGeneratorTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDb.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GenderGraphFormatter.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/respectaccount/list/RespectAccountListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ResourcesDispatcher.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/SourceExt.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCaseAndroid.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkPropertiesEncrypted.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getfavicons/GetFavIconUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/resources/directories/default.properties</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-primarykeygen/src/jvmTest/kotlin/world/respect/lib/primarykeygen/DoorPrimaryKeyGeneratorTest.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCacheWhatWithIdAndPayload.kt</affectedPath><affectedPath>lib-datalayer/AGENTS.md</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CompressionType.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/replace.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/BaseHttpRequest.kt</affectedPath><affectedPath>respect-credentials/.gitignore</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/KtorIHeadersAdapter.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/icon.webp</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectBottomSheetOption.kt</affectedPath><affectedPath>respect-server/well-known/terms.html</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCase.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/works_offline.png</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/composites/NeighborCacheEntryAndNeighborCache.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonGenderEnumExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheTrimmer.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt</affectedPath><affectedPath>lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</affectedPath><affectedPath>lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/PrimaryKeyGenerator.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetPasskeyProviderInfoUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturner.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/undraw_qr_code_scan_bewe.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseValidityChecker.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/Validator.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StringExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/Platform.android.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/LaunchDebouncer.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddServerManagedDirectoryCallback.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/ustadmobile-epub.js</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/cover.png</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validateemail/ValidateEmailUseCase.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaders.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/ic_launcher.xml</affectedPath><affectedPath>lib-opds-model/README.md</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseProcessor.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatter.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/CouponHeader.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCaseAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarColors.kt</affectedPath><affectedPath>respect-lib-ihttp-iostreams/README.md</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/ext/AppStateIconExtensions.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt</affectedPath><affectedPath>lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/SnackBarDispatcherUseCaseExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePathsProvider.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/index.html</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/replace.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePing.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/FileAssert.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt</affectedPath><affectedPath>lib-cache/.gitignore</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-right.gif</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/RouteWithResultDestExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorJvm.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/GetDevModeEnabledUseCase.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AccountDepComponent.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/testfile2.png</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/theme/CommonColor.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ListAndPrintlnValidatorReporter.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/util/StringExt.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values/themes.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/RunReportResultAndFormatters.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/resources/sample-feed.json</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterinvitecode/EnterInviteCodeScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/assignments.png</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MergedHeaders.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js</affectedPath><affectedPath>lib-credentials/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/xml/file_paths.xml</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheStorageCompressionFilter.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithFormUrlEncodedData.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/CreateAccountSetPasswordScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/RespectSchoolPath.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.android.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQuickActionButton.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/ValidatedEntry.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/resources/about-credits-common.html</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/ContentRange.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOptionsBottomSheet.kt</affectedPath><affectedPath>lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt</affectedPath><affectedPath>lib-ihttp-okhttp/consumer-rules.pro</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/util/StringExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/testfile1.png</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/values-night/themes.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreResult.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectBasicAlertDialog.kt</affectedPath><affectedPath>lib-datalayer-http-client/AGENTS.md</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/RangeRequestNotSatisfiableException.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/RequestCacheControlHeader.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/values-v23/themes.xml</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/publication/lesson001/cover.png</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/HttpRequestOkHttpAdapter.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PasskeyVerifyResult.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/FileAssert.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/OkHttpResponseAdapter.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ConcurrentSafeMapOf.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/resources/about-credits-common.html</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/StringResponse.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/util/StringExt.android.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt</affectedPath><affectedPath>lib-shared-se/README.md</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImplTest.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/VerifyPasskeyUseCase.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/integrity/Sha256Integrity.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt</affectedPath><affectedPath>lib-shared/src/commonTest/resources/invalid-catalog.json</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringValue.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/KClassStringSerializer.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOptionExt.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/grade.jpg</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountSchoolScopeLink.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/base.json</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/SizeClass.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLongVersionInfoItem.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumMetadata.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePaths.kt</affectedPath><affectedPath>lib-ihttp-core/.gitignore</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/validator/HttpClientExt.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ByteArrayExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/RespectAsyncImage.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/RangeInputStream.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorReporter.kt</affectedPath><affectedPath>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorJvm.kt</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantISO8601Serializer.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HeaderOverrideHttpResponse.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestJvm.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerExt.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PasskeyVerifyResult.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCase.kt</affectedPath><affectedPath>lib-datalayer-db/AGENTS.md</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/Platform.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadStatusUpdate.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt</affectedPath><affectedPath>app-server/src/main/resources/demoapp/locales/fr-FR.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</affectedPath><affectedPath>respect-lib-opds-model/build.gradle.kts</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LaunchDebouncer.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNsdAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/Platform.android.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.html</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonGenderEnumExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticateQrBadgeUseCase.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</affectedPath><affectedPath>respect-lib-primarykeygen/build.gradle.kts</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/CustomDeepLinkToUrlUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt</affectedPath><affectedPath>lib-primarykeygen/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/BasicWebView.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/compose-multiplatform.xml</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/OkHttpHeadersAdapter.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/navigation/NavCommandEffect.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/AddNewEntryTriggerCallback.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/onboarding/OnboardingScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/jvmMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.jvm.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/digital_library.png</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.android.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountSchoolScopeLink.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeaderListExt.kt</affectedPath><affectedPath>respect-server/build.gradle.kts</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>app-server/src/main/resources/demoapp/credits.txt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/NapierLoggingAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/Greeting.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCase.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/script.js</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</affectedPath><affectedPath>lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/ByteArrayExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/ClientDataJSON.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasswordField.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</affectedPath><affectedPath>respect-app-compose/README.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/jsMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.js.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/app_icon.png</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/index.json</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt</affectedPath><affectedPath>respect-lib-ihttp-core/.gitignore</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt</affectedPath><affectedPath>lib-ihttp-okhttp/build.gradle.kts</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</affectedPath><affectedPath>app-server/README.md</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/UriStringSerializer.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/icon.webp</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOptionsBottomSheet.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</affectedPath><affectedPath>respect-lib-opds-model/README_LAUNCHABLE_APP.md</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/CachePathsProviderAndroid.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AaguidProviderInfo.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectRememberPager.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/effects/AppUiStateEffect.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MappedHttpHeaders.kt</affectedPath><affectedPath>lib-serializers/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NewCacheEntry.kt</affectedPath><affectedPath>respect-lib-shared/build.gradle.kts</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringValue.kt</affectedPath><affectedPath>app-server/src/main/resources/demoapp/books.png</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/UrlToCustomDeepLinkUseCase.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/DefaultCacheCompressionFilter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RouteWithResultDest.kt</affectedPath><affectedPath>lib-datalayer-http-client/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</affectedPath><affectedPath>lib-datalayer-db/build.gradle.kts</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/CachePathsProviderAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt</affectedPath><affectedPath>lib-ihttp-okhttp/.gitignore</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedDate.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</affectedPath><affectedPath>app-server/src/main/resources/demoapp/xapi_module.js</affectedPath><affectedPath>lib-appui-compose/README.md</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/AndroidManifest.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/effects/AppUiStateEffect.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsSeries.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt</affectedPath><affectedPath>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</affectedPath><affectedPath>app-server/src/main/resources/demoapp/locales/en-US.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticatePasswordUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheDao.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/ByteArrayResponse.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntriesTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringListSerializer.kt</affectedPath><affectedPath>lib-datalayer/README.md</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/RouteWithResultDestExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicense.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupCredential.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/spix_logo.webp</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/RequestBuilder.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheEntryDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCacheEntry.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilAndroid.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt</affectedPath><affectedPath>respect-lib-ihttp-nanohttpd/build.gradle.kts</affectedPath><affectedPath>lib-datalayer-repository/AGENTS.md</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</affectedPath><affectedPath>respect-lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdResponseAdapter.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.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/domain/getdeviceinfo/GetDeviceInfoUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/video.mp4</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/script.js</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</affectedPath><affectedPath>respect-server/src/dist/systemd/respect-server.service</affectedPath><affectedPath>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/LocalDateOrDateTime.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/logging/LogbackAntilog.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/index.json</affectedPath><affectedPath>respect-lib-ihttp-core/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/io/RangeInputStreamTest.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/PinnedPublicationDao.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/navigation/NavCommandEffect.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/partial/ContentRangeTest.kt</affectedPath><affectedPath>respect-lib-shared/AGENTS.md</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/LifeCycleOwnerDistributedCacheInit.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ConcurrentSafeMapOf.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/chimple.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashCacheEntry.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequest.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt</affectedPath><affectedPath>ci-run-test-server.sh</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/howpasskeywork/HowPasskeyWorksViewModel.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/FileMimeTypeHelperImpl.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.html</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/HttpLinkHeader.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumMetadata.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderExt.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequest.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/SubmitRedeemInviteRequestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticatePasswordUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaders.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsAcquisition.kt</affectedPath><affectedPath>app-server/src/main/resources/demoapp/app_icon.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/base.json</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/validateusername/ValidateUsernameUseCase.kt</affectedPath><affectedPath>lib-ihttp-iostreams/README.md</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthJob.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadDbDiscoveryListener.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/ValidatedEntry.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/util/ext/FileExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/logback.xml</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDetailField.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/ext/InstantExt.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/publication/lesson001/script.js</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCaseClient.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseProcessor.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/HttpLinkHeader.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/DeviceInfoExt.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/StringResponse.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalTimeField.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</affectedPath><affectedPath>lib-primarykeygen/src/androidMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.android.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</affectedPath><affectedPath>lib-ihttp-core/src/androidMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.android.kt</affectedPath><affectedPath>lib-shared/src/androidMain/assets/aaguid.json</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values-night/themes.xml</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePaths.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringOrObjectSerializer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values/tags.xml</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/assignments.png</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/childrens-literature.epub</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/UrlToCustomDeepLinkUseCase.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectUserHandle.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCaseClient.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/waitingforapproval/WaitingForApprovalScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.android.kt</affectedPath><affectedPath>lib-ihttp-iostreams/.gitignore</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/CommonSortOptions.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/theme/Theme.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/DatabaseExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/MutableStateExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatepassword/ValidatePasswordUseCase.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/BasicWebView.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarFlowDispatcher.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCaseAndroid.kt</affectedPath><affectedPath>lib-ihttp-iostreams/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDetailField.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt</affectedPath><affectedPath>app-server/.gitignore</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/VerifyPasskeyUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpointTest.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/SignupScreenModeEnum.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/app.html</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/OkCallExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpResponseExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/LoadingUiState.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorMessage.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatepassword/ValidatePasswordUseCase.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/StringExt.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/androidMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.android.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/onboarding/ShouldShowOnboardingUseCase.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.android.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/XXStringHasherExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/assets/aaguid.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonRoleEnumExt.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCache.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResult.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/works_offline.png</affectedPath><affectedPath>respect-server/.gitignore</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RetentionLockDao.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidChannelHost.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedTime.kt</affectedPath><affectedPath>respect-lib-ihttp-okhttp/build.gradle.kts</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</affectedPath><affectedPath>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/report/query/RunReportUseCaseClientImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/MapExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/drawable/copycode.png</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ByteBufferExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFacet.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidateLinkUseCase.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MapHttpHeadersAdapter.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/drawable/ic_launcher_background.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/SignupScreenModeEnum.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/ustadmobile-epub.js</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/KClassStringSerializer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/drawable/undraw_qr_code_scan_bewe.xml</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/directives/DirectivesToMap.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/manageuser/signup/SignUpScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/date/ParseHttpDate.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadDbDiscoveryListener.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/chimple.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/add/AddServerManagedDirectoryCallback.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCase.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedDate.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseClientImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</affectedPath><affectedPath>gradle.properties</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt</affectedPath><affectedPath>respect-lib-shared-se/build.gradle.kts</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/PinnedPublicationDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppIcon.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlDirectivesUtil.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedTime.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCase.kt</affectedPath><affectedPath>app-cli/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadStatusUpdate.kt</affectedPath><affectedPath>lib-http-ipc-server/build.gradle.kts</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-right.gif</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/Validator.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MapHttpHeadersAdapter.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasskeySignInFasterCard.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</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/util/CommonSortOptions.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/learning_unit_xapi.js</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt</affectedPath><affectedPath>app-server/src/main/resources/logback.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/SnackBarDispatcherUseCaseExt.kt</affectedPath><affectedPath>lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringExt.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HeadersBuilderExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidImpl.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseCacheabilityCheckerExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/empty.png</affectedPath><affectedPath>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/raw/license_label_json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadProgressUpdate.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/RequestBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/theme/Color.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/books.png</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHeadersBuilder.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemExt.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeadersExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/viewmodel/RespectViewModelFun.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GenderGraphFormatter.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/ext/PersonListDetailsExt.kt</affectedPath><affectedPath>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithFormUrlEncodedData.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonListDetailsExt.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseAndroidImpl.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCaseAndroid.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/KtorIHeadersAdapter.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/acknowledgement/AcknowledgementScreen.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/SourceExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCase.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsSeries.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/resources/publication/lesson001/audio.ogg</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/OutputStreamExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</affectedPath><affectedPath>respect-server/README.md</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/native_demo/Lesson</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheControlHeader.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</affectedPath><affectedPath>lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</affectedPath><affectedPath>respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/layout/activity_web_view.xml</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/main.kt</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/DistributedCacheInterceptor.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</affectedPath><affectedPath>lib-appui-compose/build.gradle.kts</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpoint.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MappedHttpHeaders.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values-v23/themes.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</affectedPath><affectedPath>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePong.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/manifestlist.json</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</affectedPath><affectedPath>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPrice.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadProgressUpdate.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MergedHeaders.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtil.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNsdAndroid.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterinvitecode/EnterInviteCodeScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/util/ext/ExceptionExtensions.kt</affectedPath><affectedPath>respect-cli/.gitignore</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheControlHeader.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedDate.android.kt</affectedPath><affectedPath>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsBelongsTo.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppStateIcon.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/io/RangeInputStreamTest.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCaseAndroid.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/raw/license_label_json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/SubmitRedeemInviteRequestUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResult.kt</affectedPath><affectedPath>lib-ihttp-okhttp/proguard-rules.pro</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/EncodeUserHandleUseCaseImpl.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/resources/publication/lesson001/audio.ogg</affectedPath><affectedPath>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AaguidProviderInfo.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemCommonExt.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/report/filteredit/ReportFilterEditScreen.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCase.kt</affectedPath><affectedPath>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestJvm.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlDirectivesUtil.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NavCommandExt.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/RedeemInviteRoute.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/respect_logo.webp</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/InviteExt.kt</affectedPath><affectedPath>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithByteBody.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasswordField.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelper.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/AvatarColorForName.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPagingItems.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NewCacheEntry.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CompressionType.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</affectedPath><affectedPath>app-server/src/main/resources/demoapp/grade.jpg</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpResponseExt.kt</affectedPath><affectedPath>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NapierLogInit.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/howpasskeywork/HowPasskeyWorksScreen.kt</affectedPath><affectedPath>lib-shared/src/commonTest/resources/opds-io-home.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumber.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</affectedPath><affectedPath>lib-primarykeygen/src/jvmMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.jvm.kt</affectedPath><affectedPath>lib-datalayer/build.gradle.kts</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt</affectedPath><affectedPath>respect-server/src/main/resources/demoapp/index.html</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreProgressListener.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt</affectedPath><affectedPath>lib-ihttp-core/src/jvmMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.jvm.kt</affectedPath><affectedPath>respect-lib-primarykeygen/src/jvmMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.jvm.kt</affectedPath><affectedPath>respect-app-compose/src/jvmMain/kotlin/world/respect/main.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt</affectedPath><affectedPath>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt</affectedPath><affectedPath>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorAndroid.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseProcessor.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseCacheabilityCheckerExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/respectaccount/list/RespectAccountListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarFlowDispatcher.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarDispatcher.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5Digest.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthJob.kt</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/InputStreamExt.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCaseClient.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt</affectedPath><affectedPath>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/GetPasskeyProviderInfoUseCase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/ServerAppMain.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</affectedPath><affectedPath>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCaseAndroid.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImpl.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/qrcode/InviteQrViewModel.kt</affectedPath><affectedPath>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt</affectedPath><affectedPath>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</affectedPath><affectedPath>respect-credentials/build.gradle.kts</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/native_demo/Lesson</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseProcessor.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</affectedPath><affectedPath>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreResult.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerExt.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/IHeaderExt.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</affectedPath><affectedPath>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt</affectedPath><affectedPath>respect-lib-cache/build.gradle.kts</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values/strings.xml</affectedPath><affectedPath>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</affectedPath><affectedPath>lib-shared/src/commonMain/resources/directories/default.properties</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCacheWhatWithIdAndPayload.kt</affectedPath><affectedPath>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.kt</affectedPath><affectedPath>respect-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png</affectedPath><affectedPath>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHeadersBuilder.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCaseAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</affectedPath><affectedPath>app-android/README.md</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectRememberPager.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/res/drawable/baseline_close_24.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt</affectedPath><affectedPath>lib-serializers/README.md</affectedPath><affectedPath>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/RequestCacheControlHeader.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CountGraphFormatter.kt</affectedPath><commitId>dbe60749389bc418284e0690884eee431ca51bd9</commitId><timestamp>1789646998000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update module naming convention.
</comment><date>2026-09-17 16:09:58 +0400</date><id>dbe60749389bc418284e0690884eee431ca51bd9</id><msg>Update module naming convention.</msg><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/Lesson</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/values/themes.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ListAndPrintlnValidatorReporter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilAndroid.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/AGENTS.md</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/RespectSchoolPath.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt</file></path><path><editType>add</editType><file>lib-shared/AGENTS.md</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/icon.png</file></path><path><editType>delete</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/domain/xapi/XapiAppListingExt.kt</file></path><path><editType>add</editType><file>app-server/well-known/assetlinks.json</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RememberAppVersionInfo.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js</file></path><path><editType>delete</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/navigation/NavCommandEffect.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreProgressListener.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/navigation/NavCommandEffect.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntries.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/OfflineStorageOption.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/integrity/Sha256Integrity.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/ic_launcher.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/composites/NeighborCacheEntryAndNeighborCache.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/main.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestJvm.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticatePasswordUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/base.json</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsSeries.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePacket.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePing.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/IHeaderExt.kt</file></path><path><editType>add</editType><file>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/ext/DateFormatterExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/index.json</file></path><path><editType>add</editType><file>lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/NullOutputStream.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddServerManagedDirectoryCallback.kt</file></path><path><editType>add</editType><file>lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarFlowDispatcher.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.android.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidateLinkUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/logging/LogbackAntilog.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/undraw_qr_code_scan_bewe.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/resources/directories/default.properties</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>ci-run-test-server.sh</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</file></path><path><editType>delete</editType><file>respect-lib-serializers/README.md</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/howpasskeywork/HowPasskeyWorksViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/ByteArrayResponse.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AccountDepComponent.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImplTest.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheTrimmer.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonTest/resources/opds-io-home.json</file></path><path><editType>delete</editType><file>respect-lib-primarykeygen/src/jvmMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.jvm.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePong.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/DecodeUserHandleUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheEntryToStore.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringResourceExt.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreResult.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/icon.webp</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticatePasswordUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarDispatcher.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/build.gradle.kts</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/AddNewEntryTriggerCallback.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetAndroidSdCardDirUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedDate.android.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/CreateAccountSetPasswordScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/directory/RespectDirectoryServersConfig.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadProgressUpdate.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt</file></path><path><editType>edit</editType><file>README.md</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/index.html</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/app_icon.png</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpointTest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt</file></path><path><editType>add</editType><file>app-server/README.md</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/IHttpResponse.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/publication/lesson001/video.mp4</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>add</editType><file>lib-ihttp-iostreams/.gitignore</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeaderListExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidateLinkUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/ContentRange.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/effects/NavControllerLogEffect.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/CustomDeepLinkToUrlUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/InviteExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/OutputStreamExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectBottomSheetOption.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountSchoolScopeLink.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImplTest.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLink.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RouteWithResultDest.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeader.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/empty.png</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantISO8601Serializer.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheEntryDao.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticateQrBadgeUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ExceptionExtensions.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeadersImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/GetDevModeEnabledUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/theme/CommonColor.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/logging/LogbackAntilog.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CommonSortOptions.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/Platform.android.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/application.conf</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntriesTest.kt</file></path><path><editType>add</editType><file>lib-shared-se/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-cli/.gitignore</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsBelongsTo.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntriesTest.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png</file></path><path><editType>delete</editType><file>respect-credentials/src/main/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalTimeField.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ClearNeighborsCallback.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.android.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/ByteArrayResponse.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/video.mp4</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturner.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCacheEntry.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumContributorObject.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/DistributedCacheInterceptor.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/onboarding/ShouldShowOnboardingUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/PinnedPublicationDao.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NapierLogInit.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDataSourceLocalProvider.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/acknowledgement/AcknowledgementScreen.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-right.gif</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HeaderOverrideHttpResponse.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectUserHandle.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/StringExt.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaders.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/SignupScreenModeEnum.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/ClientDataJSON.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-server/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/PinnedPublication.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithByteBody.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeaderListExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDateField.kt</file></path><path><editType>add</editType><file>lib-shared/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/xml/file_paths.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseClientImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/IHttpResponse.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/howpasskeywork/HowPasskeyWorksViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GraphFormatter.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemExt.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseCacheabilityCheckerExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonRoleEnumExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/chimple.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/MutableStateExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validateemail/ValidateEmailUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasswordField.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFacet.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/BasicWebView.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeadersExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/cover.png</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountSchoolScopeLink.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/androidMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.android.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css</file></path><path><editType>edit</editType><file>lib-dataloadstate-ktor-server/build.gradle.kts</file></path><path><editType>add</editType><file>lib-serializers/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/app.html</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePaths.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/KtorIHeadersAdapter.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageSettingUseCase.kt</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/IHttpHeadersAsOkHttpHeadersAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AuthResponse.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppIcon.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheStorageCompressionFilter.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithByteBody.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NavCommandExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/theme/Theme.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/effects/NavControllerLogEffect.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/jsMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.js.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedTime.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectRememberPager.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/OkHttpRequestAdapter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/RequestExt.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/webview/UstadAbstractWebViewClient.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/native_demo/Lesson</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AvatarColorForName.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/partial/ContentRangeTest.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/books.png</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/video.mp4</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCase.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/PrimaryKeyGenerator.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/VerifyPasskeyUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/Platform.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/RespectAccountExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatepassword/ValidatePasswordUseCase.kt</file></path><path><editType>add</editType><file>app-cli/src/main/java/world/respect/clitools/RespectCLI.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtil.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/CommonSortOptions.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryMode.kt</file></path><path><editType>delete</editType><file>respect-credentials/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validateemail/ValidateEmailUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/build.gradle.kts</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/ic_launcher_background.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/FabUiState.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOptionExt.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkProperties.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/jvmMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.jvm.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidChannelHost.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.html</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/logback.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/DatabaseExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorAndroid.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HeadersBuilderExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheDao.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/InputStreamExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppStateIcon.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonTest/resources/invalid-catalog.json</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/ic_launcher_background.xml</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/DistributedCacheInterceptor.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/ext/FileExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpResponseExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseProcessor.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/values-night/themes.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/waitingforapproval/WaitingForApprovalScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectRememberPager.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLongVersionInfoItem.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeadersExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/xml/data_extraction_rules.xml</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntries.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonRoleEnumExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithFormUrlEncodedData.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/AGENTS.md</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/PinnedPublicationDao.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/StringExt.android.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorMessage.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOptionsBottomSheet.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarColors.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/testfile1.png</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt</file></path><path><editType>add</editType><file>lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/ByteArrayExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseProcessor.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPagingItems.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasswordField.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/baseline_close_24.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumber.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/jvmMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.jvm.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/validateusername/ValidateUsernameUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/Validator.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/respect_logo.webp</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StringExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/README.md</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/learning_unit_xapi.js</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/script.js</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/SignupScreenModeEnum.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/drawable/fingerprint.png</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/util/ext/ExceptionExtensions.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHeadersBuilder.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/NullOutputStream.kt</file></path><path><editType>add</editType><file>app-server/well-known/terms.html</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatter.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderImpl.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/README.md</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/consumer-rules.pro</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/PinnedPublication.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/LifeCycleOwnerDistributedCacheInit.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/locales/fr-FR.json</file></path><path><editType>delete</editType><file>respect-lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdRequestAdapter.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNeighborDiscoveryListener.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/Greeting.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorReporter.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelper.kt</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLink.kt</file></path><path><editType>add</editType><file>lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdResponseAdapter.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt</file></path><path><editType>delete</editType><file>respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/values/asset_statements.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/howpasskeywork/HowPasskeyWorksScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/util/ext/FileExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/DecodeUserHandleUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.android.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticateQrBadgeUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/works_offline.png</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCacheWhatWithIdAndPayload.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/util/StringExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectBottomSheetOption.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RouteWithResultDest.kt</file></path><path><editType>delete</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/commonMain/kotlin/world/respect/shared/domain/account/username/validateusername/ValidateUsernameUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCaseAndroid.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/app_icon.png</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCacheEntry.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ListAndPrintlnValidatorReporter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/DeviceInfoExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectUserHandle.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/ContentRange.kt</file></path><path><editType>add</editType><file>lib-ihttp-nanohttpd/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/io/RangeInputStreamTest.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsAcquisition.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/proguard-rules.pro</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/partial/ContentRangeTest.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/childrens-literature.epub</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupCredential.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getfavicons/GetFavIconUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLongVersionInfoItem.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectShortVersionInfoText.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadDbDiscoveryListener.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/HttpLinkHeader.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/KClassStringSerializer.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5Digest.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/OkCallExt.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/.gitignore</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatepassword/ValidatePasswordUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelperExt.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/StringResponse.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtable.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/OkHttpHeadersAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt</file></path><path><editType>add</editType><file>app-server/src/dist/systemd/respect-server.service</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/HttpRequestOkHttpAdapter.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/RespectAsyncImage.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/native_demo/index.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/manifestlist.json</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheConstants.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/LaunchDebouncer.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/NapierLoggingAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CountGraphFormatter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthJob.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/learning_unit_xapi.js</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/waitingforapproval/WaitingForApprovalScreen.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MergedHeaders.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/ext/AppStateIconExtensions.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarSearchUiState.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/UstadCacheLogger.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectQuickActionButton.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-nanohttpd/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDb.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/App.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/README.md</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml</file></path><path><editType>delete</editType><file>respect-lib-primarykeygen/src/jvmTest/kotlin/world/respect/lib/primarykeygen/DoorPrimaryKeyGeneratorTest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LaunchDebouncer.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterinvitecode/EnterInviteCodeScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/GetDevModeEnabledUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/directory/RespectDirectoryServersConfig.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonTest/resources/invalid-catalog.json</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/onboarding/OnboardingScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/IHttpHeadersAsOkHttpHeadersAdapter.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroptionsignup/OtherOptionsSignupScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/ByteArrayResponse.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonTest/resources/opds-io-home.json</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreProgressListener.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/LocalDateOrDateTime.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/UrlToCustomDeepLinkUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/RouteWithResultDestExt.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png</file></path><path><editType>add</editType><file>lib-primarykeygen/src/jvmMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.jvm.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CompressionType.kt</file></path><path><editType>add</editType><file>lib-opds-model/README_LAUNCHABLE_APP.md</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseProcessor.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/Platform.android.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelperExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroptionsignup/OtherOptionsSignupScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/date/ParseHttpDate.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/SizeClass.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectBasicAlertDialog.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/script.js</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/RunReportResultAndFormatters.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/BaseHttpRequest.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetPasskeyProviderInfoUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringValue.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheControlHeader.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RequestedEntryDao.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/manifestlist.json</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RetentionLockDao.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/Greeting.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/CacheResponse.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/chimple.json</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/assignments.png</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasskeySignInFasterCard.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/FabUiState.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/androidMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.android.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ByteArrayExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/CacheResponse.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/FileMimeTypeHelperImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCase.kt</file></path><path><editType>edit</editType><file>gradle.properties</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.android.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ClearNeighborsCallback.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/DevModeClickable.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlDirectivesUtil.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedDate.kt</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringOrObjectSerializer.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantAsISO8601Extensions.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/raw/license_label_json</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/build.gradle.kts</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetAndroidSdCardDirUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/testfile2.png</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/RequestBuilder.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/MapExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/LoadingUiState.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/consumer-rules.pro</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/values/lang_names.xml</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/assets/aaguid.json</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/filterusername/FilterUsernameUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/AppUiStateExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorReporter.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/OkHttpRequestAdapter.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MapHttpHeadersAdapter.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/replace.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StringExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/base.json</file></path><path><editType>delete</editType><file>respect-lib-ihttp-iostreams/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/fingerprint.png</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheConstants.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonGenderEnumExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityChecker.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/RedeemInviteRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturner.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppIcon.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NapierLogInit.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/ValidatedEntry.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ByteBufferExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOptionExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/childrens-literature.epub</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json</file></path><path><editType>add</editType><file>lib-opds-model/src/jvmTest/resources/lesson001.json</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/menu/menu_webview.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtil.kt</file></path><path><editType>add</editType><file>app-cli/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/validator/HttpClientExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/resources/directories/default.properties</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitor.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/OkCallExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlDirectivesUtil.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/video.mp4</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/digital_library.png</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.html</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPrice.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringResourceExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/README.md</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicense.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/theme/Color.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-credentials/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-primarykeygen/build.gradle.kts</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt</file></path><path><editType>add</editType><file>app-cli/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/SingleItemToListTransformerSerializer.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/onboarding/OnboardingScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NewCacheEntryDao.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/FileAssert.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/RouteWithResultDestExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNsdAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeadersImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsAcquisition.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/books.png</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AccountDepComponent.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringListSerializer.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePacket.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPagingItems.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNeighborDiscoveryListener.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/effects/AppUiStateEffect.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePong.kt</file></path><path><editType>delete</editType><file>respect-credentials/proguard-rules.pro</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePing.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderImpl.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDetailField.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/RequestCacheControlHeader.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MappedHttpHeaders.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AaguidProviderInfo.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AaguidProviderInfo.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt</file></path><path><editType>add</editType><file>lib-primarykeygen/src/androidMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.android.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/integrity/Sha256Integrity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/StringResponse.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/UriStringSerializer.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MappedHttpHeaders.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/index.json</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashCacheEntry.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GenderGraphFormatter.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHeadersBuilder.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/validator/HttpClientExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/SizeClass.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedDate.android.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicenseList.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-iostreams/README.md</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt</file></path><path><editType>add</editType><file>lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdRequestAdapter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidImpl.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/LocalDateOrDateTime.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpointTest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GraphFormatter.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/cover.png</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LongExtCommon.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/build.gradle.kts</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.android.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/locales/fr-FR.json</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadStatusUpdate.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/ic_launcher.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDetailField.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/qrcode/InviteQrViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/XXStringHasherExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path><path><editType>add</editType><file>lib-serializers/README.md</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/compose-multiplatform.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</file></path><path><editType>add</editType><file>lib-ihttp-iostreams/README.md</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithTextBody.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/icon.webp</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQuickActionButton.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/values/strings.xml</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedTime.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-right.gif</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/spix_logo.webp</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedDate.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ResourcesDispatcher.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpResponseExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/OutputStreamExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt</file></path><path><editType>add</editType><file>lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-primarykeygen/src/androidMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.android.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NewCacheEntryDao.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/resources/about-credits-common.html</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/OkHttpHeadersAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageSettingUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonListDetailsExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/index.html</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RequestedEntry.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/RespectSchoolPath.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/viewmodel/RespectViewModelFun.kt</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringListSerializer.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/credits.txt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/works_offline.png</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/SingleItemToListTransformerSerializer.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheEntryToStore.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNsdAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt</file></path><path><editType>add</editType><file>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/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/KtorIHeadersAdapter.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/LongExtCommon.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/xapi_module.js</file></path><path><editType>add</editType><file>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorJvm.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeader.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/logback.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/UrlToCustomDeepLinkUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/layout/activity_web_view.xml</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/grade.jpg</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt</file></path><path><editType>add</editType><file>lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/PrimaryKeyGenerator.kt</file></path><path><editType>edit</editType><file>app-android/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/FileMimeTypeHelperImpl.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/OkHttpResponseAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.android.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/CachePathsProviderAndroid.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/util/StringExt.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/build.gradle.kts</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatter.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/values/tags.xml</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/webview/UstadAbstractWebViewClient.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasskeySignInFasterCard.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedTime.android.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/VerifyPasskeyUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/ClientDataJSON.kt</file></path><path><editType>add</editType><file>lib-ihttp-nanohttpd/.gitignore</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/drawable/empty.png</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/InputStreamExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/grade.jpg</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/UriStringSerializer.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/howpasskeywork/HowPasskeyWorksScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RetentionLockDao.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/SubmitRedeemInviteRequestUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/copycode.png</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/RangeInputStream.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/composites/NeighborCacheEntryAndNeighborCache.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CompressionType.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.kt</file></path><path><editType>edit</editType><file>lib-datalayer/README.md</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringValue.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedTime.android.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/values/tags.xml</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryMode.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonGenderEnumExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_resources_do_not_exist/grade1/lesson001/lesson001.html</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HeadersBuilderExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/values/strings.xml</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/values-night/themes.xml</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ConcurrentSafeMapOf.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemCommonExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/SubmitRedeemInviteRequestUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSession.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/RequestCacheControlHeader.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/OkHttpResponseAdapter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicenseList.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt</file></path><path><editType>add</editType><file>lib-primarykeygen/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ResourcesDispatcher.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/application.conf</file></path><path><editType>add</editType><file>lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</file></path><path><editType>add</editType><file>lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/ext/InstantExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/ustadmobile-epub.js</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/add/AddServerManagedDirectoryCallback.kt</file></path><path><editType>delete</editType><file>respect-server/well-known/assetlinks.json</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ConcurrentSafeMapOf.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectShortVersionInfoText.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NewCacheEntry.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/proguard-rules.pro</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/MutableStateExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt</file></path><path><editType>add</editType><file>lib-credentials/build.gradle.kts</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MapHttpHeadersAdapter.kt</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt</file></path><path><editType>delete</editType><file>respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/ext/InstantExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/baseline_close_24.xml</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.android.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/xml/backup_rules.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ByteArrayExt.kt</file></path><path><editType>add</editType><file>lib-credentials/.gitignore</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AuthResponse.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/RangeRequestNotSatisfiableException.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE</file></path><path><editType>add</editType><file>app-server/.gitignore</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RequestedEntry.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/BaseHttpRequest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/HttpLinkHeader.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-iostreams/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/main.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumMetadata.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/drawable/copycode.png</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResult.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/publication/lesson001/cover.png</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/respect_logo.webp</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/ReportViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/DevModeClickable.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/ustadmobile-epub.js</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheDao.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/StringResponse.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/ValidatedEntry.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseCacheabilityCheckerExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantISO8601Serializer.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheEntryDao.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared-se/README.md</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/viewmodel/RespectViewModelFun.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared-se/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/credits.txt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/KClassStringSerializer.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCacheWhatWithIdAndPayload.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemExt.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MergedHeaders.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonListDetailsExt.kt</file></path><path><editType>add</editType><file>app-server/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/CouponHeader.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemCommonExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/values-v23/themes.xml</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestJvm.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CountGraphFormatter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicense.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreResult.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/drawable/undraw_qr_code_scan_bewe.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-app-compose/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringOrObjectSerializer.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/LoadingUiState.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/menu/menu_webview.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt</file></path><path><editType>edit</editType><file>lib-datalayer/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/ModifierExt.kt</file></path><path><editType>delete</editType><file>respect-server/README.md</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/index.html</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupCredential.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCache.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOptionsBottomSheet.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashCacheEntry.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/data_reporting.png</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheControlHeader.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelper.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImplTest.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt</file></path><path><editType>delete</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/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/README.md</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppStateIcon.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseProcessor.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectBasicAlertDialog.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/README.md</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithFormUrlEncodedData.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/AGENTS.md</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitor.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/SetDevModeEnabledUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RequestedEntryDao.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/MapExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/AddNewEntryTriggerCallback.kt</file></path><path><editType>add</editType><file>lib-opds-model/README.md</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</file></path><path><editType>add</editType><file>lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/StringBuilderExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsSeries.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarSearchUiState.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterinvitecode/EnterInviteCodeScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessChecker.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/drawable/spix_logo.webp</file></path><path><editType>add</editType><file>lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json</file></path><path><editType>delete</editType><file>respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/effects/AppUiStateEffect.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkPropertiesEncrypted.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/UstadCacheLogger.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/RequestExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>delete</editType><file>respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/resources/sample-feed.json</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/directives/DirectivesToMap.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseValidityChecker.kt</file></path><path><editType>add</editType><file>lib-shared-se/README.md</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.android.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/publication/lesson001/script.js</file></path><path><editType>delete</editType><file>respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCase.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithTextBody.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthJob.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadStatusUpdate.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/build.gradle.kts</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/filterusername/FilterUsernameUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadProgressUpdate.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/EncodeUserHandleUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/xml/file_paths.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/respectaccount/list/RespectAccountListViewModel.kt</file></path><path><editType>delete</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/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarColors.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt</file></path><path><editType>add</editType><file>lib-cache/.gitignore</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CachedResponseStatus.kt</file></path><path><editType>add</editType><file>lib-ihttp-iostreams/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GenderGraphFormatter.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/values/themes.xml</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/layout/activity_web_view.xml</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/src/commonMain/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/SnackBarDispatcherUseCaseExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/GetPasskeyProviderInfoUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/SourceExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/script.js</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/Platform.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NewCacheEntry.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseClientImpl.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/index.json</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/CustomDeepLinkToUrlUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt</file></path><path><editType>delete</editType><file>respect-cli/build.gradle.kts</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/testfile2.png</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/icon.png</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/RespectAccountExt.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/LifeCycleOwnerDistributedCacheInit.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaders.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ByteBufferExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarFlowDispatcher.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CachedResponseStatus.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/XXStringHasherExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/replace.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/DeviceInfoExt.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/ByteArrayResponse.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt</file></path><path><editType>edit</editType><file>app-android/README.md</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseValidityChecker.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCache.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResult.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/EncodeUserHandleUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/README.md</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberAppVersionInfo.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getfavicons/GetFavIconUseCase.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PasskeyVerifyResult.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsBelongsTo.kt</file></path><path><editType>edit</editType><file>lib-datalayer/AGENTS.md</file></path><path><editType>delete</editType><file>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/acknowledgement/AcknowledgementScreen.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/BasicWebView.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpoint.kt</file></path><path><editType>add</editType><file>lib-credentials/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalTimeField.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/ByteArrayExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImplTest.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadDbDiscoveryListener.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/digital_library.png</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.html</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/directives/DirectivesToMap.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPrice.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestAndroid.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/RunReportResultAndFormatters.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/theme/CommonColor.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/DefaultCacheCompressionFilter.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkProperties.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantAsISO8601Extensions.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/SnackBarDispatcherUseCaseExt.kt</file></path><path><editType>add</editType><file>lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/testfile1.png</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorJvm.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/StringExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/xapi_module.js</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/audio.ogg</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/build.gradle.kts</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetPasskeyProviderInfoUseCaseImpl.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/audio.ogg</file></path><path><editType>edit</editType><file>lib-http-ipc-server/build.gradle.kts</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/StringBuilderExt.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/AppStateIconExtensions.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/resources/sample-feed.json</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5Digest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePathsProvider.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/Validator.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCaseClient.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/CreateAccountSetPasswordScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/OfflineStorageOption.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/RedeemInviteRoute.kt</file></path><path><editType>add</editType><file>lib-opds-model/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/FileAssert.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/README_LAUNCHABLE_APP.md</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseAndroidImpl.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/util/StringExt.android.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/CouponHeader.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/theme/Theme.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/values/asset_statements.xml</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/jvmTest/resources/lesson001.json</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/date/ParseHttpDate.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/onboarding/ShouldShowOnboardingUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidChannelHost.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkPropertiesEncrypted.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDb.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumMetadata.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorMessage.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/CachePathsProviderAndroid.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/StringResponse.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/qrcode/InviteQrViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/.gitignore</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/SourceExt.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/resources/publication/lesson001/audio.ogg</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityChecker.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HeaderOverrideHttpResponse.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/values-v23/themes.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumber.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/RangeInputStream.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js</file></path><path><editType>add</editType><file>lib-credentials/proguard-rules.pro</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/theme/Color.kt</file></path><path><editType>add</editType><file>lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/src/commonMain/AndroidManifest.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCaseAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/resources/about-credits-common.html</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/AGENTS.md</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/InviteExt.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumContributorObject.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-okhttp/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>lib-primarykeygen/src/jvmTest/kotlin/world/respect/lib/primarykeygen/DoorPrimaryKeyGeneratorTest.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/audio.ogg</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt</file></path><path><editType>add</editType><file>lib-cache/build.gradle.kts</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/jsMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.js.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/GetPasskeyProviderInfoUseCase.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/AvatarColorForName.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePathsProvider.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/NapierLoggingAdapter.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/SetDevModeEnabledUseCase.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/data_reporting.png</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/drawable/compose-multiplatform.xml</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt</file></path><path><editType>delete</editType><file>respect-server/well-known/terms.html</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</file></path><path><editType>add</editType><file>lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/HttpRequestOkHttpAdapter.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/dist/systemd/respect-server.service</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdResponseAdapter.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpoint.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/app.html</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/androidMain/res/drawable/assignments.png</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheStorageCompressionFilter.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js</file></path><path><editType>add</editType><file>lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheTrimmer.kt</file></path><path><editType>add</editType><file>lib-appui-compose/README.md</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/RangeRequestNotSatisfiableException.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/AppUiStateExt.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/raw/license_label_json</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/icon.png</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/io/RangeInputStreamTest.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/ServerAppMain.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt</file></path><path><editType>add</editType><file>lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/IHeaderExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/ReportViewModel.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDataSourceLocalProvider.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePaths.kt</file></path><path><editType>delete</editType><file>respect-lib-ihttp-nanohttpd/build.gradle.kts</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSession.kt</file></path><path><editType>add</editType><file>lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/RequestBuilder.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/xml/data_extraction_rules.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt</file></path><path><editType>add</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/RespectAsyncImage.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/ModifierExt.kt</file></path><path><editType>delete</editType><file>respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PasskeyVerifyResult.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/.gitignore</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/demoapp/locales/en-US.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDateField.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/DatabaseExt.kt</file></path><path><editType>add</editType><file>app-server/src/main/resources/demoapp/index.html</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/respectaccount/list/RespectAccountListViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/icon.png</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/DefaultCacheCompressionFilter.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessChecker.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt</file></path><path><editType>delete</editType><file>respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.json</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt</file></path><path><editType>add</editType><file>lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtable.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/assets/aaguid.json</file></path><path><editType>add</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt</file></path><path><editType>add</editType><file>lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt</file></path><path><editType>delete</editType><file>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFacet.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json</file></path><path><editType>add</editType><file>app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarDispatcher.kt</file></path><path><editType>delete</editType><file>respect-app-compose/src/androidMain/res/xml/backup_rules.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NavCommandExt.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-server/src/dist/systemd/respect-server.service</affectedPath><commitId>78c9a20922e2d10d126600ae9c292ed9624179d2</commitId><timestamp>1789647047000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update respect-server.service template.
</comment><date>2026-09-17 16:10:47 +0400</date><id>78c9a20922e2d10d126600ae9c292ed9624179d2</id><msg>Update respect-server.service template.</msg><path><editType>edit</editType><file>app-server/src/dist/systemd/respect-server.service</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_.lck</affectedPath><affectedPath>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_-wal</affectedPath><affectedPath>respect-server/data/respect-app.db-wal</affectedPath><affectedPath>respect-server/data/dir-admin.txt</affectedPath><affectedPath>respect-server/data/respect-app.db</affectedPath><affectedPath>respect-server/data/respect-app.db-shm</affectedPath><affectedPath>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_</affectedPath><affectedPath>respect-server/data/server.properties</affectedPath><affectedPath>respect-server/data/respect-app.db.lck</affectedPath><affectedPath>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_-shm</affectedPath><commitId>6ee350d7644c81636bdd7c6e9467caa765aed61a</commitId><timestamp>1789648642000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove test data no longer covered by gitignore.
</comment><date>2026-09-17 16:37:22 +0400</date><id>6ee350d7644c81636bdd7c6e9467caa765aed61a</id><msg>Remove test data no longer covered by gitignore.</msg><path><editType>delete</editType><file>respect-server/data/respect-app.db-wal</file></path><path><editType>delete</editType><file>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_</file></path><path><editType>delete</editType><file>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_.lck</file></path><path><editType>delete</editType><file>respect-server/data/respect-app.db-shm</file></path><path><editType>delete</editType><file>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_-shm</file></path><path><editType>delete</editType><file>respect-server/data/dir-admin.txt</file></path><path><editType>delete</editType><file>respect-server/data/respect-app.db.lck</file></path><path><editType>delete</editType><file>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_-wal</file></path><path><editType>delete</editType><file>respect-server/data/server.properties</file></path><path><editType>delete</editType><file>respect-server/data/respect-app.db</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.gitignore</affectedPath><commitId>f08fc738eef4c41b036ccc7f98df2ad18a42b8d2</commitId><timestamp>1789648790000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update gitignore to reflect module renaming and avoid accidental commit of old server data.
</comment><date>2026-09-17 16:39:50 +0400</date><id>f08fc738eef4c41b036ccc7f98df2ad18a42b8d2</id><msg>Update gitignore to reflect module renaming and avoid accidental commit of old server data.</msg><path><editType>edit</editType><file>.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>composeApp/src/desktopMain/resources/img/spix_logo.png</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>composeApp/src/desktopMain/resources/img/respect_logo.png</affectedPath><commitId>01b27dd486b9ca5d02af0f4eb3ce41ec0deb606c</commitId><timestamp>1789648861000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove obsolete old composeApp directory.
</comment><date>2026-09-17 16:41:01 +0400</date><id>01b27dd486b9ca5d02af0f4eb3ce41ec0deb606c</id><msg>Remove obsolete old composeApp directory.</msg><path><editType>edit</editType><file>.gitignore</file></path><path><editType>delete</editType><file>composeApp/src/desktopMain/resources/img/respect_logo.png</file></path><path><editType>delete</editType><file>composeApp/src/desktopMain/resources/img/spix_logo.png</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-server/README.md</affectedPath><affectedPath>AGENTS.md</affectedPath><commitId>5461c3e7ef70a4307f6868bed4093e414b7312ff</commitId><timestamp>1789649231000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix links in AGENTS.md and README.md
</comment><date>2026-09-17 16:47:11 +0400</date><id>5461c3e7ef70a4307f6868bed4093e414b7312ff</id><msg>Fix links in AGENTS.md and README.md</msg><path><editType>edit</editType><file>AGENTS.md</file></path><path><editType>edit</editType><file>app-server/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/17.json</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</affectedPath><commitId>c8116d249abc5dd79fbbff973fb1c13cc2645e7e</commitId><timestamp>1789653548000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove obsolete SchoolApp datasource.
</comment><date>2026-09-17 17:59:08 +0400</date><id>c8116d249abc5dd79fbbff973fb1c13cc2645e7e</id><msg>Remove obsolete SchoolApp datasource.</msg><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>app-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/17.json</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>delete</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt</file></path><path><editType>delete</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt</file></path><path><editType>delete</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/ext/OpdsFeedEntityExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><commitId>87391a9a03b2e3dc1a18da04a0e104d3e2c9fa0f</commitId><timestamp>1789668616000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add ETag and Last-Modified caching support to OpdsFeedDataSource and remove write operations
</comment><date>2026-09-17 22:10:16 +0400</date><id>87391a9a03b2e3dc1a18da04a0e104d3e2c9fa0f</id><msg>Add ETag and Last-Modified caching support to OpdsFeedDataSource and remove write operations</msg><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/ext/OpdsFeedEntityExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ETagAndLastModified.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</affectedPath><commitId>e430d3912c32f55f19c11f3f1febba05a2811992</commitId><timestamp>1789732644000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement asRepoFlow for repository data loading and remove OPDS feed write support
</comment><date>2026-09-18 15:57:24 +0400</date><id>e430d3912c32f55f19c11f3f1febba05a2811992</id><msg>Implement asRepoFlow for repository data loading and remove OPDS feed write support</msg><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt</file></path><path><editType>edit</editType><file>app-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ETagAndLastModified.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/catalog/saveopdsfeed/SaveOpdsFeedUseCase.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>lib-datalayer/build.gradle.kts</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</affectedPath><commitId>13f2d0396253ff9440f3218469a2986d82343388</commitId><timestamp>1789740744000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement SaveOpdsFeedUseCase to persist OPDS feeds to xAPI activity profile
</comment><date>2026-09-18 18:12:24 +0400</date><id>13f2d0396253ff9440f3218469a2986d82343388</id><msg>Implement SaveOpdsFeedUseCase to persist OPDS feeds to xAPI activity profile</msg><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/catalog/saveopdsfeed/SaveOpdsFeedUseCase.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt</file></path><path><editType>edit</editType><file>lib-datalayer/build.gradle.kts</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/flow/RepoFlowTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt</affectedPath><commitId>b69a100d4d1cd0c868bce1f508769bec864d9493</commitId><timestamp>1789904836000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add test for RepoFlow
</comment><date>2026-09-20 15:47:16 +0400</date><id>b69a100d4d1cd0c868bce1f508769bec864d9493</id><msg>Add test for RepoFlow</msg><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/flow/RepoFlowTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/flow/RepoFlowTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/ext/DataLoadParamsExt.kt</affectedPath><commitId>d41cbd4aff4ae57c4eaab3c035c894bdf5a3f103</commitId><timestamp>1789972892000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Prevent older remote data from overwriting newer local data
</comment><date>2026-09-21 10:41:32 +0400</date><id>d41cbd4aff4ae57c4eaab3c035c894bdf5a3f103</id><msg>Prevent older remote data from overwriting newer local data</msg><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/flow/RepoFlowTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/ext/DataLoadParamsExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt</file></path><path><editType>edit</editType><file>lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</affectedPath><commitId>e1ca3bf147e7f55025333eb0fd58757778ed6c28</commitId><timestamp>1789974069000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update DataLoadStateExt.kt comments
</comment><date>2026-09-21 11:01:09 +0400</date><id>e1ca3bf147e7f55025333eb0fd58757778ed6c28</id><msg>Update DataLoadStateExt.kt comments</msg><path><editType>edit</editType><file>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/001_003_login_using_school_link_test.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class_with_members.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_new_student_to_class.yaml</affectedPath><affectedPath>.maestro/flows/subflows/admin_add_student.yaml</affectedPath><affectedPath>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml</affectedPath><affectedPath>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml</affectedPath><affectedPath>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_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>3dc7335ed9c45c15b467355f461d504e30878257</commitId><timestamp>1789977414000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Restore to maestro tests as per main branch.
</comment><date>2026-09-21 11:56:54 +0400</date><id>3dc7335ed9c45c15b467355f461d504e30878257</id><msg>Restore to maestro tests as per main branch.</msg><path><editType>delete</editType><file>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.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_003_login_using_school_link_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_new_teacher_to_class.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/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-pending/001_005_add_school_self_registration_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/001_002_add_user_direct_test.yaml</file></path><path><editType>add</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>.maestro/flows/subflows/admin_add_class_with_members.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/README.md</affectedPath><affectedPath>.maestro/flows/002_001_browse_lessons_test.yaml</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/PublicationDetailScreen.kt</affectedPath><commitId>1bad6f9b7297a774b2387ed31e14b0cb9e7ad186</commitId><timestamp>1789980925000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fix use of title on 002_001 browse lesson test. Update maestro readme as per new module names.
</comment><date>2026-09-21 12:55:25 +0400</date><id>1bad6f9b7297a774b2387ed31e14b0cb9e7ad186</id><msg>Fix use of title on 002_001 browse lesson test. Update maestro readme as per new module names.</msg><path><editType>edit</editType><file>.maestro/flows/002_001_browse_lessons_test.yaml</file></path><path><editType>edit</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/PublicationDetailScreen.kt</file></path><path><editType>edit</editType><file>.maestro/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/002_002_browse_demo_app_test.yaml</affectedPath><commitId>57bafa259a211717b8cd5b1232a94555d8106eb6</commitId><timestamp>1789984229000</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_demo_app_test.yaml : change id to publication_title.
</comment><date>2026-09-21 13:50:29 +0400</date><id>57bafa259a211717b8cd5b1232a94555d8106eb6</id><msg>Fix 002_002_browse_demo_app_test.yaml : change id to publication_title.</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>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStateResource.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/ISingleDocumentParams.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</affectedPath><affectedPath>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiDocumentResourceTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</affectedPath><commitId>353a9ddfe454298dd3e21ab0ad7310238747bb7c</commitId><timestamp>1789999846000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Extract AbstractXapiDocumentResourceTest and add XapiStateResource
</comment><date>2026-09-21 18:10:46 +0400</date><id>353a9ddfe454298dd3e21ab0ad7310238747bb7c</id><msg>Extract AbstractXapiDocumentResourceTest and add XapiStateResource</msg><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/ISingleDocumentParams.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStateResource.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiDocumentResourceTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDocumentEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStateDocumentAndShaEntities.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiStateResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDbTest.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStateResourceAssertions.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDocumentShaDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDocumentShaEntity.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStateDocumentAdapter.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentShaEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDb.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStateResourceTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentShaDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDocumentDao.kt</affectedPath><commitId>7481be86dd5178e393327f194df98c985f1392b9</commitId><timestamp>1790008624000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement xAPI State resource database storage and migration to version 18
</comment><date>2026-09-21 20:37:04 +0400</date><id>7481be86dd5178e393327f194df98c985f1392b9</id><msg>Implement xAPI State resource database storage and migration to version 18</msg><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDb.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDbTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStateDocumentAndShaEntities.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentShaDao.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiStateResourceLocal.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStateResourceAssertions.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentShaEntity.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDocumentDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDocumentShaEntity.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDocumentShaDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStateDocumentAdapter.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStateResourceTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDocumentEntity.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiStateResourceRoute.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStateResourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStateResourceHttpClientTest.kt</affectedPath><affectedPath>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</affectedPath><commitId>830ba89b25fbcbf10e15d7be093022a721ee1698</commitId><timestamp>1790009870000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xAPI State resource HTTP client and server route
</comment><date>2026-09-21 20:57:50 +0400</date><id>830ba89b25fbcbf10e15d7be093022a721ee1698</id><msg>Add xAPI State resource HTTP client and server route</msg><path><editType>add</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStateResourceHttpClientTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStateResourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiStateResourceRoute.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/AbstractXapiDocumentResourceRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryIntegrationTest.kt</affectedPath><commitId>1667f23c409416362154b7d78671489d9180d94e</commitId><timestamp>1790011846000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Extract AbstractXapiDocumentResourceRepositoryIntegrationTest base test class
</comment><date>2026-09-21 21:30:46 +0400</date><id>1667f23c409416362154b7d78671489d9180d94e</id><msg>Extract AbstractXapiDocumentResourceRepositoryIntegrationTest base test class</msg><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/AbstractXapiDocumentResourceRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</affectedPath><commitId>50137ed31af5059ca8f3d9eaa165a03d50f51eab</commitId><timestamp>1790012078000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Extract AbstractXapiDocumentResourceRepositoryIntegrationTest base test class
</comment><date>2026-09-21 21:34:38 +0400</date><id>50137ed31af5059ca8f3d9eaa165a03d50f51eab</id><msg>Extract AbstractXapiDocumentResourceRepositoryIntegrationTest base test class</msg><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepositoryTest.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/AbstractXapiDocumentResourceRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</affectedPath><commitId>7cf928c31fa9548ef1424965d95d5d86e24dcc15</commitId><timestamp>1790013331000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement XapiStateResourceRepository
</comment><date>2026-09-21 21:55:31 +0400</date><id>7cf928c31fa9548ef1424965d95d5d86e24dcc15</id><msg>Implement XapiStateResourceRepository</msg><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/AbstractXapiDocumentResourceRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepositoryIntegrationTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepositoryTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiAgentProfileResourceHttpClientTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiAgentProfileDocumentDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentProfileResource.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAgentProfileDocumentEntity.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepositoryTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</affectedPath><affectedPath>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</affectedPath><affectedPath>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepositoryIntegrationTest.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAgentProfileDocumentAndShaEntities.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt</affectedPath><affectedPath>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiAgentProfileResourceHttpClient.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDbTest.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiAgentProfileResourceTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAgentProfileDocumentAdapter.kt</affectedPath><affectedPath>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiAgentProfileResourceRoute.kt</affectedPath><affectedPath>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiAgentProfileResourceAssertions.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAgentProfileDocumentShaEntity.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiAgentProfileResourceLocal.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiAgentProfileDocumentShaDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/19.json</affectedPath><affectedPath>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</affectedPath><affectedPath>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</affectedPath><commitId>8e677442f2e34eb2b726e9631d4b150d95f65c6e</commitId><timestamp>1790079166000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement xAPI Agent Profile resource
</comment><date>2026-09-22 16:12:46 +0400</date><id>8e677442f2e34eb2b726e9631d4b150d95f65c6e</id><msg>Implement xAPI Agent Profile resource</msg><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiAgentProfileDocumentDao.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDb.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiAgentProfileResourceLocal.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt</file></path><path><editType>edit</editType><file>app-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/19.json</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepositoryIntegrationTest.kt</file></path><path><editType>edit</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiAgentProfileResourceTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiAgentProfileResourceHttpClient.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt</file></path><path><editType>edit</editType><file>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepositoryTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAgentProfileDocumentAdapter.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAgentProfileDocumentShaEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiAgentProfileResourceRoute.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt</file></path><path><editType>add</editType><file>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiAgentProfileResourceHttpClientTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt</file></path><path><editType>add</editType><file>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiAgentProfileResourceAssertions.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiAgentProfileDocumentShaDao.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt</file></path><path><editType>add</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepository.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAgentProfileDocumentAndShaEntities.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDbTest.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAgentProfileDocumentEntity.kt</file></path><path><editType>edit</editType><file>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt</file></path><path><editType>delete</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt</file></path><path><editType>add</editType><file>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentProfileResource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/10.json</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthOptionConfig.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt</affectedPath><affectedPath>lib-ihttp-core/README.md</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt</affectedPath><affectedPath>lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt</affectedPath><affectedPath>lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</affectedPath><affectedPath>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/11.json</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/AuthOptionConfigTypeEnum.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthenticationOption.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt</affectedPath><affectedPath>README.md</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt</affectedPath><affectedPath>app-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryAuthOptionEntityDao.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt</affectedPath><affectedPath>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryAuthOptionEntity.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt</affectedPath><affectedPath>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt</affectedPath><commitId>ef2dd76eb0fd8e2c2e9658586434f96cd696a39e</commitId><timestamp>1790178862000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Remove obsolete models and add authentication options to SchoolDirectoryEntry.
</comment><date>2026-09-23 19:54:22 +0400</date><id>ef2dd76eb0fd8e2c2e9658586434f96cd696a39e</id><msg>Remove obsolete models and add authentication options to SchoolDirectoryEntry.</msg><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt</file></path><path><editType>edit</editType><file>README.md</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthOptionConfig.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/11.json</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt</file></path><path><editType>edit</editType><file>lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt</file></path><path><editType>delete</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt</file></path><path><editType>edit</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/10.json</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/AuthOptionConfigTypeEnum.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt</file></path><path><editType>add</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthenticationOption.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt</file></path><path><editType>edit</editType><file>app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryAuthOptionEntity.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt</file></path><path><editType>delete</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt</file></path><path><editType>edit</editType><file>lib-ihttp-core/README.md</file></path><path><editType>edit</editType><file>lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt</file></path><path><editType>edit</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt</file></path><path><editType>edit</editType><file>app-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt</file></path><path><editType>delete</editType><file>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt</file></path><path><editType>add</editType><file>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryAuthOptionEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-core/README_XAPI_SQL_QUERY.md</affectedPath><commitId>71bfc9ecd378c49409a65ac2ebcdfee806c9fcf3</commitId><timestamp>1790242625000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Update README_XAPI_SQL_QUERY.md recipe - add parent id for query-response.
</comment><date>2026-09-24 13:37:05 +0400</date><id>71bfc9ecd378c49409a65ac2ebcdfee806c9fcf3</id><msg>Update README_XAPI_SQL_QUERY.md recipe - add parent id for query-response.</msg><path><editType>edit</editType><file>lib-xapi-core/README_XAPI_SQL_QUERY.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/DataLoadStateExt.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/XapiResourceProviderExt.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/AGENTS.md</affectedPath><affectedPath>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/WithNanoHttpdXapiResource.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/build.gradle.kts</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/NanoHttpdXapiResponder.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/LogResponse.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiStatementResourceNanoHttpdTest.kt</affectedPath><commitId>6dd9d70a2ad64d425ff1b383e60eec2ce8ff5d43</commitId><timestamp>1790324036000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Refactor statement handling into StatementResourceResponder and add tests
</comment><date>2026-09-25 12:13:56 +0400</date><id>6dd9d70a2ad64d425ff1b383e60eec2ce8ff5d43</id><msg>Refactor statement handling into StatementResourceResponder and add tests</msg><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/DataLoadStateExt.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/AGENTS.md</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/LogResponse.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/build.gradle.kts</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/XapiResourceProviderExt.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/WithNanoHttpdXapiResource.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiStatementResourceNanoHttpdTest.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/NanoHttpdXapiResponder.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/XapiDocumentExt.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/DataLoadStateExt.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/NewNoCnotentResponse.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiStateResourceResponder.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/AbstractXapiDocumentResourceResponder.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiStateResourceNanoHttpdTest.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</affectedPath><commitId>532bc906ffa34ddbb9ef16c2558aa16d147099f8</commitId><timestamp>1790344131000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xAPI State resource responder in NanoHTTPD
</comment><date>2026-09-25 17:48:51 +0400</date><id>532bc906ffa34ddbb9ef16c2558aa16d147099f8</id><msg>Add xAPI State resource responder in NanoHTTPD</msg><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiStateResourceNanoHttpdTest.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/NewNoCnotentResponse.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/AbstractXapiDocumentResourceResponder.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/XapiDocumentExt.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiStateResourceResponder.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/DataLoadStateExt.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt</affectedPath><commitId>4f49d34ee2e085c1fea6d13bef1db2147de881f7</commitId><timestamp>1790344141000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add xAPI State resource responder in NanoHTTPD
</comment><date>2026-09-25 17:49:01 +0400</date><id>4f49d34ee2e085c1fea6d13bef1db2147de881f7</id><msg>Add xAPI State resource responder in NanoHTTPD</msg><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiActivityProfileResourceNanoHttpdTest.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiAgentProfileResourceNanoHttpdTest.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiAgentProfileResourceResponder.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiActivityProfileResourceResponder.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiStateResourceResponder.kt</affectedPath><affectedPath>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</affectedPath><commitId>bc9ca414264225b7baae09c6bc4edcfd09082f2b</commitId><timestamp>1790345194000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add Activity and Agent Profile resources to lib-xapi-nanohttpd
</comment><date>2026-09-25 18:06:34 +0400</date><id>bc9ca414264225b7baae09c6bc4edcfd09082f2b</id><msg>Add Activity and Agent Profile resources to lib-xapi-nanohttpd</msg><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiActivityProfileResourceResponder.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiAgentProfileResourceResponder.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiActivityProfileResourceNanoHttpdTest.kt</file></path><path><editType>add</editType><file>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiAgentProfileResourceNanoHttpdTest.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt</file></path><path><editType>edit</editType><file>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiStateResourceResponder.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-server/src/main/kotlin/world/respect/server/Application.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</affectedPath><commitId>a9b542c379201dadc2b83628271fe759d4b22468</commitId><timestamp>1790351054000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Add state resource to Application.kt and fix GetLaunchOptionsForPublicationUseCase.kt url resolution.
</comment><date>2026-09-25 19:44:14 +0400</date><id>a9b542c379201dadc2b83628271fe759d4b22468</id><msg>Add state resource to Application.kt and fix GetLaunchOptionsForPublicationUseCase.kt url resolution.</msg><path><editType>edit</editType><file>app-server/src/main/kotlin/world/respect/server/Application.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-shared/src/commonMain/composeResources/values-hi/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values-hi/strings.xml</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCase.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/shared/domain/applanguage/LocaleSettingDelegateAndroid.kt</affectedPath><affectedPath>app-android/src/main/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCaseAndroid.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/composeResources/values-ne/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values-ne/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/applanguage/LocaleSettingDelegateAndroid.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCase.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values-hi/strings.xml</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values-ne/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCaseAndroid.kt</affectedPath><commitId>28123c07c9323e59574fd2586f1cf9a3937a7726</commitId><timestamp>1790664338000</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 app locale and language selection handling
</comment><date>2026-09-29 12:15:38 +0530</date><id>28123c07c9323e59574fd2586f1cf9a3937a7726</id><msg>Refactor app locale and language selection handling</msg><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/values-ne/strings.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/values-hi/strings.xml</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/composeResources/values-hi/strings.xml</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCaseAndroid.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path><path><editType>add</editType><file>app-android/src/main/kotlin/world/respect/shared/domain/applanguage/LocaleSettingDelegateAndroid.kt</file></path><path><editType>edit</editType><file>lib-appui-compose/src/androidMain/res/values-ne/strings.xml</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/applanguage/LocaleSettingDelegateAndroid.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCaseAndroid.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt</file></path><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCase.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</file></path><path><editType>edit</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>edit</editType><file>lib-appui-compose/src/androidMain/res/values-hi/strings.xml</file></path><path><editType>edit</editType><file>lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt</file></path><path><editType>delete</editType><file>respect-lib-shared/src/commonMain/composeResources/values-ne/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/GetUiLanguagesUseCase.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</affectedPath><commitId>b7184b42695fee4f0481386ea98d2df95933668b</commitId><timestamp>1790678337000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Implement GetUiLanguagesUseCase and refactor language loading in ViewModels
</comment><date>2026-09-29 16:08:57 +0530</date><id>b7184b42695fee4f0481386ea98d2df95933668b</id><msg>Implement GetUiLanguagesUseCase and refactor language loading in ViewModels</msg><path><editType>add</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/GetUiLanguagesUseCase.kt</file></path><path><editType>edit</editType><file>app-android/src/main/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_001_user_set_language_on_app_test.yaml</affectedPath><affectedPath>lib-appui-compose/src/androidMain/res/values-ne/strings.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt</affectedPath><affectedPath>app-android/src/main/AndroidManifest.xml</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt</affectedPath><commitId>eb68f5d43a02a21360d8d9bf6dafcf299c66366a</commitId><timestamp>1790684076000</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 unsupported languages and update Android activity configChanges
</comment><date>2026-09-29 17:44:36 +0530</date><id>eb68f5d43a02a21360d8d9bf6dafcf299c66366a</id><msg>Remove unsupported languages and update Android activity configChanges</msg><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt</file></path><path><editType>edit</editType><file>.maestro/flows/006_001_user_set_language_on_app_test.yaml</file></path><path><editType>delete</editType><file>lib-appui-compose/src/androidMain/res/values-ne/strings.xml</file></path><path><editType>edit</editType><file>app-android/src/main/AndroidManifest.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_001_user_set_language_on_app_test.yaml</affectedPath><commitId>ac4943518ea31eb1900991e11b27d9974bd77b23</commitId><timestamp>1790684262000</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 expected app title to "Home" in user set language test
</comment><date>2026-09-29 17:47:42 +0530</date><id>ac4943518ea31eb1900991e11b27d9974bd77b23</id><msg>Update expected app title to "Home" in user set language test</msg><path><editType>edit</editType><file>.maestro/flows/006_001_user_set_language_on_app_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.maestro/flows/006_001_user_set_language_on_app_test.yaml</affectedPath><commitId>4c14344e27b362ad437d2645d42d6428c6eed896</commitId><timestamp>1790690223000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><fullName>Pooja Ravi</fullName></author><authorEmail>pooja@ustadmobile.com</authorEmail><comment>Update user set language Maestro test to verify Hindi localization
</comment><date>2026-09-29 17:57:03 +0400</date><id>4c14344e27b362ad437d2645d42d6428c6eed896</id><msg>Update user set language Maestro test to verify Hindi localization</msg><path><editType>edit</editType><file>.maestro/flows/006_001_user_set_language_on_app_test.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</affectedPath><affectedPath>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt</affectedPath><affectedPath>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LanguageDropdown.kt</affectedPath><commitId>640a5969e29bda554a60f76024682945a492e152</commitId><timestamp>1790690720000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Extract getLanguageDisplayText helper and refactor locale selection
</comment><date>2026-09-29 19:35:20 +0530</date><id>640a5969e29bda554a60f76024682945a492e152</id><msg>Extract getLanguageDisplayText helper and refactor locale selection</msg><path><editType>edit</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt</file></path><path><editType>edit</editType><file>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt</file></path><path><editType>edit</editType><file>lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LanguageDropdown.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/anugraha</absoluteUrl><fullName>Anugraha</fullName><id>anugraha</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName><id>mike</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj</absoluteUrl><fullName>Nikunj Sharma</fullName><id>nikunj</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/lipsa.behera</absoluteUrl><fullName>lipsa.behera</fullName><id>lipsa.behera</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/nikunj.sharma</absoluteUrl><fullName>nikunj.sharma</fullName><id>nikunj.sharma</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName><id>mandvi.verma</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName><id>noreply</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/pooja</absoluteUrl><description></description><fullName>Pooja Ravi</fullName><id>pooja</id></culprit></freeStyleBuild>